Why must current_block be checked before every sanity run?
From PDVerse PnR Interview Handbook, part of the pdVerse Mentor Guide
Short Answer
Think of current_block as the "you are here" pointer in ICC2 — almost every command [PrimeTime: get_cells, ] silently operates on whatever block is currently active, not the block whose name you typed in your last report_timing, place_opt, you name itopen_block. If you have several blocks open in the same session (a hierarchical flow, a sub-block plus the top level, or two design revisions loaded for comparison), a query can run cleanly against the wrong block and return a perfectly formatted, completely irrelevant answer.
Technical Explanation
- There's no error message for this — the syntax is valid, the collection isn't empty, the report prints. The only way to catch it is to check
current_block(or print it in your log) before trusting the result. - This is the PD equivalent of double-checking which file is open before you hit save: cheap to check, expensive to debug after the fact once ten more commands have run on the wrong context.
- Good practice: start every sanity/debug script with
current_block, and have your reports echo the block name in their header so a stale log is immediately recognizable.
Visual Verification
EDA commands execute strictly within the active design block (current_block). Unintended block context leads to applying constraints or ECO changes to the wrong hierarchical container.
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.
- 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.
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