我正在尝试执行以下代码:
val num1 = 10.U
printf(p"num1 = $num1")
在示例类中运行此代码时,出现以下错误。
[error] (run-main-8) chisel3.internal.ChiselException: Error: No implicit clock and reset.
[error] chisel3.internal.ChiselException: Error: No implicit clock and reset.
我正在使用test:runMain <package.class>
我尝试了https://github.com/freechipsproject/chisel3/wiki/Printing-in-Chisel中的其他选项 使用printf,但没有一个起作用。
还尝试了C样式的打印printf("num1 = %d",num1)
,这会导致相同的错误。
答案 0 :(得分:1)
以下应该起作用。 withClockAndReset
提供了
触发printf所需的时钟。这里有些挑剔,因为withClock或withClock和嵌套的withReset无法使用。
class Hello extends RawModule {
val io = IO(new Bundle {
val out = Output(UInt(8.W))
val myClock = Input(Clock())
val myReset = Input(Bool())
})
withClockAndReset(io.myClock, io.myReset) {
printf("out is %d\n", io.out)
}
io.out := 42.U
}
答案 1 :(得分:0)
有一种解决方法。借助包装在peek()
中的println()
函数,可以从Chisel PeekPokeTester打印UInt类型的信号。
println(peek(module_name.io.signal_name).toString(16))
还没有找到直接打印实际信号module_name.io.signal_name
的方法,UInt类型甚至没有toString函数,所以我不确定是否可以做到这一点。