将内存转储到VCD文件中

Dumping memory in a VCD file

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

有谁知道如何查看内容或将其转储到 VCD 文件中?

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

import chiseltest.experimental.TestOptionBuilder._
...
test(new DUT).withFlags(Array("--t-use-verilator", "--t-write-vcd")) { dut =>

如果您使用的是 chisel iotesters,请使用

iotesters.Driver.execute(
    Array("--backend-name", "verilator", "--generate-vcd-output", "on"),
    () => new DUT) { c =>

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

添加标志“--tr-mem-to-vcd”、“”,其中 specifier 是

之一
  • “全部”记录所有内存所有位置的所有值
  • "mem1:all" 记录内存 mem1
  • 所有位置的所有值
  • “mem1:0-4”内存 mem1 的位置 0-4 的日志值
  • “mem1:b0-b100”记录位置 0-4 的值,但以二进制形式显示内存 mem1 的地址
  • “mem1:h0-hff”记录位置 0-255 的值,但以十六进制显示内存 mem1 的地址
  • "mem1:o0-o377" 记录位置 0-255 的值,但以八进制显示内存 mem1 的地址

如果你觉得很大胆,而且你的dut又不是太大。您可以获取 dut 生成的 firrtl 并直接在 treadle 中编写测试,这样您就可以查看和戳几乎所有内容。这是来自 treadle 的内部测试套件的 some example code

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

import chiseltest.experimental.TestOptionBuilder._

至:

import chisel3.tester.experimental.TestOptionBuilder._

查看更多详情可以找到here