1618fb109Slinjiaweipackage utils 2618fb109Slinjiawei 3618fb109Slinjiaweiimport chisel3._ 4618fb109Slinjiaweiimport chipsalliance.rocketchip.config.Parameters 5618fb109Slinjiaweiimport freechips.rocketchip.diplomacy.{LazyModule, LazyModuleImp} 6618fb109Slinjiaweiimport freechips.rocketchip.tilelink.{TLClientNode, TLIdentityNode, TLMasterParameters, TLMasterPortParameters} 7*e2801f97Slinjiaweiimport xiangshan.HasXSLog 8618fb109Slinjiawei 9618fb109Slinjiaweiclass DebugIdentityNode()(implicit p: Parameters) extends LazyModule { 10618fb109Slinjiawei 11618fb109Slinjiawei val node = TLIdentityNode() 12618fb109Slinjiawei 13618fb109Slinjiawei val n = TLClientNode(Seq(TLMasterPortParameters.v1( 14618fb109Slinjiawei Seq( 15618fb109Slinjiawei TLMasterParameters.v1("debug node") 16618fb109Slinjiawei ) 17618fb109Slinjiawei ))) 18618fb109Slinjiawei 19*e2801f97Slinjiawei lazy val module = new LazyModuleImp(this) with HasXSLog with HasTLDump{ 20618fb109Slinjiawei val (out, _) = node.out(0) 21618fb109Slinjiawei val (in, _) = node.in(0) 22618fb109Slinjiawei when(in.a.fire()){ 23*e2801f97Slinjiawei XSDebug(" ") 24*e2801f97Slinjiawei in.a.bits.dump 25618fb109Slinjiawei } 26618fb109Slinjiawei when(in.d.fire()){ 27*e2801f97Slinjiawei XSDebug(" ") 28*e2801f97Slinjiawei in.d.bits.dump 29618fb109Slinjiawei } 30618fb109Slinjiawei } 31618fb109Slinjiawei} 320ccdef88Slinjiawei 330ccdef88Slinjiaweiobject DebugIdentityNode { 340ccdef88Slinjiawei def apply()(implicit p: Parameters): TLIdentityNode = { 350ccdef88Slinjiawei val identityNode = LazyModule(new DebugIdentityNode()) 360ccdef88Slinjiawei identityNode.node 370ccdef88Slinjiawei } 380ccdef88Slinjiawei}