1

我有一些看起来像这样的 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 语句。由于层次结构的存在取决于参数值,我遇到了这个问题。

那么我该如何进行这种类型的参数相关赋值呢?

4

1 回答 1

1

生成语句将层添加到分层名称。因此, 应该是路径。top_tb.genUnit1.generate_block_2.unit2.some_signal

于 2013-07-10T02:06:34.680 回答