Verilog 在有条件生成的实例中,从某个信号连续赋值时出现VCS XMRE错误

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

我有一些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语句。由于层次结构的存在依赖于参数值,所以我遇到了这个问题


那么如何进行这种依赖于参数的赋值呢?

Generate语句在层次名称中添加一个层。所以,,
top\u tb.genUnit1.generate\u block\u 2.unit2.某些\u信号应该是路径。

generate语句在层次名称中添加一个层。所以,,
top\u tb.genUnit1.生成\u块\u 2.单元2.某些\u信号应为路径