23 / 24 · Concept
Measure performance and review the design
Specify observation windows, diagnose stalls, and bound model evidence.
Lessons are free to read. Enroll to save your learning progress.
Recheck both numeric and timing contracts
A correct calculation is only part of completion. Check input admission, preservation under stalls, final drain, and reset boundaries. Report the observation window, accepted inputs, delivered outputs, input/output stalls, and transaction latencies. Presented inputs rejected by a full buffer must not count as completed work.
Suppose twelve results transfer between immediately after edge 0 and immediately after edge 20, a window of twenty clock intervals. Observed throughput is 0.6 transactions per cycle. At a five-nanosecond period, the window is 100 ns and the rate is 120 million transactions per second. Distinguish this observed rate from the unstalled structural maximum of 200 million. Sparse production and frequent sink stalls need different remedies despite identical rates.
Use tags to associate delivery with acceptance. Tag7 accepted at edge 4 and delivered at edge 11 has seven-cycle latency, or 35 ns. It exceeds the capstone's three-cycle unstalled latency without implying loss. Record a range or per-item table, not only an average. Fixed-latency assertions belong only on unstalled paths.
| Observation | Possible cause | Inspect next |
|---|---|---|
| FIFO often full | Slow sink or later stage | Output-ready and stage valids |
| Output often empty | Sparse input or bubbles | Accepted inputs and stage movement |
| Long ready path | Many combinational buffer links | Implementation timing |
| Wrong tag order | Companion-field misalignment | Stage tags and valids |
Deeper buffering absorbs bursts but can increase waiting time. Steady-state occupancy, arrival rate, and residence time are related; do not apply steady-state averages blindly to short startup, drain, or cancellation windows.
Review widths, signedness, narrowing, valid movement, replacement, reset cancellation, memory timing, and dependency policy. Node success establishes integer-model execution, not HDL compilation or placed timing. For extensions such as saturation, operation codes, or memory responses, change the contract and reference checks together. A datapath extension must preserve storage, acceptance, and interpretation as well as add an operator.
Try it yourself
Thirty results transfer during fifty clock intervals at a four-nanosecond period. Find observed throughput per cycle and per second. Also find latency for tag3 accepted at edge 8 and delivered at edge 15.
Read the explanation
Throughput is 0.6 transactions/cycle. The 200 ns window gives 150 million transactions/second. Tag3 latency is seven cycles, or 28 ns. Report these observations separately from unstalled maximum performance.