Protocols stack in four layers, each with a distinct vocabulary and failure mode. The software layer expresses intent: read a register, write a DMA buffer, map a PCIe BAR. The transaction layer encodes that intent into a portable contract — ID, address, burst length, byte enables, cache/shareability attributes, ordering hints, and security/privilege bits.
The link or channel layer implements that contract using protocol-specific mechanics: AXI valid/ready handshakes, PCIe TLP packets with credits, DDR READ/WRITE commands. The physical layer handles what actually toggles on pins: clocks, resets, lane training, voltage levels, and timing margins.
A software timeout can result from admission, ordering, flow control, reset, power, link or physical failures. Wrong data can come from access width, attributes, ordering, coherency, address translation or a physical integrity fault. Start by defining the failed transaction and observation boundary, then collect evidence at each boundary before proposing a fix.
FOUR LAYERS — ONE READ TRANSACTION
Software: x = *ptr; (intent)
Txn: RD id=3 addr=0x4000 len=4 attr=S (contract)
Channel: AR beat ----> R beat0..3 (rlast) (mechanism)
Physical: arvalid/arready on clk (wires)
Symptom -> first evidence (not a verdict):
SW timeout -> request, completion, reset and link traces
Wrong data -> byte lanes, address, attributes and integrity status
No link -> configuration, reset, training and physical statusA transaction is more than address and data. Depending on the protocol, its contract can include cacheability/shareability, access size and strobes, exclusivity or atomic semantics, ordering attributes, privilege and security state. For example, AXI4 AxLOCK marks an exclusive access rather than serving as a general ordering hint; PCIe Relaxed Ordering has its own defined scope.
A bridge that changes an attribute can change the system contract even when both interfaces obey their local handshake rules. Whether that produces stale data, posting differences or an access fault depends on the cache-coherency domain, endpoint behaviour and software contract, so the bridge specification must define every transformation.
Minimum transaction identity: ID/tag + address (+ length for bursts).
Attribute set: cache, shareable, bufferable, privilege, security.
Every bridge datasheet must list which fields pass, transform, or drop.
Transaction identity need not remain numerically unchanged across a bridge, but the implementation must preserve an unambiguous mapping between each admitted upstream operation and its downstream work and completion. Useful correlation fields include upstream port plus ID, address range, endpoint/function, byte offset and cache line.
ID remapping, attribute conversion, burst splitting and port merging are integration-risk points. Each may be legal when its mapping, buffering and ordering constraints are explicit; each becomes a bug when the bridge cannot reconstruct the required upstream response or violates an end-to-end contract.
BRIDGE AS CONTRACT REWRITE
Master issues: AW id=5 addr=0x1000 len=3 attr=shareable
Bridge emits: AW id=2 addr=0x1000 len=3 attr=non-shareable <- BUG
Master VIP: PASS (master side legal)
Slave VIP: PASS (slave side legal)
System: FAIL (contract broken in between)Use a symptom table to select the next observation, not to skip to a root cause. A timeout asks where the request last made progress. A protocol assertion identifies the checker, interface, sampled condition and assumptions. Link-down status asks whether configuration, reset, training and electrical prerequisites were met. A mismatch asks whether the two observations used the same address, byte lanes, time and data version.
List the symptom in software-visible terms (timeout, wrong data, hang, corrupt packet).
Identify which interface and which transaction ID is involved.
Walk the path boundary by boundary and record the last confirmed state transition.
Collect the artifact native to that layer (txn log, waveform, LTSSM, training log).
Form competing hypotheses, then change or observe one discriminator at a time.
A captured waveform shows selected signals over a finite interval. Assertions or a checker may establish particular local rules under stated assumptions, but neither establishes every end-to-end attribute, ordering, identity or software requirement.
A VIP result covers the monitored rules, traffic and assumptions at that interface. Chip paths add bridges, maps, initialisation, clocks, resets and power states. System replay adds evidence for that scenario; it is not a proof of every product behaviour.
Layering is a debug partition. Each layer has different owners, artifacts, and fix levers. Mixing layers in a bug review wastes weeks.
Minimum transaction identity: ID/tag + address (+ length for bursts).
Attribute set: cache, shareable, bufferable, privilege, security.
Every bridge datasheet must list which fields pass, transform, or drop.