在FIRRTL-> Verilog转换期间出现错误。 我在代码中执行以下操作:
// Instantiate an Addr Translation Unit
val atu = Module (new AddressTranslationUnit(vpnWidth.U, ppnWidth.U))
io.ptw(0) <> atu.io.out.bits.ptw
这通过初始编译,我得到一个* .fir文件。但是,在下一步(生成Verilog)中,FIRRTL执行了更多遍操作,并且我的代码失败,并出现以下错误:
Exception in thread "main" firrtl.passes.CheckTypes$InvalidConnect:
@[MyCore.scala 88:23:freechips.rocketchip.system.MYConfig.fir@147855.4]:
[module GenericMY] Type mismatch. Cannot connect atu.io.out.bits.ptw to io.ptw[0].
该如何调试?
我怀疑我在复杂的多组件束(TLBPTWIO)上出现宽度不匹配,但是我只能在* .fir输出中看到,这对我来说还可以。