我有一些看起来像这样的 Verilog 代码
module top_tb
genUnit genUnit1;
spyUnit spyUnit1;
endmodule
module unitX(...)
logic some_signal;
endmodule
module genUnit
unitX unit1(….);
**generate
if(myparam==2) begin : generate_block_2
unitX unit2(….);
end
endgenerate**
endmodule
module spyUnit
output logic spy1;
output logic spy2;
assign spy1 = genUnit1.unit1.some_signal;
**generate
if(myparam==2) begin : assign_spy_2
assign spy2 = genUnit1.unit2.some_signal;
end
endgenerate**
endmodule
VCS 错误-[XMRE] 此代码在分配给 spy2 时出现跨模块引用解析错误(spy1 分配很好)。spy2 只需要在 mypram 为 2 的时候赋值,但是解析参数值的时候还没有定义,所以不管最终的参数值如何,都会解析 assign 语句。由于层次结构的存在取决于参数值,我遇到了这个问题。
那么我该如何进行这种类型的参数相关赋值呢?