How do you run IR/EM analysis from inside ICC2 with RedHawk Fusion?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
Point ICC2 at the RedHawk or RedHawk-SC executable with rail.product (ICC2) and rail.redhawk_path (ICC2), set the rail input options, create taps, and run analyze_rail -voltage_drop static -nets {VDD VSS} (ICC2). ICC2 writes the GSR and run script, RedHawk does extraction, power and the solve, and results return to the rail database, where open_rail_result (ICC2) loads maps and report_rail_result (ICC2) writes text. EM follows on the final grid with analyze_rail -voltage_drop static -electromigration -nets {VDD VSS} (ICC2).
Technical Explanation
- Setup is
set_app_options -name rail.product -value redhawk(ICC2), or redhawk_sc, plusrail.redhawk_path(ICC2) pointing at the bin directory. It must match your ICC2 version. For RedHawk-SC Fusion the guide also enablesrail.enable_redhawk_sc(ICC2) and disablesrail.enable_redhawk(ICC2). - Inputs come from application options:
rail.tech_file(ICC2) for the Apache technology file,rail.lib_files(ICC2) for libraries, and APL files for dynamic runs. LEF, DEF, SPEF and the timing file are generated from the design library unless you supply them. - Taps are ideal voltage sources, not part of the design.
create_taps -supply_net VDD -top_pg(ICC2) uses the top-level PG pins; a point tap needs a supply shape under it, or the tool warns with RAIL-305 and the tap has no effect. analyze_rail -voltage_drop static -nets {VDD VSS}(ICC2) generates analyze_rail.tcl and a GSR file for RedHawk, or analyze_rail.py for RedHawk-SC. Without-redhawk_script_file(ICC2) you must give-nets(ICC2), and-extra_gsr_option_file(ICC2) appends your own GSR settings in RedHawk Fusion only.- Results land in the RAIL_DATABASE working directory. A new run overwrites them with the warning Rail result still open! Will be overwritten!, so keep a run by switching
rail.database(ICC2) to a new name;close_rail_result(ICC2) only avoids the warning. - RedHawk Fusion does not support RedHawk signoff features such as hierarchical analysis or dynamic analysis with lumped or SPICE packages, and by default it analyzes only the current scenario of an MCMM design. RedHawk-SC Fusion accepts
-min_path_resistance(ICC2),-effective_resistance(ICC2) and-check_missing_via(ICC2) only together with-voltage_drop(ICC2). analyze_rail -bg(ICC2) runs in the background, and you must then runopen_rail_result -back_annotate(ICC2) to load the results. In distributed RedHawk Fusion runs, each RedHawk job needs one SNPS_INDESIGN_RH_RAIL license key.
What To Check
- RAIL_CHECKING_DIR reports from RedHawk Fusion, such as libcell.missing_liberty and libcell.apl_current, because cells with missing data are not modelled correctly.
- Tap validity with
get_attribute [get_taps *] is_valid_location(ICC2) and no RAIL-305 warnings in the log. - Total power from the run against the power number you trust.
- Worst drop per net and its location from
report_rail_result -type voltage_drop_or_rise(ICC2). - Which scenario was analysed, since the default is only the current one.
Command Checks & Actions
set_app_options -name rail.product -value redhawkSelects RedHawk Fusion; redhawk_sc selects RedHawk-SC Fusion.
set_app_options -name rail.redhawk_path -value /tools/redhawk/binPoints to a RedHawk executable compatible with this ICC2 version (path illustrative).
set_app_options -name rail.tech_file -value design_data/tech/test.techApache technology file for PG extraction and EM limits.
create_taps -supply_net VDD -top_pgUses the top-level VDD PG pins as ideal voltage sources.
analyze_rail -voltage_drop static -nets {VDD VSS}Generates the GSR and run script, runs RedHawk and loads the static result.
open_rail_resultLoads the rail result for maps and attribute queries.
report_rail_result -type voltage_drop_or_rise -supply_nets {VDD} -limit 20 vdrop.rptWrites the 20 worst VDD voltage values to a file.
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): VDD drop plus VSS bounce clearly inside the 5% budget of 37.5 mV at 0.75 V, RAIL_CHECKING_DIR reports empty, and every tap valid.
- Suspicious (illustrative): A black region or sudden colour jump on the map, missing APL or liberty data for some cells, or worst drop within 10% of the budget.
- Hard stop: Invalid taps or RAIL-305 warnings, meaning the analysis ran without real sources on part of a net, or drop over budget after final routing.
Common Mistake
The Trap: Creating point taps from a spreadsheet of bump coordinates without checking them. Half of them land where no VDD shape exists, the RAIL-305 warnings scroll past, those taps have no effect, and the map shows a huge drop that sends the team widening straps that were fine.
What The Interviewer Is Testing
- Knowing what ICC2 does and what the RedHawk engine does in Fusion.
- Knowing RedHawk Fusion's limits and the RedHawk-SC rule that some options need
-voltage_drop(ICC2). - Protecting results with
rail.database(ICC2) and validating taps.
Follow-up Question & Model Response
"When would you leave Fusion and run standalone RedHawk?"
Candidate Model Response: For signoff features Fusion does not support, such as hierarchical analysis or dynamic analysis with lumped or SPICE package models. Standalone RedHawk also gives direct control of the GSR and every analysis step, which the signoff team usually owns. Fusion's strength is iteration during implementation, because you see the map in the ICC2 layout, fix, and rerun without handing off files. Standalone RedHawk needs its own Ansys licence.
Practical Example
Tapeout Scenario: A 0.75 V block after route_opt (illustrative): analyze_rail -voltage_drop static -nets {VDD VSS} (ICC2) reports worst drop 26 mV on VDD and 9 mV bounce on VSS, 35 mV in total against a 5% budget of 37.5 mV. RAIL_CHECKING_DIR lists 14 cells in libcell.missing_liberty. After the missing library is added to rail.lib_files (ICC2) and rail.database (ICC2) is set to RAIL_DATABASE_R2, the rerun shows VDD at 29 mV, a total of 38 mV that fails by 0.5 mV, and two strap regions go to power grid augmentation.
PnR Flow Mentor Guide
Master the Physical Design Implementation Flow
Read the complete 8-chapter PnR Flow Mentor Guide free on the web — library setup through placement, clock tree synthesis, routing, chip finishing, hierarchical implementation, and ECO, all the way to stream-out.

Continue practising