☆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";


ballVHDLへ戻る
ballトップへ戻る