Why does a clock mesh specifically need SPICE-level analysis instead of the normal STA delay-calculation flow, and what are the actual prerequisites?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
A clock mesh has multiple drivers feeding the same net, which normal STA delay calculation isn't built to resolve accurately -- analyze_subcircuit performs transistor-level circuit simulation to back-annotate accurate timing instead. Prerequisites: a detail-routed clock mesh net, a circuit-level model per gate and transistor model per transistor, and access to a SPICE simulator (NanoSim, FineSim, or HSPICE) -- this is a heavier, more accurate analysis specifically because mesh topology genuinely needs it.
Technical Explanation
- A clock mesh has multiple drivers feeding the same net -- normal STA delay calculation isn't built to resolve that accurately, since it typically assumes a single driver per net.
- analyze_subcircuit performs transistor-level circuit simulation specifically to back-annotate accurate timing onto the mesh, given that multi-driver reality.
- Prerequisites: a detail-routed clock mesh net (not just globally routed), a circuit-level model per gate and a transistor model per transistor, and access to a SPICE simulator (NanoSim, FineSim, or HSPICE).
- For multi-driver mesh nets specifically,
set_disable_timingdisables all but one driver -- the anchor driver -- so the annotation has a single reference point rather than an ambiguous multi-source one. - The five steps in order: RC extraction (parasitics), SPICE deck generation, SPICE simulation run, timing annotation file generation, and applying those annotation files -- each has a standalone flag (-extraction, -create_spice_deck, -run_simulation, -write_annotation, -apply_annotation) if you need to run just one step.
Formula Or Decision Rule
Steps: RC extraction -> generate SPICE files -> run SPICE simulation -> generate timing annotation files [SDC: set_disable_timing/set_annotated_delay/set_annotated_transition] -> apply annotation files.
What To Check
- Warning sign: STA timing on a clock mesh net looks suspiciously optimistic or pessimistic compared to what physical intuition suggests.
- Inspect: confirm whether analyze_subcircuit has actually been run and its annotation applied, or whether the mesh is still being timed with standard single-driver delay calculation.
- Correct: run the full analyze_subcircuit flow (extraction through annotation application) on the mesh net before trusting its reported timing.
Command Checks & Actions
analyze_subcircuit -net clk_mesh -extractionRuns RC extraction as a standalone step.
analyze_subcircuit -net clk_mesh -simulator hspice -name clk_mesh_analysisRuns the full flow with HSPICE as the simulator.
analyze_subcircuit -net clk_mesh -apply_annotationApplies previously-generated timing annotation files.
Healthy, Suspicious & Hard-stop Results
- Expected: mesh net timing reflects analyze_subcircuit's SPICE-level annotation, not the default single-driver delay-calculation assumption.
- Investigate: mesh timing hasn't changed after a design change that should have affected it -- confirm analyze_subcircuit was re-run and re-applied, since stale annotation won't reflect the new design state.
- Stop: a clock mesh is being signed off on standard STA delay-calculation numbers alone, with no analyze_subcircuit annotation ever applied -- that's not accurate for a genuinely multi-driver structure.
Common Mistake
The Trap: Trying to get accurate mesh timing from normal STA delay calculation without running analyze_subcircuit -- multi-driver mesh nets are exactly the case standard delay calculation isn't built to handle correctly.
What The Interviewer Is Testing
Whether you understand WHY a mesh specifically needs SPICE-level analysis (multi-driver nets) rather than just knowing analyze_subcircuit exists as a command.
Practical Example
Debug Scenario: A clock mesh's reported skew from standard STA looks implausibly good given its physical structure. Running analyze_subcircuit's full flow (extraction, SPICE simulation, annotation generation and application) produces a meaningfully different, more physically credible skew number -- because standard delay calculation was never built to resolve the mesh's multiple simultaneous drivers correctly.
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.
Continue practising