pp.25-27
よく使われるのは、列挙型、整数型、排列型、レコード型。レコード型は構造体のことか? 排列型およびレコード型はコンポジットタイプと総称される。
ということなので、無意味な型を作って無意味なことをして確かめてみる。
entity sute_vhdl is port( num_in: in integer range 0 to 15; num_in_thru: out integer range 0 to 15; num_out : out integer range 0 to 15 ); end entity; architecture rtl of sute_vhdl is function thru(num: integer range 0 to 15) return integer is -- インデックス0~15を持つ16個の整数から成る排列型を定義して、 type sute_type is array(0 to 15) of integer range 0 to 15; -- その排列型を定数として宣言して、さらに初期化して、 constant SUTE_ARRAY: sute_type := (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); begin -- 入力された整数をインデックスとする要素を返す。 return SUTE_ARRAY(num); end; begin num_in_thru <= num_in; -- 確認のため入力をそのまま出力する。 process(all) begin num_out <= thru(num_in); -- 函数をコールする。 end process; end architecture;
今12を入力して、インデックス12の要素である12を出力している。