IntermediateQuestion 215 of 222Source: Synopsys ICC2 Implementation User Guide X-2025.06-SP2: RedHawk and RedHawk-SC Fusion

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 Reference DiagramHow do you run IR/EM analysis from inside ICC2 with RedHawk Fusion?
Two swim lanes, ICC2 and the RedHawk engine: ICC2 sets rail.product and rail.redhawk_path, creates taps and runs analyze_rail (ICC2), which writes the GSR and run script; RedHawk extracts, calculates power and solves; results return to RAIL_DATABASE and open_rail_result (ICC2) loads the maps.

Technical Explanation

  • Setup is set_app_options -name rail.product -value redhawk (ICC2), or redhawk_sc, plus rail.redhawk_path (ICC2) pointing at the bin directory. It must match your ICC2 version. For RedHawk-SC Fusion the guide also enables rail.enable_redhawk_sc (ICC2) and disables rail.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 run open_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

ICC2 (icc2_shell)set_app_options -name rail.product -value redhawk

Selects RedHawk Fusion; redhawk_sc selects RedHawk-SC Fusion.

ICC2 (icc2_shell)set_app_options -name rail.redhawk_path -value /tools/redhawk/bin

Points to a RedHawk executable compatible with this ICC2 version (path illustrative).

ICC2 (icc2_shell)set_app_options -name rail.tech_file -value design_data/tech/test.tech

Apache technology file for PG extraction and EM limits.

ICC2 (icc2_shell)create_taps -supply_net VDD -top_pg

Uses the top-level VDD PG pins as ideal voltage sources.

ICC2 (icc2_shell)analyze_rail -voltage_drop static -nets {VDD VSS}

Generates the GSR and run script, runs RedHawk and loads the static result.

ICC2 (icc2_shell)open_rail_result

Loads the rail result for maps and attribute queries.

ICC2 (icc2_shell)report_rail_result -type voltage_drop_or_rise -supply_nets {VDD} -limit 20 vdrop.rpt

Writes 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

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.

PnR Flow Physical Design Mentor Guide — eight chaptersPnR Flow Mentor GuideEight chapters, library setup through to stream-out. →