VHDL:是否可以用记录定义泛型?
|
我正在尝试定义一个复杂的类型(即由实部和虚部组成的类型),并试图找到一种使其通用的方法。
This my current static code:
type complex_vector is record
Re : signed(15 downto 0);
Im : signed(15 downto 0);
end record;
现在,我想知道是否有一种方法可以使这种通用名称,换句话说,是这样的:
type complex_vector (Generic: Integer := WIDTH) is record
Re : signed(WIDTH downto 0);
Im : signed(WIDTH downto 0);
end record;
我尝试通过谷歌搜索解决方案以及浏览书籍,但找不到任何解决方案。真的没有吗?没有记录,可能会发生以下情况:
type blaaa is array (NATURAL range <>) of STD_LOGIC;
感谢您的输入
编辑:
还是我可以做以下事情?
type complex_primitives is (re, im);
type complex_vector is array (re to im) of signed(natural range <>);
编译器虽然抱怨。
没有找到相关结果
已邀请:
2 个回复
舞备联
重要说明此示例使用具有不受约束的数组的记录。目前对VHDL-2008的支持是一败涂地。一些工具支持许多VHDL-2008功能,但许多工具尚未完全支持所有新功能。 要阅读有关VHDL-2008和新功能的信息,请参阅此演示文稿,它是有关该主题的很好的摘要。
敦肌
这种方法的严重局限性在于,您在设计中只能支持单个形式的complex_vector,但从正面看,您不必担心工具支持! 与您的用例一起向工具链中的每个供应商提出支持/增强请求将非常有用。他们越受错误困扰,越会支持VHDL-2008。