1.4.1 エンティティとアーキテクチャと / 非公式訳

pp.9-10

1.4.1 エンティティとアーキテクチャ
 VHDLでは、2種類の構成体を使ってハードウェアモジュールを記述します。1つはエンティティ宣言です。単にエンティティとも言います。モジュールの入出力を記述する部分のことです。もう1つはアーキテクチャボディです。単にアーキテクチャとも言います。モジュール内部の構造または動作を記述する部分のことです。図1.1aに半加算器モジュールの接続図を示します。この接続図に対応したエンティティとアーキテクチャとを図1.1bに示します。
 エンティティ宣言(VHDLコードの上半分)でモジュールの入出力を指定します。半加算器にはa、bという2つの入力ポートと、sum、carryという2つの出力ポートとがあります。モジュールの動作はアーキテクチャボディ(VHDLコードの下半分)で定義します。各出力の値は、2つの入力を引数とするブール函数によって与えられます。これは、セクション1.3で述べたようにデータフロースタイルでの記述です。

アーキテクチャに動作を記述する
モジュールの動作または構造はアーキテクチャボディに記述します。モジュールの動作を記述する方法は、下のようにいくつかあります。

  • データフロースタイル: コンカレントシグナルアサインメントを使う。
  • ストラクチュラルスタイル: 他のモジュールを実体化して、目的とする動作の一部を担わせる。
  • アルゴリズミックスタイル: プロセスステートメント内部に一連の計算手順を記述する。
  • 上のそれぞれを組み合わせる。

 図1.1bのアーキテクチャに使用したステートメントはコンカレントシグナルアサインメントと呼ばれます。コンカレントシグナルアサインメントは、アサインメント記号(<=)の右辺にあるシグナルが変化したときに実行されます。したがって、出力であるsumおよびcarryは、入力の変化したときに自動的に値が更新されます。組み合わせ論理回路をそのまま記述したのと同じことです。
 VHDLでのネットを表す要素はシグナルと呼ばれます。エンティティで宣言するポートもシグナルですので、アーキテクチャで使用できます。sum <= a xor bは、シグナルa、bの値を読み取って、その2つの値のxorを求めて、その結果をシグナルsumへアサインする働きをします。エンティティポートで定義するシグナルだけでなく、ローカルに使用する(private use)内部シグナルはアーキテクチャに宣言できます。