【问题标题】:How to use verilog $deposit with indexes如何使用带有索引的verilog $deposit
【发布时间】:2014-04-09 10:04:29
【问题描述】:

当路径包含来自generate 循环的索引时,如何使用$deposit。当我尝试时:

for(int idx=0; idx<`NUM_OF_ENGIES; idx++)
   $deposit(i_engines_array.engines_loop[i].engine_top.soft_reset_n, 1'b0);

我得到错误:

Error-[STASKEC_IFAIDT] Illegal argument to $deposit task

  The first argument passed to $deposit task: path is illegal.
  Please pass net/reg/bitselect type to $deposit task and recompile.

【问题讨论】:

  • idx 是 genvar 吗?另外,您的意思是engines_loop[idx] 而不是engines_loop[i]

标签: verilog system-verilog register-transfer-level


【解决方案1】:

您需要为生成块命名,然后才能对其进行索引。请参阅standard 的第 24.7 节。例如:

genvar idx;
for(idx=0; idx<4; idx) begin : engine_loop
  engine engine_top();
end

initial begin
  $deposit(engine_loop[2].engine_top.soft_reset_n, 1'b0);
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多