Not all findings deserve equal attention first. A missing clock definition can manufacture dozens of phantom crossings, and a structural violation makes any protocol discussion above it pointless. Triage order exists so that each hour of work removes the maximum number of findings.
Clock definitions, reset definitions, clock grouping intent, and synchroniser or protocol intent come first. If a clock is missing, every crossing into or out of it is misreported; if grouping intent is wrong, genuinely asynchronous crossings are excused or synchronous paths are flagged. No crossing-level finding is trustworthy until the setup review in the constraints topic passes. Re-run the analysis after setup fixes before judging anything else, because counts typically collapse.
Unsynchronised crossings, combinational logic before a synchroniser, multi-bit buses without a protocol, reconvergence, and reset-domain findings are structural facts about the netlist. They rarely need design judgement: either the structure is there or it is not. Work the largest class first, group by root cause as the next lesson shows, and fix or formally waive each group with evidence.
Pulse spacing, FIFO depth, handshake completeness, and quasi-static qualification need judgement about rates, traffic, and operating modes. They come last because they are the slowest to close and because early setup or structural churn can move the goalposts underneath them.
Layer | Examples | Why at this position |
|---|---|---|
Setup and constraints | Missing clock, wrong grouping, missing intent. | Everything downstream inherits setup errors. |
Structural classes | Unsynchronised crossing, logic before synchroniser, torn bus. | Facts about the netlist; fast to confirm, must-fix or waive. |
Protocol questions | Pulse spacing, FIFO depth, handshake coverage. | Needs design judgement; do it on a stable base. |
Most of them were artefacts of the setup: crossings reported against undefined or wrongly grouped clocks. The remaining 40 deserve crossing-level attention; the 260 never did.
The torn bus: it is structural and unconditional, while spacing analysis assumes the structure is settled. Protocol work on top of a broken structure is rework.