☆VHDLのデータタイプ
std_logic
もっともメインに使われるデータ形式です
'U','X','0','1','Z','W','L','H','-'の9値が定義されたstd_ulogicが存在し、
それのバスファイトを解決した物がstd_logicになります
'0','1','X' : 強い値を表します
'H','L','W' : 弱い値を表し、強い値と重なると負けます
'U' : 初期化されていない値を表します
'Z' : ハイインピーダンスを表します
'-' : Don't care値です。 論理合成時に意味を持ちます
定義例 signal tmp : std_logic := '1';
代入例 tmp <= '0';
std_logic_vector
std_logicのベクタ形式です。
std_logicと同じ'U','X','0','1','Z','W','L','H','-'の9値が扱えます
定義例(昇順) signal tmp : std_logic_vector(0 to 7) := "01001100";
定義例(降順) signal tmp : std_logic_vector(7 downto 0) := "11000100";
代入例 tmp <= "10100101";
Boolean
TRUE(真)とFALSE(偽)で表されるデータ形式です
定義例 signal tmp : boolean := true;
代入例 tmp <= false;
Bit
’0’と’1’で表されるデータ形式です
定義例 signal tmp : bit := '0';
代入例 tmp <= '1';
Character
ASCII文字で表されるデータ形式です
定義例 signal tmp : character := 'A';
代入例 tmp <= 'B';
Integer
-2147483647〜2147483647迄で表される数です
ただし、range指定を行うことで範囲を設定できます
範囲を指定した方がシミュレーション等が早いことが多いです
定義例 signal tmp : integer := 128;
代入例 tmp <= 64;
このIntegerのサブタイプとしてNaturalとPositiveがあります
String
ASCII文字列で表されるデータ形式です
定義例 signal tmp : string(0 to 7) := "abcdefg";
代入例 tmp <= "xyz";
Bit_vector
ビットデータのベクタ配列を表します
定義例(昇順) signal tmp : bit_vector(0 to 7) := "01001100";
定義例(降順) signal tmp : bit_vector(7 downto 0) := "11000100";
代入例 tmp <= "10100101";
VHDLへ戻る
トップへ戻る