Skip to question
asic.fyi
DesignVerificationSystemVerilogFirmwareArchitectureInterviews
asic.fyi/Interview questions/Reassemble interleaved transactions by ID

Hardware interview practice

Reassemble interleaved transactions by ID

HardUVM ComponentsSystemVerilog

Extend a ready/valid monitor to reconstruct multi-beat transactions whose beats may interleave across transaction IDs. Publish only complete transactions.

Try it in the question bankReason first. Then compare.

Keep this exact question selected while you check your answer and review the full solution.

Practice this question →
Reviewed example

Work through one case

Input
accepted beats: id1=A0 last=0; id2=B last=1; id1=A1 last=1
Expected output
publish transaction id2=[B], then id1=[A0,A1]

Separate per-ID partial buffers allow id2 to complete between id1 beats without corrupting either assembly order.

What to cover

Requirements

  1. Maintain independent partial assembly state for each ID.
  2. Append a beat only on a valid/ready handshake and publish when that ID's last beat is accepted.
  3. Flush every partial transaction on reset.
  4. Assume at most one unfinished transaction per ID; state that a sequence tag is required otherwise.
Continue practicing

Related questions

UVM ComponentsMonitor a ready/valid interface→UVMMatch out-of-order responses by ID→Reference ModelsTrack named bin hits→
asic.fyi · Learn silicon end to end.info@asic.fyi