1package utils 2 3import chisel3._ 4import chipsalliance.rocketchip.config.Parameters 5import freechips.rocketchip.diplomacy.{LazyModule, LazyModuleImp} 6import freechips.rocketchip.tilelink.{TLClientNode, TLIdentityNode, TLMasterParameters, TLMasterPortParameters} 7import xiangshan.HasXSLog 8 9class DebugIdentityNode()(implicit p: Parameters) extends LazyModule { 10 11 val node = TLIdentityNode() 12 13 val n = TLClientNode(Seq(TLMasterPortParameters.v1( 14 Seq( 15 TLMasterParameters.v1("debug node") 16 ) 17 ))) 18 19 lazy val module = new LazyModuleImp(this) with HasXSLog with HasTLDump{ 20 val (out, _) = node.out(0) 21 val (in, _) = node.in(0) 22 when(in.a.fire()){ 23 XSDebug(" ") 24 in.a.bits.dump 25 } 26 when(in.d.fire()){ 27 XSDebug(" ") 28 in.d.bits.dump 29 } 30 } 31} 32 33object DebugIdentityNode { 34 def apply()(implicit p: Parameters): TLIdentityNode = { 35 val identityNode = LazyModule(new DebugIdentityNode()) 36 identityNode.node 37 } 38}