xref: /XiangShan/src/main/scala/utils/DebugIdentityNode.scala (revision 0ccdef883ddc1d8a9558b2c486df3b51599fbc85)
1618fb109Slinjiaweipackage utils
2618fb109Slinjiawei
3618fb109Slinjiaweiimport chisel3._
4618fb109Slinjiaweiimport chipsalliance.rocketchip.config.Parameters
5618fb109Slinjiaweiimport freechips.rocketchip.diplomacy.{LazyModule, LazyModuleImp}
6618fb109Slinjiaweiimport freechips.rocketchip.tilelink.{TLClientNode, TLIdentityNode, TLMasterParameters, TLMasterPortParameters}
7618fb109Slinjiawei
8618fb109Slinjiaweiclass DebugIdentityNode()(implicit p: Parameters) extends LazyModule {
9618fb109Slinjiawei
10618fb109Slinjiawei  val node = TLIdentityNode()
11618fb109Slinjiawei
12618fb109Slinjiawei  val n = TLClientNode(Seq(TLMasterPortParameters.v1(
13618fb109Slinjiawei    Seq(
14618fb109Slinjiawei      TLMasterParameters.v1("debug node")
15618fb109Slinjiawei    )
16618fb109Slinjiawei  )))
17618fb109Slinjiawei
18618fb109Slinjiawei  lazy val module = new LazyModuleImp(this){
19618fb109Slinjiawei    val (out, _) = node.out(0)
20618fb109Slinjiawei    val (in, _) = node.in(0)
218511d772Slinjiawei    val timer = GTimer()
22618fb109Slinjiawei    when(in.a.fire()){
238511d772Slinjiawei      printf(p"[$timer][A] addr: ${Hexadecimal(in.a.bits.address)} " +
248511d772Slinjiawei        p"opcode: ${in.a.bits.opcode} data: ${Hexadecimal(in.a.bits.data)} size: ${in.a.bits.size} source: ${in.a.bits.source}\n"
25618fb109Slinjiawei      )
26618fb109Slinjiawei    }
27618fb109Slinjiawei    when(in.d.fire()){
288511d772Slinjiawei      printf(p"[$timer][D] opcode: ${in.d.bits.opcode} data: ${Hexadecimal(in.d.bits.data)} size:${in.d.bits.size} source: ${in.d.bits.source}\n")
29618fb109Slinjiawei    }
30618fb109Slinjiawei  }
31618fb109Slinjiawei}
32*0ccdef88Slinjiawei
33*0ccdef88Slinjiaweiobject DebugIdentityNode {
34*0ccdef88Slinjiawei  def apply()(implicit p: Parameters): TLIdentityNode = {
35*0ccdef88Slinjiawei    val identityNode = LazyModule(new DebugIdentityNode())
36*0ccdef88Slinjiawei    identityNode.node
37*0ccdef88Slinjiawei  }
38*0ccdef88Slinjiawei}