是否可以在CHISEL中打印UInt和SInt值?
我在模块下面有下面的代码。
val foo = 0.S(2.W)
var min : SInt = -2.S
println(s"DEEEEBUG Values of foo: $foo min: ${min.toString()}")
min= min + 1.S
println(s"min: ${min.toString()}")
但是最后一行不能显示正确的min值。这是输出
DEEEEBUG Values of foo: SInt<2>(0) max: SInt<2>(-2)
min: SInt<2>(OpResult in TwoLevelBpred)
加法后如何打印min的值?
简单的答案是您应该做这样的事情。
class MyCircuit extends MultiIOModule {
val foo = 0.S(2.W)
var min : SInt = -2.S
printf(s"DEEEEBUG Values of foo: %d min: %d\n", foo, min)
val sum = min + 1.S
printf(s"sum: %d\n", sum)
}
凿子是电路发生器。该电路是在编译和运行代码时构建的。Println是scala构造,仅在电路构造期间发生。然后,必须由某种模拟器执行所建立的电路。在仿真过程中,可以使用Printf打印电路中的值。我建议您通过凿子训练营来了解凿子的工作原理。
我在您的示例中介绍了新的变量/总和,因为min = min + 1.S
这与您在普通软件程序中所期望的含义不同。再次签出新兵训练营
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句