This Chisel https://chisel.eecs.berkeley.edu/代码工作正常:
chiselMainTest(Array[String]("--backend", "c", "--genHarness"), () => Module( new Cache(nways = 16, nsets = 32) )){c => new CacheTests(c)}
然而,这个 - 一个小的变化 - 会产生运行时错误:
val cache_inst = new Cache(nways = 16, nsets = 32)
chiselMainTest(Array[String]("--backend", "c", "--genHarness"), () => Module(cache_inst)){c => new CacheTests(c)}
[error] (run-main) java.util.NoSuchElementException: head of empty list
java.util.NoSuchElementException: head of empty list
at scala.collection.immutable.Nil$.head(List.scala:337)
at scala.collection.immutable.Nil$.head(List.scala:334)
模块的任何实例化都必须用“Module()”包装。
这只是一个猜测,但请尝试一下:
val cache_inst = Module(new Cache(nways = 16, nsets = 32))
ChiselMainTest(.....),() => (cache_inst){....}
IIRC 的原因是“Module()”帮助 Chisel 了解 Cache 对象中创建的连线/对象的起源(本质上是在构建图形时推送和弹出模块堆栈)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)