从有条件生成的实例中的某些信号连续分配时出现VCS XMRE错误

时间:2013-07-10 00:19:47

标签: 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(….);
  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分配正常)。仅当mypram为2时才需要分配spy2,但是当尚未定义解析参数值时,无论最终参数值如何,都会解析assign语句。由于层次结构的存在依赖于参数值,因此我遇到了这个问题。

那么我该如何进行这种类型的参数依赖分配?

1 个答案:

答案 0 :(得分:1)

生成语句向层次结构名称添加图层。因此, top_tb.genUnit1.generate_block_2.unit2.some_signal应该是路径。