私がエンティティを持っているとしましょう:
entity myblock is
port(
input1 : std_logic_vector(15 downto 0);
input2 : std_logic_vector(15 downto 0);
input3 : std_logic_vector(15 downto 0);
-- ...
output : std_logic_vector(15 downto 0);
);
end myblock;
ここで、入力のサイズを一般的なものにしたいので、次のようにします。
entity myblock is
generic(
WIDTH : natural;
);
port(
input1 : std_logic_vector(WIDTH-1 downto 0);
input2 : std_logic_vector(WIDTH-1 downto 0);
input3 : std_logic_vector(WIDTH-1 downto 0);
-- ...
output : std_logic_vector(WIDTH-1 downto 0);
);
end myblock;
理想的には、これを少し単純化して、次のように言います。
subtype calc_data is std_logic_vector(WIDTH-1 downto 0);
port(
input1 : calc_data;
input2 : calc_data;
input3 : calc_data;
-- ...
output : calc_data;
);
この場合、これは非常に単純な例であり、メリットはそれほど大きくありません。ただし、より複雑なケースでは、それは本当に役立ちます。
これはVHDLで可能ですか?