複雑な組合わせ回路の記述法(process文)


【複雑な組合せ回路】

アーキテクチャ記述の中のVHDL本体の記述で、複雑な論理回路の記述には
process文を使います。複雑とは、1行では表現できないという意味です。
記述はprocess文として同時処理文の式の集合体として記述します。
実際の記述フォーマットは下記のようになります。





《センシティビティリスト》
 信号名をカンマで区切って並べたリストで、ここに記述された信号に変化があると
 以下の式が活性化されて実行されます。
 組合せ回路をプロセス文で記述するときは、センシティビティリストには、すべての
 入力信号を記述する必要があります。

《順次処理文》
 実体を記述する式で、基本的に記述された順に順番に一気に実行されます。
 その意味で同時処理文となります。
 この記述の中で条件分岐をさせるために、IF文とCASE文が使えます。


【IF文の使い方】

プロセス文で複雑なロジックを記述するためには、条件式が記述できると見やすく
簡単に記述できるようになります。このための基本の条件式がIF文です。
IFで注意が必要なことは、プロセス文で組合せロジックを生成するためには、すべての
場合を記述する必要があります。そうしないとラッチ動作になってしまい、レジスタが
自動的に挿入されてしまいます。

まずIF文の基本的な書式は下記の3通りとなります。








《関係演算子》
 IF文の条件を記述するときに使う演算子を関係演算子といい、結果がTRUEかFALSEと
 なります。関係演算子は下記の6種類です。

   = 、  /= 、  < 、  <= 、  > 、  >=

例 AND ORセレクタの例
  SELの0か1によって出力Yを切り替える動作をします。
 






【CASE文の使い方】

もうひとつの条件分岐の記述方法がCASE文です。この場合には多方向分岐
が可能となります。
基本書式は下図のようにします。ここで、case文の場合にはすべての条件式が
同時に実行されるので、同じ値が複数使われることは許されていません。
またすべての取りうる値を記述する必要があります。しかし毎回すべての場合を
記述するのは大変なのでで、when othres が用意されていて残り全ての場合と
いう意味となります。







例 下記は2ビットのデーコーダの例です。
   4通りの全てのケースと、ZやX値のその他の場合の条件のために
   when othresを使ってその他として一括定義しています。








Topへ戻る