Two constraint concepts release paths from ordinary timing checks: declaring a group of clocks asynchronous to another group, and marking individual paths as false. Both are statements of intent — “do not time this” — and both remove a safety net. This lesson explains what each removes, when the removal is justified, and what evidence the justification needs.
Concept | What it declares | What timing stops checking | Scope |
|---|---|---|---|
Asynchronous clock groups | These clocks have no phase relationship worth checking | Setup and hold on every path between the groups | Broad: all paths between the named clocks |
False path | This particular path is never exercised in a way timing must guarantee | Setup and hold on that path only | Narrow: the named path or paths |
The names above are generic constraint concepts, not command spellings: every timing flow offers its own syntax for the same two ideas. What matters for signoff is the meaning — which checks are removed over which paths — not the spelling.
Situation | Justified exception | Evidence needed |
|---|---|---|
True asynchronous clocks with synchronisers | Asynchronous clock groups between the pair | Structural CDC analysis showing every crossing between the groups is synchronised |
Quasi-static signal with qualification | False path on the qualified static net | Proof the signal is stable during operation plus the qualification mechanism |
Timing exception inside one domain | False path or multicycle on that path | Designer argument reviewed against the protocol; see multicycle and false paths for the timing side |
A path that merely looks asynchronous | Neither | Fix the clocking or add a synchroniser; the exception would only hide the defect |
An asynchronous-group declaration covers every path between two clocks, including crossings added next month by someone who never read the waiver. Each new crossing inherits the silence automatically. That is why the declaration is reviewed against the full crossing inventory, not against the crossings known when it was written — and why narrow false paths are preferred wherever a narrow statement is honest.
First, the clocks are related, so the declaration is false and hides real timing requirements. Second, even a true declaration removes checks without adding safety; without structural evidence for every crossing, the silence proves nothing.
Its blast radius is limited to the named path, so future crossings do not silently inherit the exception. Broad declarations grant silence to paths nobody has reviewed yet.