1e2801f97Slinjiaweipackage utils 2e2801f97Slinjiawei 3e2801f97Slinjiaweiimport chisel3._ 4e2801f97Slinjiaweiimport freechips.rocketchip.tilelink.{TLBundle, TLBundleA, TLBundleB, TLBundleC, TLBundleD, TLBundleE, TLChannel} 5e2801f97Slinjiawei 6e2801f97Slinjiaweitrait HasTLDump { 7e2801f97Slinjiawei 8e2801f97Slinjiawei implicit class dumpA(a: TLBundleA) { 9e2801f97Slinjiawei def dump = 10e2801f97Slinjiawei printf( 11*24b11ca3Slinjiawei a.channelName + " opcode: %x param: %x size: %x source: %d address: %x mask: %x data: %x corrupt: %b\n", 12e2801f97Slinjiawei a.opcode, a.param, a.size, a.source, a.address, a.mask, a.data, a.corrupt 13e2801f97Slinjiawei ) 14e2801f97Slinjiawei } 15e2801f97Slinjiawei 16e2801f97Slinjiawei implicit class dumpB(b: TLBundleB) { 17e2801f97Slinjiawei def dump = 18e2801f97Slinjiawei printf( 19*24b11ca3Slinjiawei b.channelName + " opcode: %x param: %x size: %x source: %d address: %x mask: %x data: %x corrupt: %b\n", 20e2801f97Slinjiawei b.opcode, b.param, b.size, b.source, b.address, b.mask, b.data, b.corrupt 21e2801f97Slinjiawei ) 22e2801f97Slinjiawei } 23e2801f97Slinjiawei 24e2801f97Slinjiawei implicit class dumpC(c: TLBundleC) { 25e2801f97Slinjiawei def dump = 26e2801f97Slinjiawei printf( 27*24b11ca3Slinjiawei c.channelName + " opcode: %x param: %x size: %x source: %d address: %x data: %x corrupt: %b\n", 28e2801f97Slinjiawei c.opcode, c.param, c.size, c.source, c.address, c.data, c.corrupt 29e2801f97Slinjiawei ) 30e2801f97Slinjiawei } 31e2801f97Slinjiawei 32e2801f97Slinjiawei implicit class dumpD(d: TLBundleD) { 33e2801f97Slinjiawei def dump = 34e2801f97Slinjiawei printf( 35*24b11ca3Slinjiawei d.channelName + " opcode: %x param: %x size: %x source: %d sink: %d denied: %b data: %x corrupt: %b\n", 36e2801f97Slinjiawei d.opcode, d.param, d.size, d.source, d.sink, d.denied, d.data, d.corrupt 37e2801f97Slinjiawei ) 38e2801f97Slinjiawei } 39e2801f97Slinjiawei 40e2801f97Slinjiawei implicit class dumpE(e: TLBundleE) { 41e2801f97Slinjiawei def dump = 42*24b11ca3Slinjiawei printf(e.channelName + " sink: %d\n", e.sink) 43e2801f97Slinjiawei } 44e2801f97Slinjiawei} 45