【问题标题】:VHDL record port interfacing with SystemVerilog/SystemC using Synopsys VCSMX使用 Synopsys VCSMX 与 SystemVerilog/SystemC 连接的 VHDL 记录端口
【发布时间】:2012-02-25 01:46:17
【问题描述】:

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

我正在使用 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

【问题讨论】:

    标签: struct vhdl record system-verilog


    【解决方案1】:

    不是您要寻找的答案,但我认为您在分解端口时遇到了困难。

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

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

    【讨论】:

    • 感谢您的回答。我很好奇这里的“功能”。测试台是一个 SystemVerilog 块。您是否指向一些 VHDL 函数到 SystemVerilog 函数映射?不知道有没有可能?
    • 不,没有映射。只是你有一个 VHDL 函数,它记录并返回一个 std_logic_vector。然后有一个 SV 函数,它接受一个逻辑向量并返回一个结构。我不是特别喜欢这种方法,因为您有两组代码需要保持同步,并且您已经丢失了所有类型检查,因此错误往​​往很微妙。这只是我过去看到的。另一种选择,但我不推荐。
    猜你喜欢
    • 1970-01-01
    • 2023-02-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    相关资源
    最近更新 更多