BeginnerQuestion 84 of 95Source: Synopsys PrimeTime User Guide: Constraint Checking With the check_timing Command

What do MET and VIOLATED mean in a PrimeTime constraint report?

From PDVerse STA Mentor Guide ยท pdVerse Mentor Guide

Short Answer

MET and VIOLATED are the pass/fail labels report_constraint (PT) prints next to every checked endpoint. MET means the slack at that endpoint is zero or positive โ€” the check passed with no margin problem. VIOLATED means the slack is negative, so the endpoint is failing that check and needs a fix or a legitimate exception.

Technical Reference DiagramWhat do MET and VIOLATED mean in a PrimeTime constraint report?
A sample report_constraint table with four rows, three marked MET (slack +3ps, +40ps, +120ps) and one marked VIOLATED (slack -12ps), with the +3ps row circled as a near-miss.

Technical Explanation

These two words are how a summary report tells you where to look, before you ever see a number.

  • Each line in a report_constraint (PT) listing names an endpoint, a check type โ€” setup, hold, max_transition, and so on โ€” a slack value, and the status word MET or VIOLATED.
  • VIOLATED simply means slack is less than zero for that check; the exact magnitude still has to be read from the slack column next to it.
  • MET does not mean the path has huge margin โ€” an endpoint can be MET at +2ps, which is technically passing but has almost no room left.
  • The status word is computed the same way for every check type, so a VIOLATED max_transition line and a VIOLATED setup line use the same rule: slack below zero.
  • Scanning for the word VIOLATED with report_constraint -all_violators (PT) filters the report down to only the failing lines, which is faster than reading every MET line too.
  • A design can show all MET and still not be signoff-clean, because report_constraint only reports on the checks it was asked to run โ€” an unconstrained endpoint never gets a line at all.

Common Mistake

The Trap: assuming every MET line has comfortable margin.

  • A beginner sees a wall of MET labels and stops looking, missing that several are MET by only a picosecond or two.
  • The fix is to also sort by the slack column, not just the status word, since a thin MET is one library update away from becoming VIOLATED.

Follow-up Question & Model Response

If report_constraint prints no line at all for a particular endpoint, does that mean it is safely MET?

Candidate Model Response: No. report_constraint only reports on endpoints that have a check to evaluate โ€” an endpoint missing an set_input_delay or set_output_delay (SDC) constraint has no path to check and produces no line at all, not a MET line. That is a different, more serious problem than VIOLATED, because the tool never looked at that endpoint's timing. This is exactly what check_timing (PT) is built to catch separately, by listing every endpoint that is missing a constraint rather than showing it as passing. A designer who only reads report_constraint for MET/VIOLATED can miss an unconstrained endpoint completely.

Practical Example

A report_constraint -all_violators (PT) run on a 200-endpoint block prints one line: ff_out_reg/D setup -12ps (VIOLATED). Every other endpoint is MET, including one at just +3ps of slack โ€” a path the team flags for a closer look before signoff, since the next library update could easily flip it negative.

Complete STA Handbook

Get the complete 10-chapter STA handbook covering setup/hold margins, clock modeling, OCV/POCV, crosstalk noise, and PrimeTime closure.

Static Timing Analysis (STA) Handbook โ€” ten chaptersSTA HandbookTen chapters on setup, hold, OCV, and PrimeTime signoff. โ†’