1

Mem のブロックを「bank」と呼ばれるかなり一般的なモジュールにラップし、次のように Vec でインスタンス化しています。

val rams = Vec.fill( 100 ) { Module( 新しい銀行 ).io }

ここまでは順調ですね。信号を接続するときに問題が発生しています。モジュールの信号のベクトルを信号のベクトルに直接接続すると、次のようになります。

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

...など、エラーは発生しません。

ただし、それらをクロスバーなどの重要なパターンで接続すると、「バンク」と呼ぶ Mem ラッパーを参照しているように見える奇妙なエラーが発生し始めます。

"パラメータ化されたバンドル クラス ascenium.bank$$anon$1 には cloneType メソッドが必要です"

このエラーは、具体的には Chisel エラーです。誰がそれが何を意味し、それを修正する方法を教えてもらえますか?

必要に応じてソースコードを提供できます。

4

1 に答える 1

1

このようなエラーは通常、定義したクラスに cloneType メソッドを追加することで対処できます。

class MyModule extends Module
{
  // Your class definition here
  override def cloneType = new MyModule.asInstanceOf[this.type]
}
于 2016-02-18T01:42:14.973 に答える