How do you correlate clock differences between ICC2 and PrimeTime?
From PDVerse PnR Interview Handbook, part of the pdVerse Mentor Guide
Short Answer
Two tools disagreeing on timing is almost never a "which tool is buggy" question โ it's an "are they analyzing the same thing" question, and clocks are one of the richest places for silent mismatches to hide. Start with clock creation itself: same create_clock period/waveform, same source pin, and check any generated clocks [SDC: create_generated_clock] are derived identically in both environments.
Technical Explanation
- Compare the clock's actual modeling state: is it still ideal [SDC:
pre-CTS,] in one tool and propagated (post-CTS, real insertion delay and skew) in the other? Comparing an ideal-clock ICC2 report against a propagated-clock PrimeTime report will never match, and that's expected, not a bug.set_clock_latency/set_clock_uncertaintyvalues - Check latency and uncertainty settings line by line โ a stale
set_clock_uncertaintyleft over from an earlier stage, or a different case-analysis/mode-exclusive setting active in only one tool, produces a real but misleading slack delta. - Verify scope: are both tools analyzing the same MCMM scenario (same mode + corner), the same active path groups, and the same set of exceptions (false paths, multicycle paths)? A scenario mismatch alone can explain a large timing delta with nothing "wrong" in either tool.
- Only once clock definition, propagation state, uncertainty, and scenario scope are confirmed identical does it make sense to compare path-by-path slack numbers โ and even then, keep each tool's log/report output separate so you're not accidentally mixing units or corners from different runs.
What To Check
- Warning sign: One tool sees a generated clock or exclusivity relation that the other does not.
- Inspect: Keep at least two possible causes open, then use one named object and the active mode or scenario to separate them.
- Correct: Correct the shared SDC or tool-specific application context, then compare the same endpoint and scenario.
Command Checks & Actions
- report_clocks: shows clock definitions and relationships
report_case_analysis: shows constants applied for the active mode- report_exceptions: shows timing exceptions and their scope
Run the commands in order. Each line answers a separate part of the check.
Healthy, Suspicious & Hard-stop Results
- Expected: Compare clock creation, generated relationships, waveform, latency, uncertainty, case analysis, and mode scope without mixing command outputs.
- Stop before floorplanning when required logic or timing coverage is missing or unexplained.
Common Mistake
The Trap: Do not assume the check passed just because ICC2 continued. Fix or narrowly justify the named objects, then rerun the same command.
What The Interviewer Is Testing
Be ready to explain why this matters before floorplanning.
Follow-up Question & Model Response
Model response: โI would save the report, inspect one affected object in the correct block and scenario, and make or request this correction. โ
Physical Design & Planning Handbook
Master ASIC Physical Design Planning & Floorplanning
Dive into 14 comprehensive chapters covering netlist sanity, FinFET grids, macro placement, power grids, CTS, and timing budgeting.
Offline PDF Bundle
Want all 1109 questions offline?
Get the complete 4-book PDF bundle (PnR, STA, MMMC, Low Power) with a clickable table of contents - no ads, no internet needed.

Continue practising