Verilog 在有条件生成的实例中,从某个信号连续赋值时出现VCS XMRE错误
我有一些Verilog代码,看起来像这样Verilog 在有条件生成的实例中,从某个信号连续赋值时出现VCS XMRE错误,verilog,system-verilog,Verilog,System Verilog,我有一些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(….); en
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语句。由于层次结构的存在依赖于参数值,所以我遇到了这个问题
那么如何进行这种依赖于参数的赋值呢?Generate语句在层次名称中添加一个层。所以,,
top\u tb.genUnit1.generate\u block\u 2.unit2.某些\u信号应该是路径。generate语句在层次名称中添加一个层。所以,,
top\u tb.genUnit1.生成\u块\u 2.单元2.某些\u信号应为路径