是否可以使用modports创建SystemVerilog包装器?
我们说我有一个界面:
interface axi_if(input clk, input rst);
logic arlen;
clocking mclk@(posedge clk);
output arlen;
endclocking
modport Master(clocking mclk, input clk, input rst);
endinterface
在DUT包装中我有:
axi_if my_if(clk, rst)
my_dut you_dut(.arlen(my_if.Master.mclk.arlen));
我试过这样做但是我遇到了跨模块引用错误。有什么建议/线索有什么不对吗?
答案 0 :(得分:1)
这里有两个不同的问题。
my_dut you_dut(.a_if(my_if.Master));
来指定my_dut只能访问Master指定的接口信号。mclk.arlen
唯一能做的就是用同步驱动语句驱动它:mclk.arlen <- expression;
。你无法阅读它。因此,如果arlen是输入端口,您可能想要编写my_dut you_dut(.arlen(my_if.arlen));
。