tilelink: ToAXI4 makes R channel errors sticky
This commit is contained in:
parent
d6f1612812
commit
2d12ddb4ed
@ -176,7 +176,10 @@ class TLToAXI4(val combinational: Boolean = true, val adapterName: Option[String
|
|||||||
val r_error = out.r.bits.resp =/= AXI4Parameters.RESP_OKAY
|
val r_error = out.r.bits.resp =/= AXI4Parameters.RESP_OKAY
|
||||||
val b_error = out.b.bits.resp =/= AXI4Parameters.RESP_OKAY
|
val b_error = out.b.bits.resp =/= AXI4Parameters.RESP_OKAY
|
||||||
|
|
||||||
val r_d = edgeIn.AccessAck(r_source, r_size, UInt(0), r_error)
|
val reg_error = RegInit(Bool(false))
|
||||||
|
when (out.r.fire()) { reg_error := !out.r.bits.last && (reg_error || r_error) }
|
||||||
|
|
||||||
|
val r_d = edgeIn.AccessAck(r_source, r_size, UInt(0), reg_error || r_error)
|
||||||
val b_d = edgeIn.AccessAck(b_source, b_size, b_error)
|
val b_d = edgeIn.AccessAck(b_source, b_size, b_error)
|
||||||
|
|
||||||
in.d.bits := Mux(r_wins, r_d, b_d)
|
in.d.bits := Mux(r_wins, r_d, b_d)
|
||||||
|
Loading…
Reference in New Issue
Block a user