【发布时间】:2016-05-14 18:47:16
【问题描述】:
我将一个 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 错误。谁能告诉我这是什么意思以及如何解决它?
如果需要,我可以提供源代码。
【问题讨论】:
-
我尝试用 Vec(Reg()) 替换 Mem() 并没有得到任何乐趣。同样的错误。
标签: chisel