美好的一天,感谢你看这个问题
我正在使用VCSMX(2011年6月版)来模拟具有记录类型接口的核心。核心全部用VHDL编写。我正在使用Systemverilog(SV)Testbench来激发这个核心。
记录看起来像:
type ll_port is record
frame_name : std_logic_vector(WIDTH-1 downto 0);
frame_valid : std_logic;
.
.
.
end record;
我读到VHDL记录类型与SV中的struct相同。但是,当我尝试在SV中实现ll_port结构时,这似乎仍然是VCSMX中不受支持的功能。确定的解决方案是将记录端口分解为std_logic和std_logic_vector。
但是,VHDL中的这种记录类型将被多次使用,并且几个核心将在最终系统中进行交互,使得每个记录端口的分解非常麻烦。
我正在寻找如何处理这个问题,以及我可以在这件事上得到什么建议。我已经在SystemVerilog中有一个自定义模拟基础架构,并想知道是否有解决此问题的方法。
RRS
答案 0 :(得分:1)
不是您正在寻找的答案,但我认为您不得不分解端口。
老实说,VHDL中作为端口类型的记录让我感到紧张,因为它们是多年来打破各种工具的好方法。我知道用于反向连接的综合工具(MSB< - > LSB)如果在端口上使用记录,那么许多公司都有禁止以这种方式使用记录的内部规则。
你可以在两边写一些函数来将记录压平成一个宽std_logic_vector
,然后重新构建它,但我认为这比仅为每个字段都有端口更多的工作和更少的可读性。