首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Icarus转储内存数组($dumpvars)

Icarus转储内存数组($dumpvars)
EN

Stack Overflow用户
提问于 2013-12-01 22:05:04
回答 1查看 6.8K关注 0票数 6

我尝试转储一个数组(reg 31:0数据31:0),但我做不到。我尝试过在iverilog wiki中使用的方式:

代码语言:javascript
运行
复制
integer idx;
for (idx = 0; idx < 32; idx = idx + 1)
    $dumpvars(0,cpu_tb.cpu0.cpu_dp.cpu_regs.data[idx]);

这很管用,但有两件事发生了。

  1. 出现一个警告: VCD警告:数组字cpu_tb.cpu0.cpu_dp.cpu_regs.data将与转义标识符冲突。
  2. 在GTKWave中,我在SST窗口中有这样的内容:\data

有什么解决办法吗?

提前谢谢,为我的英语感到抱歉。

EN

回答 1

Stack Overflow用户

发布于 2020-11-08 12:38:12

我最近也有一个类似的问题:

当使用类似于问题的for循环转储vars时,会发生以下vcd错误:

代码语言:javascript
运行
复制
ERROR: $dumpvars cannot dump a vpiConstant.

我的解决方法是生成n条连接,使用assign语句将其分配给相应的数组字,如下所示:

代码语言:javascript
运行
复制
reg     [31:0]  registers [31:0];
generate
  genvar idx;
  for(idx = 0; idx < 32; idx = idx+1) begin: register
    wire [31:0] tmp;
    assign tmp = registers[idx];
  end
endgenerate

现在,在GTKWave中,我正确地转储了生成块。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20317820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档