tilelink2 Monitor: detect minLatency violations
This commit is contained in:
parent
2b24c4b1b4
commit
3bb2580223
@ -438,6 +438,10 @@ class TLMonitor(gen: () => TLBundleSnoop, edge: () => TLEdge, sourceInfo: Source
|
|||||||
val a_bypass = bypass && bundle.d.valid && d_last
|
val a_bypass = bypass && bundle.d.valid && d_last
|
||||||
val d_bypass = bypass && bundle.a.valid && a_last
|
val d_bypass = bypass && bundle.a.valid && a_last
|
||||||
|
|
||||||
|
if (edge.manager.minLatency > 0) {
|
||||||
|
assert(!bypass || !bundle.a.valid || !bundle.d.valid, s"'A' and 'D' concurrent, despite minlatency ${edge.manager.minLatency}" + extra)
|
||||||
|
}
|
||||||
|
|
||||||
when (bundle.a.fire()) {
|
when (bundle.a.fire()) {
|
||||||
a_counter := Mux(a_first, a_beats1, a_counter - UInt(1))
|
a_counter := Mux(a_first, a_beats1, a_counter - UInt(1))
|
||||||
when (a_last) { inflight(bundle.a.bits.source) := Bool(true) }
|
when (a_last) { inflight(bundle.a.bits.source) := Bool(true) }
|
||||||
|
Loading…
Reference in New Issue
Block a user