有什么方法可以将 apb master vip 连接到 dut 内部的内部模块,其中有 apb 信号。我想在这个内部的 dut 模块中编写一些寄存器。
我试图连接一个接口并将其绑定在模块的深处,有点工作,但我必须将接口处的所有信号声明为 I/O,而我的模拟器不喜欢它,抛出很多关于多次驾驶的警告。
还有其他干净的访问方式吗?
有什么方法可以将 apb master vip 连接到 dut 内部的内部模块,其中有 apb 信号。我想在这个内部的 dut 模块中编写一些寄存器。
我试图连接一个接口并将其绑定在模块的深处,有点工作,但我必须将接口处的所有信号声明为 I/O,而我的模拟器不喜欢它,抛出很多关于多次驾驶的警告。
还有其他干净的访问方式吗?
如果要绑定的内部模块的名称是固定的,则不需要绑定模块中的端口进行通信。相反,您可以对内部模块中的信号使用向上名称引用(参见 LRM 中的第 23.8 节)。
例如假设内部模块名称为im
,您要绑定的接口为bi
。
module im(whatever port list);
// internal signals
logic [15:0] data;
wire [15:0] add;
logic [15:0] memory[16];
...
endmodule
interface bi();//no ports needed
function void reset_memory;
foreach (im.memory[e]) im.memory[e] = 0;
endfunction
endinterface