如何更改由 chisel3 iotester 生成的 vcd 中的时间刻度
How to change timescale in vcd generated by chisel3 iotester
对于 C++ 后端,我已经为 chisel2 请求了 。
但现在我正在使用带有 iotester(窥视和戳戳)的模板示例和 chisel3。
用下面的代码(可以在my github project page上找到):
class TapTempoUnitTester(t: TapTempo) extends PeekPokeTester(t) {
private val tptmp = t
def pushbutton(button: Bool) {
poke(button, 0)
step(1)
poke(button, 1)
step(10)
poke(button, 0)
}
val tclk = 10
val tus = 1000/tclk
val tms = 1000*tus
val ts = 1000*tms
//0
pushbutton(tptmp.io.button)
step(2*tms)
//1
pushbutton(tptmp.io.button)
step(1*tms)
//2
pushbutton(tptmp.io.button)
step(1*tms)
}
如果我 运行 使用 sbt 以下命令的测试台:
sbt 'test:runMain taptempo.TapTempoMain --backend-name verilator'
它正在启动测试台并生成一个 VCD 文件,可以在以下目录中用 gtkwave 查看:
test_run_dir/taptempo.TapTempoMain962904038/TapTempo.vcd
但此 vcd 文件中的时间刻度是:
$timescale 1ns $end
更改此时间刻度的正确方法是什么(除了打开 vcd 文件直接更改它)?
我认为对修改 VCS 标志的支持有限,但我认为对 Verilator 后端没有同等支持。您可以就此问题寻求此类支持:https://github.com/freechipsproject/chisel-testers/issues/148
对于 C++ 后端,我已经为 chisel2 请求了
用下面的代码(可以在my github project page上找到):
class TapTempoUnitTester(t: TapTempo) extends PeekPokeTester(t) {
private val tptmp = t
def pushbutton(button: Bool) {
poke(button, 0)
step(1)
poke(button, 1)
step(10)
poke(button, 0)
}
val tclk = 10
val tus = 1000/tclk
val tms = 1000*tus
val ts = 1000*tms
//0
pushbutton(tptmp.io.button)
step(2*tms)
//1
pushbutton(tptmp.io.button)
step(1*tms)
//2
pushbutton(tptmp.io.button)
step(1*tms)
}
如果我 运行 使用 sbt 以下命令的测试台:
sbt 'test:runMain taptempo.TapTempoMain --backend-name verilator'
它正在启动测试台并生成一个 VCD 文件,可以在以下目录中用 gtkwave 查看:
test_run_dir/taptempo.TapTempoMain962904038/TapTempo.vcd
但此 vcd 文件中的时间刻度是:
$timescale 1ns $end
更改此时间刻度的正确方法是什么(除了打开 vcd 文件直接更改它)?
我认为对修改 VCS 标志的支持有限,但我认为对 Verilator 后端没有同等支持。您可以就此问题寻求此类支持:https://github.com/freechipsproject/chisel-testers/issues/148