我有一条记录定义如下
type ifx_t is
record
data : std_logic_vector(127 downto 0);
address : std_logic_vector (19 downto 0);
WrReq : std_logic;--
RdReq : std_logic; --
end record;
type Array_ifx_t is array (0 to 2) of ifx_t;
而且我必须初始化该记录数组的实例,并且尝试了以下方法,但它不起作用
signal pair_in : Array_ifx_t:= (others =>((others =>'0'),(others=>'0'),'0','0'));
请帮助。
最佳答案
如评论中所述,当使用ModelSim编译问题代码时,ModelSim可以正常工作。但是,其他工具可能对使用Array_ifx_t
中的元素的类型化值更为严格。
对于类型化的分配和命名记录元素的使用,我认为这可以使getter概述并避免位置引用引起的错误,您可以使用以下方法进行初始化:
constant IFX_T_0S : ifx_t := (data => (others =>'0'),
address => (others=>'0'),
WrReq => '0',
RdReq => '0');
signal pair_in : Array_ifx_t:= (others => IFX_T_0S);
关于arrays - 初始化VHDL中的记录数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20630356/