是否有一种方法来禁用CheckCombLoops FIRRTL通行证?(这些循环是假的。)如果可能的话,我想在测试器驱动程序中这样做。我看到了FIRRTL整数的选项,但是在FIRRTL运行期间我仍然得到一个异常。我还希望能够使用VCS作为后端。
class LazyStackNWait2Test extends FlatSpec with Matchers {
behavior of "LazyStackNWait2"
it should "work" in {
chisel3.iotesters.Driver.execute( Array( "--fr-allow-cycles", "--backend-name", "firrtl"), () => new LazyStackN(10, () => new LazyStackWait2)) { c =>
new LazyStackNTester( c)
} should be ( true)
}
}下面是日志的一部分:
[info] [1.057] Done elaborating.
[info] - should work *** FAILED ***
[info] firrtl.passes.PassExceptions:
firrtl.passes.CheckCombLoops$CombLoopException: @[:@5437.2]: [module LazyStackN] Combinational loop detected:构建来自最新的github头。
发布于 2017-06-06 19:07:49
编辑:现在通过--no-check-comb-loops支持这一点。相关公关
目前还没有一种方法,但我已经创建了一个问题来添加这个特性,这应该不会那么困难。https://github.com/ucb-bar/firrtl/issues/600
只是出于好奇,你看到了什么样的假组合循环?我们发现它们非常罕见,而且通常很容易解决,所以如果你有任何例子,我会非常感激你的。
*例如,如果聚合被转换为位并返回(例如通过chisel3.util.Mux1H ),则它们通常发生在聚合类型之间,这些类型在子元素之间具有依赖关系。只想看看其他常见的使用模式会导致错误循环。
https://stackoverflow.com/questions/44314249
复制相似问题