我正在研究定制的火箭芯片RoCC。代码是这样的:
imageURL
在MyRoccModuleImp内,我想实例化一个子模块,该子模块像这样处理tilelink:
class MyRocc(opcodes : OpcodeSet)(implicit p: Parameters) extends LazyRoCC(opcodes){
override lazy val module = new MyRoccModuleImp(this)
override val tlNode = TLClientNode(Seq(TLClientPortParameters(Seq(TLClientParameters("MyRoCC", IdRange(0,32))
}
class MyRoccModuleImp(outer : MyRocc)(implicit p: Parameters) extends LazyRoCCModuleImp(outer){
....
}
但是,由于外部模块是LazyModule,而tlNode是惰性模块,因此凿子编译通过,同时报告了firrtl中未声明的引用。
那么如何在子模块中处理TLNode?