1

美好的一天,感谢您查看这个问题

我正在使用 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 中的结构相同。但是,当我尝试在 SV 中实现 ll_port 结构时,这似乎仍然是 VCSMX 中不受支持的功能。确定的解决方案是将记录端口分解为std_logic和std_logic_vector。

但是,VHDL 中的这种记录类型会被多次使用,并且最终系统中会有多个内核交互,使得每个记录端口的分解非常麻烦。

我想看看如何处理这个问题,以及在这件事上我能得到什么建议。我已经在 SystemVerilog 中有一个自定义模拟基础架构,想知道是否有解决此问题的方法。

RRS

4

1 回答 1

1

不是您正在寻找的答案,但我认为您被分解端口所困扰。

老实说,VHDL 中作为端口类型的记录让我感到紧张,因为它们多年来一直是破坏各种工具的好方法。如果在端口上使用记录,我知道用于反向连接(MSB <-> LSB)的综合工具,因此许多公司都有禁止以这种方式使用记录的内部规则。

您可以在任一侧编写一些函数以将记录展平为单个宽度std_logic_vector,然后重新构建它,但我认为这比仅为每个字段设置端口更工作且可读性更低。

于 2012-02-28T08:22:48.907 回答