ICC2 and PrimeTime disagree. How do you test a unit hypothesis?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
Compare reported units and the same clock, delay, slew, and load values before comparing slack; keep each tool's logs separate.
Technical Explanation
When two tools disagree, compare the inputs and analysis context before comparing slack. Units, libraries, PVT, clocks, exceptions, and modes must line up first.
What To Check
• Warning sign: Numbers differ by a power of ten or one thousand across tools. • 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 input-unit boundary or file interpretation, reload both cleanly, and compare a small shared testcase.
Command Checks & Actions
• report_user_units: shows the units ICC2 uses when reading and printing values
• report_clocks: shows clock definitions and relationships
• report_ports -design_rule [get_ports *]: shows boundary constraints and electrical assumptions
Run the commands in order. Each line answers a separate part of the check.Healthy, Suspicious & Hard-stop Results
• Expected: Compare reported units and the same clock, delay, slew, and load values before comparing slack; keep each tool's logs separate. • Investigate: Numbers differ by a power of ten or one thousand across tools. • Stop before floorplanning when required logic or timing coverage is missing or unexplained. Correct the input-unit boundary or file interpretation, reload both cleanly, and compare a small shared testcase.
Common Mistake
Do not assume the check passed just because ICC2 continued: Numbers differ by a power of ten or one thousand across tools. 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: Numbers differ by a power of ten or one thousand across tools.
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: Correct the input-unit boundary or file interpretation, reload both cleanly, and compare a small shared testcase. Then I would reopen the clean checkpoint and rerun the same evidence.”
Practical Example
Symptom: Numbers differ by a power of ten or one thousand across tools. Corrective path: Correct the input-unit boundary or file interpretation, reload both cleanly, and compare a small shared testcase.
Continue practising