Setup and hold
Tell me
Setup and hold are the two timing checks Lens reads, each from its own report: the max timing report for setup and the min timing report for hold. Lens never combines their evidence: every card, table row and what-if hypothesis belongs to exactly one check.
Show me
- Timing Review tab: separate SETUP and HOLD KPI cards, each with WNS (ns), TNS (ns) and Violations, and separate Setup and Hold rows in the Timing Analysis Results table.
- Per-Clock Breakdown: every clock in the build's clock inventory, listed for SETUP and for HOLD.
- Timing Explorer: a focused view of one clock and one check. Its QoR chips include max local setup and max local hold.
- Evidence Viewer: the path's source file (max or min) and edge type (setup or hold).
- Scenario Analyzer: the Scenario Stress Overview gives setup and hold WNS, TNS and violations for each scenario, and Derived Insights can report a Setup↔Hold Flip pattern.
- Corner Sensitivity: the Metric control picks Setup WNS or Hold WNS.
- Lens Compare, Path Diff: a SETUP / HOLD toggle.
- Configure… opens the Build Manager, where New Build or Modify opens the Timing Analysis Configuration dialog. That is where a build names its setup and hold reports.
Teach me
A setup check tests that data arrives early enough before the capturing clock edge to be captured reliably; it fails when a path is too slow. A hold check tests that data stays stable long enough after that edge; it fails when a path is too fast. Setup reports are the "max" (late) analysis and hold reports the "min" (early) analysis in Synopsys terms.
Which report is which. Typical file patterns:
| Check | Fusion Compiler | PrimeTime |
|---|---|---|
| Setup | report_timing.max |
*_max_timing_GBA.rpt* or *_max_timing_PBA.rpt* |
| Hold | report_timing.min |
*_min_timing_GBA.rpt* or *_min_timing_PBA.rpt* |
In the configuration dialog, a PrimeTime build sets a SETUP pattern and a HOLD pattern, and a Fusion Compiler build names a Max timing (setup) file and a Min timing (hold) file. The setup report gives the setup WNS and TNS, violating paths, per-clock setup metrics and path analysis; the hold report gives the same for hold.
Lens no longer trusts the file name alone. It reads the report itself: the Path Type: max or Path Type: min line that every full report_timing report carries, or, for endpoint-summary reports that lack it, the -delay_type in the echoed command; Cadence reports state the check in their own descriptor. If a file's contents contradict the slot it was configured in, for example a hold report in the setup slot, Lens refuses the run and says so rather than analysing it as the wrong check. A file that states no direction keeps the slot you gave it.
Earlier releases decided which report was setup and which was hold from the file name. They took a name containing max as setup unless it also contained min, and every name containing timing does. So setup reports such as the default *_max_timing_GBA.rpt and Fusion Compiler's report_timing.max were dropped, and runs with real setup violations showed a clean setup. See Releases. When you open a run saved before the fix, Lens re-derives its setup side from the report file recorded with that run; the stored figures stay as they were until you re-run it.
When one report is missing.
- A PrimeTime scenario normally needs both reports. If its setup or hold pattern matches no file while the other does, Lens reports the scenario as incomplete and does not analyse it, rather than recording the missing side as clean.
- The one-sided scenario setting, Analyse a scenario that has only a setup or only a hold report, is in the Settings tab under Data Sources and applies to the open project. With it on, Lens analyses a PrimeTime scenario that has only one of the two reports. It is off by default.
- Cadence writes one timing report per run, so a project with a Cadence source has the one-sided setting turned on once, automatically; if you then turn it off, it stays off. With it on, the missing side of a Cadence scenario shows as not measured (—), never as 0.0 or clean.
- Fusion Compiler analysis works with either report alone.
Where the two sides meet.
- In a PrimeTime or Fusion Compiler run, the overall WNS is the worse of the setup and hold WNS.
- In those runs a clean setup side stays clean: Lens does not fill it with the hold figure.
- In those runs the long-net and net-delay columns are computed from the setup report.
- Lens's checkers use one formula for both checks: the deficit, how much a check fails by, is positive whenever a check fails, whether it is setup or hold.
- The Long Interconnect suggestion applies to setup only.
Setup↔Hold Flip marks a clock that is setup-limited in some scenarios and hold-limited in others. Fixing only one direction on such a clock tends to hurt the other, so Lens flags it as a sign to look at derates, OCV or the constraints rather than at individual paths.
Still have a question?
Updated 19 October 2026