【发布时间】:2017-05-01 15:47:12
【问题描述】:
我想知道是否可以使用(实例化)具有不同类型的相同(vhdl)模块。比如它的一些输入/输出端口会是不同长度的数组?
一个选项是:
component PARITY
generic (N : integer);
port (A : in std_ulogic_vector
(N-1 downto 0);
ODD : out std_ulogic);
end component;
但我希望将 std_ulogic_vector(N-1 downto 0) 预定义为一种类型。
也许在 PARITY 内部或外部使用了一些参数化(通用)包?
我希望这是有道理的......
谢谢!
【问题讨论】:
-
是的。就像你说的......使用VHDL-2008。然后你甚至可以将
T: type放在通用列表中。 -
对,但是如果有多个(/many)类型,那么我将不得不在任何模块的泛型中一次又一次地重新定义它们?
-
你可以设置一个默认值:
generic(T : type := std_logic_vector(9 downto 0));。如果你想要另一个参数的默认范围(例如N,因此N-1 downto 0),那么你应该使用通用包。 -
通用包有什么好的参考吗?谢谢!