没有cloneType for Mem?

时间:2016-02-04 22:48:20

标签: chisel

我将一个Mem块包装在一个名为“bank”的相当通用的模块中,并在Vec中实例化它,如下所示:

val rams = Vec.fill(100){Module(new bank).io}

到目前为止一切顺利。当我连接信号时,我遇到了问题。如果我将模块信号的矢量直接连接到信号矢量,如下所示:

rams(i).in := io.ins(i)
io.outs(i) := rams(i).out

......等等,我没有错误。

如果我以非平凡的模式连接它们,例如交叉开关,我开始得到一个奇怪的错误,似乎是指我称之为“bank”的Mem包装器:

“参数化Bundle类ascenium.bank $$ anon $ 1需要cloneType方法。”

此错误特别是Chisel错误。任何人都能告诉我它意味着什么以及如何解决它?

如果需要,我可以提供源代码。

1 个答案:

答案 0 :(得分:1)

这样的错误通常可以通过向您定义的类添加cloneType方法来解决:

class MyModule extends Module
{
  // Your class definition here
  override def cloneType = new MyModule.asInstanceOf[this.type]
}