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 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_constraintonly 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
Master Signoff-Ready Static Timing Analysis
Get the complete 10-chapter STA handbook covering setup/hold margins, clock modeling, OCV/POCV, crosstalk noise, and PrimeTime closure.

Continue practising