在CHISEL中打印UInt和SInt值

普及

是否可以在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章