美好的一天,谢谢你看这个问题
我使用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
1 回答
不是你正在寻找的答案,但我认为你不得不分解端口 .
说实话,VHDL中作为端口类型的记录让我感到紧张,因为它们是多年来打破各种工具的好方法 . 我知道用于反向连接的综合工具(MSB < - > LSB)如果在端口上使用记录,那么许多公司都有禁止以这种方式使用记录的内部规则 .
您可以在任何一侧编写一些函数来将记录展平为单个宽
std_logic_vector
然后重新构建它,但我认为这比仅为每个字段设置端口更多的工作和更少的可读性 .