在我的 env 类的构建函数中尝试连接接口:
virtual my_if my_vif;
for (int i = 0; i<32; i++) begin
_agent[i]._vif = my_vif._if[i];
end
在 my_if 中:
interface my_if();
if _if[32]();
endinterface :my_if
运行模拟时出现此错误:
Error-[MFNF] Member not found
my_env.sv, 229 "this.my_vif."
Could not find member '_if' in interface 'my_if', at "my_if.sv", 1.
_if 也是下一个信号的接口:
interface if();
logic clk;
logic rstn;
logic [101:0] requests;
logic [63:0] dataOut;
endinterface :if
问题是,当接口 _if 未包装在 my_if 接口下时,一切正常。
看起来您正在尝试_if
使用数组实例在界面中实例化某些类型的设计元素32 次。
array instances
与generate
块有关。因此,索引它们的唯一方法是从另一个generate
块中进行索引。您不能使用带有索引的简单 for 循环来执行此操作。
生成块是 rtl 设计的一部分,通常对测试台的适用性非常有限,尤其是动态结构作为agent
.
您需要重新考虑实现它的方式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句