LazyModule 和 LazyModuleImp 有什么区别?就像 Rocket-chip/doc 下的外交演示所说:The desired hardware for the module must be written inside LazyModuleImp.
但考虑以下代码:
class A(implicit p: Parameters) extends LazyModule {
val b = LazyModule(new Leaf)
val c = LazyModule(new Leaf)
val input = b.input
val output = c.output
val bOutput = b.output.makeSink
val cInput = BundleBridgeSource[Bool](() => Bool())
c.input := cInput
lazy val module = new LazyModuleImp(this) {
cInput.bundle := bOutput.bundle
}
}
这:=
是一个硬件操作,它出现在 LazyModuleImp 的内部和外部,那么应该在 LazyModuleImp 中放置哪些代码?