是否有任何通用解决方案可以处理在 chisel3 中添加相同的泛型类型?

Is there are any general solution that can handle adding same generic type addition in chisel3?

我正在尝试制作通用硬件 class 模块,它是用 chisel3 编写的。

我的代码如下所示。

class hardware_module[T <: Data](bandwidth: T)extends Module {
  val io = IO(new Bundle {
    val in0 = Input(bandwidth)
    val in1 = Input(bandwidth)
    val out = Output(bandwidth)          
    })
    io.out := io.in0 + io.in1
}

错误消息如下所示

type mismatch; found: T requried: String

通过互联网,我发现这个错误信息来自同时添加两个泛型类型。我想知道在Chisel3中也有关于这个问题的通用解决方案。

+ 仅针对某些 Data sub-类(例如 Bits)定义,一般不会为 Data 定义。绑定到 Num[T <: Data] or use Structural Types pattern (a.k.a Duck Typing) https://alvinalexander.com/scala/how-to-use-duck-typing-in-scala-structural-types/