【问题标题】:How to instiantiate a SystemVerilog module in a top level module如何在顶级模块中实例化 SystemVerilog 模块
【发布时间】:2015-03-05 14:23:39
【问题描述】:

我想在我的顶级测试平台中使用 SysWip AXI4Lite 从验证 IP(在 SystemVerilog 中)与我的传统 Verilog AXI4Lite 主。

作为 SystemVerilog 的新手,我在顶层测试台中进行端口映射时遇到问题。

我所拥有的:从 SysWip 我下载了一个 interface 的 axi4lite_s_if.sv 和一个 的 axi4lite_s.sv (http://syswip.com/axi4-lite-verification-ip)。 从我的遗留代码中,我有一个 dut_top.v 和 dut_top_tb.sv(我已将其重命名为 .sv 以支持一些 SV 构造 - 导入、创建从属类对象等)。 Verilog AXI4Lite 主模块在 dut_top.v 中实例化

目标:我想将旧版 Verilog AXI4Lite 主设备的端口连接到 SysWip VIP 从设备的端口。我收到一条语法错误消息,其中端口被映射到 dut_top_tb.sv。

那么任何人都可以指出为上述情况执行端口映射的正确语法吗?

【问题讨论】:

  • 您好,tiilic,提供了 2 个文件,接口模块 (axi4lite_s_if.sv) 和用于顶级测试台的 AXI 从属 (axi4lite_s.sv)。所以你是在告诉我经典的实例化方式'DUT DUT_inst(.clk(sys_clk),.in(in_main),.....);'会工作?而且这应该只针对接口模块而不是其他模块?
  • 自 2009 年以来,Verilog 和 SystemVerilog 已相互融合。在模块级别,它们的工作方式相同。

标签: verilog system-verilog


【解决方案1】:

您的问题令人困惑,因为您将moduleinterface 混合在一起,它们是相似但不同的构造。

SystemVerilog接口instances可以通过接口端口连接到SystemVerilogmodules。如果您有一个没有接口端口的旧版 Verilog 模块,您仍然可以使用分层引用将 SV 接口实例连接到 Verilog 模块。例如

interface intf;
 wire w;
endinterface
module verilog_dut(input wire w);
  initial $display(w);
endmodule
module SV_dut(intf p);
  initial $display(p.w);
endmodule
module top;
  intf i1();
  verilog_dut i2(.w(i1.w));
  SV_dut i3(.p(i1));
endmodule

【讨论】:

  • 感谢您的回答和简单的插图。我已经重新构建了原始问题。有关详细信息,请查看原始问题描述。简单来说,我现在面临的问题是如何在测试台中连接,一个经典的 Verilog 模块具有带有 SystemVerilog 接口的端口定义?你能告诉我一些伪代码吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-18
相关资源
最近更新 更多