在凿子中,如何为所有数据类型定义一个公共零



在参数化模块或函数中,可能需要根据类型将一般的凿子数据类型初始化为"0"。

也就是说,应该有一个值等于(ZERO(.asInstanceOf[T],其中T<:Data。

(0.U(.asInstanceOf[T] 适用于大部分 T<:D ata,但不适用于 T==Bool。

如何解决这个问题?

def delays[T <: Data](x: enter code hereT, n: Int): List[T] ={
  assert(n>0, "Register delays require n > 0")
  val dx = RegInit((ZERO).asInstanceOf[T])
  dx := x
  if (n <= 1) List(dx) else dx :: delays(dx, n-1)
}
您需要

的方法是asTypeOf。

并非所有的 Chisel 类型信息都存储在静态 Scala 类型中,有些存储在对象本身中。因此,您需要像这样进行特殊的凿子铸造:0.U.asTypeOf(x)

相关内容

最新更新