首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在VCD文件中转储内存

在VCD文件中转储内存
EN

Stack Overflow用户
提问于 2020-10-21 01:49:44
回答 2查看 494关注 0票数 2

我的主要问题是当我使用peek/poke测试时,我无法访问我的内部信号。例如,我正在尝试调试缓存设计,因此,我希望看到缓存内存的内容。因为它不是IO,所以我不能在我的expect文件中使用它。我试图使用--memVCD标志转储它,但是它没有识别这个标志。

有人知道我如何看到内容或将其转储到VCD文件中吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-21 14:35:36

如果使用单元测试框架chiseltest,则使用verilator后端。

代码语言:javascript
复制
import chiseltest.experimental.TestOptionBuilder._
...
test(new DUT).withFlags(Array("--t-use-verilator", "--t-write-vcd")) { dut =>

如果你用的是凿子,碘片,用

代码语言:javascript
复制
iotesters.Driver.execute(
    Array("--backend-name", "verilator", "--generate-vcd-output", "on"),
    () => new DUT) { c =>

如果您使用的是最新的凿子版本3.4,那么默认的后端treadle现在也可以记录内存。

添加标志“-tr-mem-to-vcd”,“其中说明符是

  • “所有”在所有记忆的所有位置记录所有值
  • " mem1 : all“在内存mem1的所有位置记录所有值
  • 内存mem1位置0-4处的"mem1:0-4“日志值
  • " mem1 :b0-b100“在0-4位置的日志值,但显示内存mem1的二进制地址。
  • “mem1 :h0-ff”在0-255位置的日志值,但显示内存mem1的十六进制地址。
  • " mem1 :o0-o377“日志值位于0-255,但显示内存mem1的八进制地址。

如果你觉得自己很大胆,而且你的屁股也不太大的话。您可以使用dut生成的firrtl,并直接在treadle中编写一个测试,它允许您查看和戳任何东西。这是一些示例代码来自treadle的内部测试套件。

票数 3
EN

Stack Overflow用户

发布于 2021-05-19 12:33:05

如果您使用的是chisel3,请在Chick的答案中更改以下内容

代码语言:javascript
复制
import chiseltest.experimental.TestOptionBuilder._

至:

代码语言:javascript
复制
import chisel3.tester.experimental.TestOptionBuilder._

请参阅更多详细信息,请参阅这里

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

https://stackoverflow.com/questions/64455546

复制
相关文章

相似问题

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