我将一个 Mem 块包装在一个名为“bank”的相当通用的模块中,并在 Vec 中实例化它,如下所示:
val rams = Vec.fill(100){模块(新银行).io}
到目前为止,一切都很好。连接信号时遇到问题。如果我将模块信号的向量直接连接到信号向量,如下所示:
rams(i).in := io.ins(i)
io.outs(i) := rams(i).out
...等等,我没有错误。
但是,如果我以非平凡的模式将它们连接起来,例如连接到交叉开关,我会开始收到一个奇怪的错误,它似乎是指我称之为“bank”的 Mem 包装器:
“参数化 Bundle 类 ascenium.bank$$anon$1 需要 cloneType 方法。”
此错误具体为 Chisel 错误。谁能告诉我这意味着什么以及如何解决它?
如果需要,我可以提供源代码。