VHDLの基本構造



【基本構造】

VHDLで記述する場合には、全体の構造に決まった形があります。
その基本構造は「entity」と「architecture」から成り、それらにさらに各種の
宣言が加わって下図の基本構造となっています。





【パッケージの指定】

パッケージとは各種の演算子や標準関数などを定義したもので、IEEEの
標準ライブラリパッケージは必須のものとなっていますので、必ず記述が必要です。
また演算子を使う時にはさらに別のパッケージが必要です。標準的な記述フォー
マットは下記のようにします。

library IEEE;
use IEEE.std_logic_1164.all;     -- 基本関数の呼び出し
use IEEE.std_logic_unsigned.all;  -- 符号無し演算関数の呼び出し

use IEEE.std.logic_arith.all;     -- 算術演算関数の呼び出し

上記ではIEEE.std_logic_unsignedのライブラリは符号無しの演算のみが定義されて
いますが、IEEE.std.logic_arithのライブラリには整数と符号無し演算が定義されています
ので、このいずれかを定義して使用します。
.allを付加しているのは内部で定義されているすべての関数を使用可能とするためです。
(この.による定義はプログラミングでのオブジェクトの定義と同じ形式です。)

【entity(エンティティ)】

外部との入出力インターフェースを定義する部分で、いわゆる箱の入れ物を定義します。
この外部との入出力ピンをportとして定義しますが、そのフォーマットは下記とします。
最後の行は「;」を無しとし、最後を ); で閉める必要があります。






最後の宣言には;を付けない

ここで型宣言はVHDLでは非常に重要で、演算にはこの型が一致しないとすべてエラー
としてはじかれます。

【architecture(アーキテクチャ)】

実際の内部の動作を記述する部分で、ここにVHDLのいろいろな式を記述します。
基本のフォーマットは上図のようになっていますが、正確には下記とします。





ここでそれぞれ下記の内容から構成される。
  エンティティ名: 機能や動作を元にした名称を使い、実際に使うものをイメージ
             出来るようにする。
              SELECTOR、PARITY_CHECK、UPDOWNCOUNTER など
  アーキテクチャ名:内部構造を定義する部分なので、それを意識した名称を
              つける。
               RTL という名称をつけることが多い
  宣言文: 内部内部で使用する信号名、定数、関数を定義する
         signal   : 信号宣言
         constant : 定数宣言
         type    : 型の宣言
  
  VHDL本体 : 実体を記述する文で同時処理文の集合
         process : センシティビティリストの信号で活性化され上から順に
                 実行される式の集合



Topへ戻る