signal, constant


signal は内部信号の登録に使います。私は小文字で始まる英数字で表しています。
constant 定数設定に使います。私は最初に c_ を入れることで他の信号と区別しています。

-- signal
 signal  nextDt    : std_logic;
 signal  timSts    : std_logic_vector (2 downto 0);
 signal  nxtSts    : std_logic_vector (2 downto 0);

-- constant
 constant c_idle    : std_logic_vector (2 downto 0) := "000";
 constant c_wait    : std_logic_vector (2 downto 0) := "001";
 constant c_move    : std_logic_vector (2 downto 0) := "010";
 constant c_end     : std_logic_vector (2 downto 0) := "100";

通常のロジック設計では、データタイプは std_logic と std_logic_vector の2つでほとんどOKです。
厳密に言えば、カウンタで +1 の1はintegerだから型変換をする必要があるけど、オーバロードという機能でカバーしているので、問題なく動作します。

必要に応じて自分でデータタイプを定義する場合もあります。


下の様な標準データ型があります。
解説書を見てもこのように列挙はされていますが、実際にどのように使うのか、今ひとつ具体的な説明がありません。「用途」列に想像がつく用途を記入しました。

bit, bit_vector は 0,1 しか無く、通常は X,Z,U,W,L,H,- を含めたstd_logic, std_logic_vector を使います。

データ型 用途
integer 32ビット正負の整数 数値演算
real 浮動小数点 数値演算
bit 0, 1  
bit_vector bit列  
boolean True, False  
character ASCII 文字 シミュレーション
time fs, ps, ns, us, ms, ms, sec, min, hr シミュレーション
severity level note, warning, error, failure  
natural, positive integer のサブタイプ 数値演算
string 文字列 シミュレーション


VHDL目次          MAIL  HOME