提交 24b11ca3 编写于 作者: L linjiawei

Add a IdentityNode to help debug

上级 e2801f97
......@@ -56,19 +56,19 @@ class AXI4SlaveModuleImp[T<:Data](outer: AXI4SlaveModule[T])
)
}
when(in.w.fire()){
XSDebug(p"[w] wmask: ${Binary(in.w.bits.strb)} last:${in.w.bits.last}\n")
XSDebug(p"[w] wmask: ${Binary(in.w.bits.strb)} last:${in.w.bits.last} data:${Hexadecimal(in.w.bits.data)}\n")
}
when(in.b.fire()){
XSDebug(p"[b] id: ${in.b.bits.id}\n")
}
when(in.r.fire()){
XSDebug(p"[r] id: ${in.r.bits.id}\n")
XSDebug(p"[r] id: ${in.r.bits.id} data: ${Hexadecimal(in.r.bits.data)}\n")
}
val s_idle :: s_rdata :: s_wdata :: s_wresp :: Nil = Enum(4)
private val s_idle :: s_rdata :: s_wdata :: s_wresp :: Nil = Enum(4)
val state = RegInit(s_idle)
private val state = RegInit(s_idle)
switch(state){
is(s_idle){
......
......@@ -8,7 +8,7 @@ trait HasTLDump {
implicit class dumpA(a: TLBundleA) {
def dump =
printf(
s"${a.channelName} opcode: %x param: %x size: %x source: %d address: %x mask: %x data: %x corrupt: %b\n",
a.channelName + " opcode: %x param: %x size: %x source: %d address: %x mask: %x data: %x corrupt: %b\n",
a.opcode, a.param, a.size, a.source, a.address, a.mask, a.data, a.corrupt
)
}
......@@ -16,7 +16,7 @@ trait HasTLDump {
implicit class dumpB(b: TLBundleB) {
def dump =
printf(
s"${b.channelName} opcode: %x param: %x size: %x source: %d address: %x mask: %x data: %x corrupt: %b\n",
b.channelName + " opcode: %x param: %x size: %x source: %d address: %x mask: %x data: %x corrupt: %b\n",
b.opcode, b.param, b.size, b.source, b.address, b.mask, b.data, b.corrupt
)
}
......@@ -24,7 +24,7 @@ trait HasTLDump {
implicit class dumpC(c: TLBundleC) {
def dump =
printf(
s"${c.channelName} opcode: %x param: %x size: %x source: %d address: %x data: %x corrupt: %b\n",
c.channelName + " opcode: %x param: %x size: %x source: %d address: %x data: %x corrupt: %b\n",
c.opcode, c.param, c.size, c.source, c.address, c.data, c.corrupt
)
}
......@@ -32,13 +32,13 @@ trait HasTLDump {
implicit class dumpD(d: TLBundleD) {
def dump =
printf(
s"${d.channelName} opcode: %x param: %x size: %x source: %d sink: %d denied: %b data: %x corrupt: %b\n",
d.channelName + " opcode: %x param: %x size: %x source: %d sink: %d denied: %b data: %x corrupt: %b\n",
d.opcode, d.param, d.size, d.source, d.sink, d.denied, d.data, d.corrupt
)
}
implicit class dumpE(e: TLBundleE) {
def dump =
printf(s"${e.channelName} sink: %d\n", e.sink)
printf(e.channelName + " sink: %d\n", e.sink)
}
}
......@@ -67,8 +67,9 @@ class XSSimTop()(implicit p: config.Parameters) extends LazyModule {
AXI4UserYanker() :=
TLToAXI4() :=
TLBuffer(BufferParams.default) :=
TLFragmenter(8, 64 * 8, holdFirstDeny = true) :=
TLFragmenter(8, 64, holdFirstDeny = true) :=
TLCacheCork(sinkIds = 1) :=
DebugIdentityNode() :=
soc.mem
axiMMIO.axiBus :=
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册