Академический Документы
Профессиональный Документы
Культура Документы
You are here: IC Compiler Documents > IC Compiler Design Planning User Guide, version L-2016.03 >
Performing Power Planning > Power Switch Overview
The switching strategy shown in Figure 32 is a coarse-grain strategy; this strategy applies power switching to
the entire block through a single control. Multiple transistors in parallel drive a common supply net for the block.
In a fine-grain strategy, each library cell has its own power switch, allowing fine-grain control over which cells are
powered down. The fine-grain approach has better potential for power savings, but requires more area.
https://solvnet.synopsys.com/dow_retrieve/P-2019.06/dg/iccolh/Default.htm#iccdp/iccdp8_Creating_Power-Switch_Arrays_and_Rings.htm?otSea… 1/7
7/1/2019 Creating Power-Switch Arrays and Rings
Figure 33 shows the layout view of the power-switch array used to shut down power to a circuit block. The
power-switch network controls the current flow from the permanent power network to the virtual power network.
Permanent power is a constant supply that originates from the top-level circuit pads and virtual power is switched
by the power switch.
Two primary placement styles are used when placing power-switch cells: array-style placement and ring-style
placement. In the array-style approach, cells are placed in a uniform grid within the voltage area. Array-style
placement provides high drive current and minimizes resistance, which in turn affects IR drop. The benefits of an
array-style placement include
Better optimization that allows for fewer gating cells than the ring-style method
More difficult or impossible implementation with hard macros, as the existing placement must be modified
to accommodate power gates inside the voltage area
In a ring-style approach, the tool places power-switch cells in a ring that surrounds the shutdown voltage area.
The benefits of a ring-style placement include:
Easier application to designs that contain hard macros, without the need for modification inside the block.
No extra cells or routing is required, with the exception of support for retention, isolation, level shifting, and
always-on logic.
https://solvnet.synopsys.com/dow_retrieve/P-2019.06/dg/iccolh/Default.htm#iccdp/iccdp8_Creating_Power-Switch_Arrays_and_Rings.htm?otSea… 2/7
7/1/2019 Creating Power-Switch Arrays and Rings
A major limitation of the ring-style approach is that the IR drop impact might be unacceptable toward the center
of the voltage area as the distance increases from the power-switch cells. The severity of the IR drop depends on
the voltage area size, shape, and internal dynamic power requirements of the block. For some designs, it might
be impossible to implement a ring-style approach without violating IR drop and inrush current requirements.
set_power_switch_place_pattern_strategy
[-direction horizontal | vertical]
[-connect_mode HFN | DAISY]
[-driver driver_switch_cell]
[-pattern pattern_name]
[-flip]
[-connect_power_switch]
Use this command to specify the pattern direction, daisy-chain or high-fanout net connection mode, the driver
switch cell name, whether the pattern is flipped during placement and whether the power switch cells are
connected during placement. Specify a name for the pattern with the -pattern pattern_name option and use the same
pattern name when you specify the create_power_switch_array -place_pattern command.
create_power_switch_array
-x_increment dx
-y_increment dy
[-lib_cell lib_cell_or_power_switch
[-individual_mode normal | staggered]]
[-voltage_area voltage_area]
[-bounding_box { {llx lly} {urx ury} }]
[-relative_to_voltage_area]
[-offset_to_voltage_area offset_spec]
[-design hierarchy_name]
[-start_row index]
[-start_column index]
[-orientation {N | W | S | E | FN | FE | FS | FW}]
[-respect avoid_object_types]
[-place_pattern place_pattern_name]
[-prefix prefix_name]
The following example creates a power-switch array by using the create_power_switch_array command. The command
instantiates the POWERSWITCH1 cell in a staggered pattern within the V_DOMAIN1 voltage area with a spacing
between cells of 120 microns in the y-direction and 120 microns in the x-direction. The command attaches the
V_DOMAIN1_ prefix to each inserted power-switch cell.
filler cells that are inserted between the power-switch cells, the startpoint, the orientation, and other settings.
The command places only the power-switch cells; it does not connect the power, ground, and control pins. The
command does not honor blockages or existing cells, but a warning message is issued if the inserted cells create
conflicts. The create_power_switch_ring command syntax is as follows:
create_power_switch_ring
-switch_lib_cell lib_cell_or_power_switch
[-vertical_switch_lib_cell lib_cell_or_power_switch
[-filler_lib_cell collection_of_filler_lib_cell_names]
[-vertical_filler_lib_cell collection_of_filler_lib_cell_names]
[-outer_corner_lib_cell outer_corner_lib_cell_name]
[-inner_corner_lib_cell inner_corner_lib_cell_name]
[-area_object voltage_area_or_macro
| -polygon {list_of_points}]
[-design hierarchy_name]
[-prefix string]
[-switch_orientation N | W | S | E | FN | FE | FS | FW]
[-outer_corner_orientation N | W | S | E | FN | FE | FS | FW]
[-inner_corner_orientation N | W | S | E | FN | FE | FS | FW]
[-density switch_density | -switch_number number_of_switches]
[-offset offset_values]
[-start_point {point}]
[-end_point {point}]
[-check_overlap]
[-same_orientation]
[-respect avoid_object_types]
[-x_increment dx]
[-y_increment dy]
[-place_pattern pattern_syntax]
[-continue_pattern]
You can create a power-switch ring with each power-switch cell in the same orientation by specifying the
-same_orientation option. Use the -x_increment and -y_increment options to control the spacing of the power switches in
the ring. If the power-switch cell is a standard cell, the command automatically snaps the cell to the nearest site
row and ignores the -switch_orientation option.
The following example creates a power-switch ring around the DOMAIN1 power domain. The command uses the
SWITCH_HEADER power-switch cell and creates a ring pattern using the FILLER and HEADER library cells. Figure
34 shows the ring created by using the command in the example.
When you specify more than one power-switch cell by using the map_power_switch command, you can reference a
particular cell by using the switch_name:lib_cell_name syntax with the -switch_lib_cell option to the
create_power_switch_ring command. The following example maps two power-switch cells to the SW switch name and
places the cell_2 cell in the power-switch ring.
https://solvnet.synopsys.com/dow_retrieve/P-2019.06/dg/iccolh/Default.htm#iccdp/iccdp8_Creating_Power-Switch_Arrays_and_Rings.htm?otSea… 4/7
7/1/2019 Creating Power-Switch Arrays and Rings
You can specify unique power switch cells for placement on the vertical edges of the power domain by using the
-vertical_switch_lib_cell and -vertical_filler_lib_cell options of the create_power_switch_ring command. Use the
-inner_corner_lib_cell and -outer_corner_lib_cell options to specify the inner and outer corner cells. For example, the
following command places the sw_h power switch cell and filler_h filler cell on the horizontal edges of the power
domain, and places the sw_v power switch cell and filler_v filler cell on the vertical edges. You can specify
multiple filler cells in decreasing priority within the braces ({}); the highest priority filler cell that fits the space is
inserted into the power switch ring.
You can specify a UPF strategy name together with the -switch_lib_cell and -vertical_switch_lib_cell options. The
following example uses the map_power_switch command to create a mapping between the PD1 power domain and the
sw_h and sw_v power switch cells.
You can create the same power switch ring by using the following alternative syntax as shown in the following
example:
To perform power-switch exploration, provide the power-switch library cells for insertion, the switch array x- and
y-pitches, and the permanent and virtual supply names. The explore_power_switch command automatically loops
through the configurations you provide and performs the following steps:
Performs multivoltage power network synthesis and creates a virtual power and ground grid for all voltage
areas
https://solvnet.synopsys.com/dow_retrieve/P-2019.06/dg/iccolh/Default.htm#iccdp/iccdp8_Creating_Power-Switch_Arrays_and_Rings.htm?otSea… 5/7
7/1/2019 Creating Power-Switch Arrays and Rings
Performs power network analysis on the current configuration by using the analyze_fp_rail –nets {vdd+vdd_local}
command
The explore_power_switch command creates a report containing a sorted list of maximum IR drop values for all
configurations. Based on the results of the command, you can select the appropriate power-switch configuration
to achieve the required IR drop for your design.
The following command performs power-switch cell exploration on the current design. The command explores the
IR drop in the VA1 voltage area by instantiating the FOOTER8, FOOTER16, and FOOTER32 power-switch cells
using the x-spacing values of 25, 50, and 100 microns. The VIRTUAL_VSS virtual ground net and VSS real ground
net are used in the analysis. See the man page for a complete list of command options.
icc_shell> explore_power_switch \
-lib_cells {"FOOTER8" "FOOTER16" "FOOTER32"} \
-x_increment {25 50 100} -voltage_area VA1 \
-virtual_pg_net VIRTUAL_VSS -real_pg_net VSS
https://solvnet.synopsys.com/dow_retrieve/P-2019.06/dg/iccolh/Default.htm#iccdp/iccdp8_Creating_Power-Switch_Arrays_and_Rings.htm?otSea… 6/7
7/1/2019 Creating Power-Switch Arrays and Rings
To connect the sleep control pins on the power-switch cells in daisy-chain mode, use the connect_power_switch -mode
daisy command. In the following example, the connect_power_switch command connects the sleep control pins by
using a daisy chain.
To control how the tool creates connections to power switch cells during fishbone mode routing, use the
mv_mtcmos_detour_obstruction application variable. Set this variable to true to avoid creating route connections in the
orthogonal direction over hard macros and create trunk lines in the primary direction on either side of the hard
macro. This reduces the routing over the hard macro and creates better quality of results.
https://solvnet.synopsys.com/dow_retrieve/P-2019.06/dg/iccolh/Default.htm#iccdp/iccdp8_Creating_Power-Switch_Arrays_and_Rings.htm?otSea… 7/7