BeginnerQuestion 42 of 61Source PDF page undefined

Why must current_block be checked before every sanity run?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

Most ICC2 queries and reports operate on the current block, so correct syntax in the wrong context gives a polished but wrong answer.

Technical Explanation

current_block is the design context behind most ICC2 commands. Checking it is like reading the label on a drawing before measuring anything on it.

What To Check

• Warning sign: Counts or scenarios unexpectedly match another checkpoint. • Inspect: Start with one named object in the report and trace it to the netlist, library, or SDC statement that created it. • Correct: Select the intended block explicitly and repeat the baseline reports before any mutation.

Command Checks & Actions

• current_block: confirms the active design block • get_blocks *: lists available design blocks Run the commands in order. Each line answers a separate part of the check.

Healthy, Suspicious & Hard-stop Results

• Expected: Most ICC2 queries and reports operate on the current block, so correct syntax in the wrong context gives a polished but wrong answer. • Investigate: Counts or scenarios unexpectedly match another checkpoint. • Stop before floorplanning when required logic or timing coverage is missing or unexplained. Select the intended block explicitly and repeat the baseline reports before any mutation.

Common Mistake

Do not assume the check passed just because ICC2 continued: Counts or scenarios unexpectedly match another checkpoint. 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: Counts or scenarios unexpectedly match another checkpoint.

Practical Example

Symptom: Counts or scenarios unexpectedly match another checkpoint. Corrective path: Select the intended block explicitly and repeat the baseline reports before any mutation.

Original guide diagramWhy must current_block be checked before every sanity run?
Why must current_block be checked before every sanity run?, illustrating the physical design concept.