Icc - Basic Commands
Icc - Basic Commands
NAME
start_gui
Starts the application GUI.
1)
SYNTAX
string start_gui
ARGUMENTS
The start_gui command has no arguments.
DESCRIPTION
This command starts the application GUI from the shell prompt. It is
ignored if the application GUI has already been started. This is an
alias fo the gui_start command.
EXAMPLES
The following example starts the application GUI.
prompt> start_gui
SEE ALSO
stop_gui(2)
gui_start(2)
gui_stop(2)
Version M-2016.12-SP5-1
Copyright (c) 2017 Synopsys, Inc. All rights reserved.
2)
get_attribute
NAME
get_attribute
Returns the value of the specified attribute on the specified
objects.
SYNTAX
string get_attribute
[-class class_name]
[-quiet]
[-return_null_values]
[-value_list]
object_spec
attribute_name
Data Types
class_name string
object_spec collection
attribute_name string
ARGUMENTS
-class class_name
Specifies the class of objects in the object_spec argument when
the object is not a collection. Valid classes are design, port,
cell, net, and so on. This option is required if any object in
the object_spec argument is not a collection.
-quiet Indicates that error and warning messages are not to be
reported.
-return_null_values
Returns an empty string for failed objects when the object_spec
argument contains multiple objects.
-value_list
Returns the result as a list.
object_spec
Specifies the objects from which to get the attribute value.
Each object must be either a collection or a pattern that is
combined with the -class option to find the object. If the
object_spec argument contains an object that is not a collec-
tion, you must also use the -class option.
attribute_name
Specifies the name of the attribute whose value is returned.
DESCRIPTION
This command returns the value of an attribute for the specified
objects. If the data type of the attribute is collection, the command
merges the attribute values into one collection. Otherwise, the command
returns a list of attribute values. By default, if a specified object
cannot be found or the attribute does not exist on the object, that
object is ignored. If you use the -value_list option, the command
returns an empty string in these cases.
Multicorner-Multimode Support
This command uses information from the current scenario only.
3)
set_attribute
NAME
set_attribute
Sets an attribute to a specified value on the specified list of
objects.
SYNTAX
collection set_attribute
[-class class_name]
objects
attribute_name
attribute_value
[-quiet]
Data Types
class_name string
objects collection
attribute_name string
attribute_value string
ARGUMENTS
-class class_name
Specifies the class for objects specified by name in the
object_list argument. Valid classes are design, port, cell,
net, etc.
objects
Specifies the objects on which the attribute is to be set. Each
object is either a collection or a pattern that is combined with
the -class option to find the objects.
attribute_name
Specifies the name of the attribute to be set.
attribute_value
Specifies the value of the attribute. The data type must be the
same as that of the attribute.
-quiet Turns off the warning message that would otherwise be issued if
the attribute or objects are not found.
DESCRIPTION
This command sets the value of an attribute on an object. For a com-
plete list of attributes, see the attributes man page.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information if
there is no scenario dependency for the attributes. However, for
attributes such as max_leakage_power, which are scenario dependent,
this command uses information from the current scenario only.
EXAMPLES
The following example defines an integer cell attribute named X, and
then sets this attribute to 30 on all cells in this level of the hier-
archy:
4) list_attributes
NAME
list_attributes
Lists the currently-defined attributes.
SYNTAX
string list_attributes
[-application]
[-class class_name]
[-nosplit]
Data Types
class_name string
ARGUMENTS
-application
Lists application attributes and user-defined attributes.
-class class_name
Limits the listing to attributes of a single class. Valid
classes are bound, cell, cell_site, clock, core_area, design,
die_area, drc_error, group, gui_object, layer, library,
lib_cell, lib_pin, mw_cel, net, physical_bus, physical_lib,
physical_lib_cell, physical_lib_pin, pin, pin_guide, pin_shape,
placement_blockage, plan_group, port, power_domain,
power_switch, region, route_guide, rp_group, rp_group_instance,
rp_group_keepout, shape, site_row, supply_net, supply_port, ter-
minal, text, track, via, via_region, and voltage_area.
-nosplit
Prevents lines from being split when column fields overflow.
Most of the attribute information is listed in fixed-width
columns. If the information for a given field exceeds the col-
umn width, the next field begins on a new line in the correct
column.
DESCRIPTION
The list_attributes command displays an alphabetically-sorted list of
currently-defined attributes. The attributes are divided into two cat-
egories: application-defined and user-defined. By default,
list_attributes lists all user-defined attributes.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
EXAMPLES
The following is an example listing of some attributes defined with the
define_user_attribute command:
prompt> list_attributes
****************************************
Report : List of Attribute Definitions
Design :
****************************************
5)
get_ports
NAME
get_ports
Creates a collection of ports from the current design that match
the specified criteria.
SYNTAX
collection get_ports
[-quiet]
[-regexp | -exact]
[-nocase]
[-filter expression]
[patterns
| -of_objects objects
| -object_id object_id]
[-all]
Data Types
expression string
patterns list
objects collection
object_id integer
ARGUMENTS
-quiet Suppresses warning and error messages if no objects match. Syn-
tax error messages are not suppressed.
-regexp
Views the patterns argument as a regular expression rather than
a simple wildcard pattern.
The -regexp and -exact options are mutually exclusive; you can
use only one.
The -regexp and -exact options are mutually exclusive; you can
use only one.
-nocase
Makes matches case-insensitive, both for the patterns argument
and for the ==, =~, and !~ filter operators.
-filter expression
Filters the collection with the specified expression. For each
port in the collection, the expression is evaluated based on the
port's attributes. If the expression evaluates to true, the port
is included in the result.
To see the list of port attributes that you can use in the
expression, use the list_attributes -application -class port
command.
For more information about how to use the -filter option, see
the filter_collection man page.
patterns
Creates a collection of ports whose names match the specified
patterns. Patterns can include the * (asterisk) and ? (question
mark) wildcard characters. For more information about using and
escaping wildcards, see the wildcards man page. Pattern match-
ing is case sensitive unless you use the -nocase option.
When you search for bussed ports, you can specify a bus bit
range in the patterns argument by specifying the start bit and
the end bit separated by a colon (:). The start bit and end bit
must be integers and you cannot include spaces between the bus
bit values and the colon; you can, however, include spaces
between the bus characters, [ or ], and the bus bit range speci-
fication. If the specified pattern violates the bus bit range
syntax, the tool assumes that the pattern does not represent a
bus and performs the search by using normal pattern matching.
-of_objects objects
Creates a collection of ports connected to the specified
objects. Each object can be a net, terminal, bound, or via
region.
-object_id object_id
Creates a collection that contains the port with the specified
Milkyway object ID. To determine the Milkyway object ID, use the
get_attribute command to return the value of the object_id
attribute.
DESCRIPTION
This command creates a collection of ports by selecting ports from the
current design that match the specified criteria.
You can use this command at the command prompt or you can nest it as an
argument to another command, such as query_objects. In addition, you
can assign the result to a variable.
When issued from the command prompt, the command behaves as though you
have called the query_objects command to report the objects in the col-
lection. By default, it displays a maximum of 100 objects. You can
change this maximum by using the collection_result_display_limit vari-
able.
For information about collections and the querying of objects, see the
collections man page.
In addition, see the man pages for the all_inputs and all_outputs com-
mands, which also create collections of ports.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
EXAMPLES
The following example queries all input ports beginning with "mode".
Although the output looks like a list, it is only a display.
The following example sets the driving cell for ports beginning with
"in" to an FD2 library cell.
5)
get_terminals
NAME
get_terminals
Creates a collection of terminals that match the specified cri-
teria.
SYNTAX
collection get_terminals
[-quiet]
[-regexp | -exact]
[-nocase]
[-filter expression]
[-within region
| -touching region
| -intersect region
| -at point]
[patterns
| -of_objects port_list
| -object_id object_id]
Data Types
expression string
region list of points
point point
patterns list
port_list collection
object_id integer
ARGUMENTS
-quiet Suppresses warning and error messages if no objects match. Syn-
tax error messages are not suppressed.
-regexp
Views the patterns argument as a regular expression rather than
a simple wildcard pattern.
This option also modifies the behavior of the =~ and !~ filter
operators to use regular expressions rather than simple wildcard
patterns.
The -regexp and -exact options are mutually exclusive; you can
use only one.
The -regexp and -exact options are mutually exclusive; you can
use only one.
-nocase
Makes matches case-insensitive, both for the patterns argument
and for the ==, =~, and !~ filter operators.
-filter expression
Filters the collection with the specified expression. For each
terminal in the collection, the expression is evaluated based on
the terminal's attributes. If the expression evaluates to true,
the terminal is included in the result.
To see the list of terminal attributes that you can use in the
expression, use the list_attributes -application -class terminal
command.
For more information about how to use the -filter option, see
the filter_collection man page.
-within region
Creates a collection that contains all terminals that are com-
pletely inside the specified region and do not overlap the
boundary. The region boundary can be rectangle or polygon.
The format for specifying a polygon is {{x1 y1} {x2 y2} ... {xN
yN} {x1 y1}}, where each {x y} pair specifies one point of the
input polygon. A valid polygon must be rectilinear, so the
startpoint and endpoint of the polygon are the same point.
-touching region
Creates a collection that contains all terminals that are inside
the specified region, including those that overlap the boundary.
The region boundary can be rectangle or polygon.
The format for specifying a polygon is {{x1 y1} {x2 y2} ... {xN
yN} {x1 y1}}, where each {x y} pair specifies one point of the
input polygon. A valid polygon must be rectilinear, so the
startpoint and endpoint of the polygon are the same point.
-intersect region
Creates a collection that contains all terminals that intersect
the boundary of the specified region and at least part of the
cell is outside of the specified region. The region boundary can
be rectangle or polygon.
The format for specifying a polygon is {{x1 y1} {x2 y2} ... {xN
yN} {x1 y1}}, where each {x y} pair specifies one point of the
input polygon. A valid polygon must be rectilinear, so the
startpoint and endpoint of the polygon are the same point.
-at point
Creates a collection that contains all terminals at the speci-
fied point. The format for specifying a point is {x y}.
patterns
Creates a collection of terminals whose names match the speci-
fied patterns. Patterns can include the * (asterisk) and ?
(question mark) wildcard characters. For more information about
using and escaping wildcards, see the wildcards man page. Pat-
tern matching is case sensitive unless you use the -nocase
option.
-of_objects port_list
Creates a collection of terminals connected to the specified
ports.
-object_id object_id
Creates a collection that contains the terminal with the speci-
fied Milkyway object ID. To determine the Milkyway object ID,
use the get_attribute command to return the value of the
object_id attribute.
DESCRIPTION
This command creates a collection of terminals by selecting terminals
from the current design that match the specified criteria.
You can use this command at the command prompt or you can nest it as an
argument to another command, such as query_objects. In addition, you
can assign the result to a variable.
When issued from the command prompt, the command behaves as though you
have called the query_objects command to report the objects in the col-
lection. By default, it displays a maximum of 100 objects. You can
change this maximum by using the collection_result_display_limit vari-
able.
For information about collections and the querying of objects, see the
collections man page.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
EXAMPLES
The following example creates a collection of terminals named reset or
with a prefix of clock:
6)
set_fp_pin_constraints
NAME
set_fp_pin_constraints
Sets pin assignment constraints that are honored during pin cut-
ting and pin assignment.
SYNTAX
status set_fp_pin_constraints
[-allow_feedthroughs off | on]
[-allowed_layers layers]
[-block_level]
[-bus_ordering lsb_to_msb | msb_to_lsb | scrambled |
consistent_wirelengths]
[-corner_keepout_num_wiretracks wiretracks_number
-corner_keepout_percent_side keepout_percentage]
[-exclude_clock_feedthroughs off | on]
[-exclude_feedthroughs nets]
[-exclude_hfn_feedthroughs hfn_number]
[-exclude_network]
[-exclude_scan_chain_net_feedthroughs off | on]
[-exclude_sides side_numbers]
[-hard_constraints {off | spacing | location | layer}]
[-incremental off | on]
[-keep_buses_together off | on]
[-nets nets
| -exclude_nets nets
| -pins pins]
[-no_stacking stacking_allowed | pg_pins_only | signal_pins_only |
all]
[-pin_preroute_spacing preroute_spacing_number]
[-pin_spacing pin_spacing_number]
[-read_feedthrough_map off | on]
[-feedthrough_map_file file_name]
[-reserved_channel_nets nets]
[-reserved_channel_threshold channel_size]
[-scramble_skip skip_number]
[-use_physical_constraints off | on]
[blocks]
Data Types
layers collection
wiretracks_number integer
keepout_percentage real
nets collection
hfn_number integer
side_numbers string
pins collection
preroute_spacing_number integer
pin_spacing_number integer
file_name string
channel_size real
skip_number integer
7)
get_selection
NAME
get_selection
Returns a collection that contains the objects in the current
selection.
SYNTAX
collection get_selection
[-slct_targets target_selection_bus
[-slct_targets_operation operation]]
[-create_slct_buses]
[-name selection_bus]
[-type object_type]
[-design design]
[-more_than more]
[-fewer_than fewer]
[-count]
[-num max_objects]
[-type_list]
Data Types
target_selection_bus string
operation string
selection_bus string
object_type string
design string
more integer
fewer integer
max_objects integer
ARGUMENTS
-slct_targets target_selection_bus
Specifies the name of the selection bus in which to store the
result. When you use this option, the command returns the tar-
get_selection_bus value. By default, the command returns the
result in a collection.
-slct_targets_operation operation
Specifies the operation used to store the result in the selec-
tion bus specified by the -slct_targets option. The valid val-
ues for the operation argument are clear, add, and remove.
-create_slct_buses
Creates a new selection bus in which to store the result.
-name selection_bus
Specifies the selection bus from which the selection is taken.
-type object_type
Filters the selection by object type and returns only the
objects of the specified object_type. The valid values for
object_type and their descriptions are
-design design
Returns only objects in the filter specified by design.
-more_than more
Returns 1 if the selection bus contains more than the number of
objects specified by more; otherwise, returns 0.
-fewer_than fewer
Returns 1 if the selection bus contains more than the number of
objects specified by fewer; otherwise, returns 0.
-num max_objects
Specifies the maximum number of objects in the collection. The
tool returns max_objects objects or fewer depending on the num-
ber of objects in the current selection.
-type_list
Returns only the number of objects of each object type in the
collection.
You cannot use this option with the -more_than option, the
-fewer_than option, or the -count option.
DESCRIPTION
The get_selection command returns a collection that contains the cur-
rent selection in the tool. By default, the command returns a collec-
tion handle (identifier) if any objects are selected. If no objects
are selected, the command returns an empty string.
You can enter the get_selection command at the command prompt, or you
can nest it as an argument to another command, such as query_objects),
or assign the get_selection result to a variable.
For information about collections and the querying of objects, see the
collections man page.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
8)
change_selection
NAME
change_selection
Changes the selection in the GUI, taking a collection of objects
and changing the selection according to the type of change spec-
ified.
SYNTAX
status change_selection
[-name slct_bus]
[-replace]
[-add]
[-remove]
[-toggle]
[-type object_type]
[-clock_trees clock_tree_list]
collection
Data Types
slct_bus string
object_type list
clock_tree_list list
collection list
ARGUMENTS
-name slct_bus
Specifies to change the selection bus by using the value of
slct_bus. By default, the command changes the selection bus by
using the name global.
-replace
Replaces the current selection with the objects in the collec-
tion. This is the default behavior when no options are speci-
fied.
-remove
Removes the objects that are specified in the collection from
the current selection. By default, this option is off.
-toggle
Adds each item that is specified in the collection to the selec-
tion bus if it is not currently contained in the selection bus.
If it is currently contained in the selection bus, it is
removed. By default, this option is off.
-type object_type
Specifies the type to change. Only those items from the collec-
tion that are of the type specified by object_type are used to
change the selection. The valid values are design, port, net,
cell, pin, and path (timing path). By default, the command uses
the entire collection.
-clock_trees clock_tree_list
Specifies a list of clock trees for changing the selection. By
default, this option is off.
collection
Specifies the collection of objects to use to change the selec-
tion. The type of change that is applied to the current selec-
tion with the collection is specified by the options listed
above. By default, this option is off.
DESCRIPTION
The change_selection command changes the selection in the GUI. When
selections are changed, the GUI updates all relevant windows to reflect
it.
If you use the -type option, only the type of objects specified are
used to change the current selection. For example, if you use -type
design, the command uses only the design objects in the collection to
change the current selection. If you do not use the -type option, all
objects in the collection are used to change the current selection.
For example, if you use the -add option without using the -type option,
all objects, regardless of their type, are added to the current selec-
tion.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
9)
check_legality
NAME
check_legality
Checks the legality of the current placement.
SYNTAX
int check_legality
[-verbose]
ARGUMENTS
-verbose
Prints a detailed report of all possible violations. By default,
the command reports only a summary of all violations.
DESCRIPTION
The check_legality command checks the legality of the current placement
and prints out a report of violation statistics. The violations can be
classified as:
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
EXAMPLES
The following example shows the command for printing out a summary of
all violations.
prompt> check_legality
10)
check_mv_design
NAME
check_mv_design
Checks for violations in a multivoltage design.
SYNTAX
status check_mv_design
[-verbose]
[-isolation]
[-target_library_subset]
[-opcond_mismatches]
[-connection_rules]
[-level_shifters]
[-power_nets]
[-clock_gating_style]
[-diode_cells]
[-max_messages message_count]
[-output output_file_name]
Data Types
message_count unsigned integer
output_file_name string
ARGUMENTS
-verbose
Reports the violations in detail. When this option is not used,
only a summary of the violations is reported in the log file.
-isolation
Reports electrical isolation issues:
-target_library_subset
Checks for inconsistent settings between the target library,
target library subset, and operating conditions. This option
reports the following conditions:
-opcond_mismatches
Reports the technology cells instantiated in the design with
incompatible operating conditions. The option checks for con-
flicts between a cell and the operating condition specified on
the parent design of the cell. This check ensures that the oper-
ating condition at which the cell is characterized matches the
operating condition specified on the design.
-connection_rules
Reports violations in the always-on synthesis and pass-gate con-
nections:
-level_shifters
Reports level shifter violations:
-power_nets
Reports power and ground pin connections, including the follow-
ing information:
-- "Invalid pin type for the cell or the cell's power domain"
indicates that the cell's power domain does not have a power
net connection with the matching type for the power pin type.
For example, this situation occurs when a regular cell has a
backup ground pin, but the cell's power domain does not have a
backup ground net connection.
This option also reports bias pin connections, when a supply net
and its connected supply nets through supply ports or power
switches are used as the power/nwell/deepnwell net, and also as
the ground/pwell/deeppwell net.
-clock_gating_style
Reports hierarchical blocks for which there is no library cell
that meets its operating condition and specified clock-gating
style. Clock-gate insertion cannot be performed.
-diode_cells
Checks for and reports multivoltage violations related to diodes
cells.
-max_messages message_count
Sets a maximum limit on the number of messages written into the
log file and output file.
-output output_file_name
Writes the output of the check_mv_design command to a file spec-
ified by the file name argument. If a file of the specified name
already exists, it is over-written.
DESCRIPTION
The check_mv_design command checks the design, multivoltage con-
straints, electrical isolation requirements, and connection rules. It
issues error and warning messages as appropriate.
If the -verbose option is used, the command reports details of all vio-
lations in the log file. The -max_messages option limits the number of
violations reported. When other checker options are specified, the
message count specified by the -max_messages option applies to each
type of check performed. If no specific checker is specified, the mes-
sage count applies to the total number of messages generated by all
types of checks performed. If -max_messages is not specified, the com-
mand writes out all messages without limit.
Multicorner-Multimode Support
This command uses information from the current scenario only.
EXAMPLES
The following command reports all multivoltage violations in the
design:
11)
verify_pg_nets
NAME
verify_pg_nets
Checks whether all power and ground pins of standard cells,
macro cells, and pad cells are connected to the corresponding
power and ground nets.
SYNTAX
status verify_pg_nets
[-error_cell view_name]
[-std_cell_pin_connection check | ignore]
[-macro_pin_connection at_least_one | all | ignore]
[-pad_pin_connection at_least_one | all | ignore]
[-nets {collection_of_nets}]
Data Types
view_name string
ARGUMENTS
-error_cell view_name
Specifies the name of the error view. The error view is saved in
the err subdirectory of the current working directory.
DESCRIPTION
The verify_pg_nets command checks whether the power and ground pins of
standard cells, macro cells, and pad cells are connected to the corre-
sponding power and ground nets.
The verify_pg_nets command also checks each power and ground net for
floating shapes and creates an error view so that you can display the
violations in the error browser.
This command checks power and ground pins only. It does not check tie-
high and tie-low pins, which are signal pins.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
EXAMPLES
The following example does not check the standard cell PG pin connec-
tions, checks all macro pin PG connections, and checks that at least
one PG pin on each pad cell is connected. The violations are stored in
an error view named err/top_cell_name.err.
12)
write_floorplan
NAME
write_floorplan
Writes a Tcl script that contains detailed floorplanning infor-
mation for the specified design. This file can be used to re-
create elements of the floorplan.
SYNTAX
status write_floorplan
[-all]
[-cell design_name]
[-create_bound]
[-no_bound]
[-no_create_boundary]
[-no_placement_blockage]
[-no_plan_group]
[-no_route_guide]
[-no_voltage_area]
[-objects object_collection]
[-placement {placement_info_types} [-create_terminal]]
[-preroute]
[-user_shape]
[-net_shape]
[-include_shapes_on_non_routing_layers]
[-row]
[-pin_guide]
[-sm_all]
[-sm_bound]
[-sm_cell_row]
[-sm_placement {placement_info_types}]
[-sm_placement_blockage]
[-sm_plan_group]
[-sm_preroute]
[-sm_route_guide]
[-sm_track]
[-sm_voltage_area]
[-track]
file_name
Data Types
design_name string
object_collection collection
placement_info_types keyword
file_name string
ARGUMENTS
-all Writes all floorplan information to the Tcl script. You can com-
bine the -all option with the -no_bound, -no_create_boundary,
-no_placement_blockage, -no_plan_group, -no_route_guide, and
-no_voltage_area options to prevent writing certain types of
information. The -create_terminal option is ignored and always
enabled when using the -all option. The -all option writes user
and net shapes on metal layers that are written by the
-user_shape and -net_shape options.
-cell design_name
Specifies the design name to use for writing floorplan informa-
tion. By default, the floorplan information is written for the
current design.
-create_bound
Writes create_bounds commands instead of update_bounds commands
for bound objects. This option has no effect if you specify the
-no_bound option. By default, the command writes update_bounds
commands to the Tcl script.
-no_bound
Prevents the writing of bound information to the Tcl script. By
default, bound information is written.
-no_create_boundary
Prevents the writing of boundary information to the Tcl script.
By default, the command writes boundary information.
-no_placement_blockage
Prevents the writing of placement blockage information to the
Tcl script. By default, the command writes placement blockage
information.
-no_plan_group
Prevents the writing of plan group information to the Tcl
script. By default, the command writes plan group information.
-no_route_guide
Prevents the writing of route guide information to the Tcl
script. By default, the command writes route guide information.
-no_voltage_area
Prevents the writing of voltage area information to the Tcl
script. By default, the command writes voltage area information.
-objects object_collection
Specifies the objects to write to the Tcl script. Use this
option to limit the types or scope of objects written to the
output file. This option takes a collection that contains one or
more of the following object types: terminals, cell instance,
placement blockage, route guide, plan group, voltage area,
bound, die area, core area, and cell row.
-placement {placement_info_types}
Writes the specified placement information to the output file.
Valid placement values are: io, std_cell, hard_macro,
soft_macro, and terminal. You can specify one or more of these
values. The io keyword causes the command to write I/O pads.
The soft_macro keyword causes the command to write black box
cells because they are considered soft macros. The std_cell
keyword causes the command to write standard cell placement
information. The hard_macro keyword causes the command to write
hard macro placements.
The terminal keyword causes the command to write pins. When you
use the -placement terminal option, you should also use the
-create_terminal option.
-create_terminal
Writes remove_terminal and create_terminal commands to the Tcl
script. The command writes create_terminal commands for termi-
nals if there are pins in the design.
To use this option, you must also use the -placement {terminal}
option.
-preroute
Writes preroute information to the Tcl script. By default, the
command does not write preroute information.
-user_shape
Writes the user shapes created on metal layers by the cre-
ate_user_shape command to the Tcl script. By default, the com-
mand does not write these user shapes.
-net_shape
Writes the net shapes created on metal layers by the cre-
ate_net_shape command to the Tcl script. By default, the command
does not write these net shapes.
-include_shapes_on_non_routing_layers
Writes the user shapes on both routing and non-routing layers.
You must also include the -user_shape and -net_shape options
when you specify the -include_shapes_on_non_routing_ers option.
In you do not specify the -include_shapes_on_non_routing_layers
option, the -user_shape and -net_shape options write out only
user shapes on routing layers.
-row Writes row information to the Tcl script. By default, the com-
mand does not write row information.
-pin_guide
Writes pin guide information to the Tcl script. By default, the
command does not write pin guide information.
-sm_all
Writes all floorplan information for each soft macro. By
default, no floorplan information is written for soft macros.
-sm_bound
Writes bound information for each soft macro. By default, no
bound information is written for soft macros.
-sm_cell_row
Writes cell row information for each soft macro. By default, no
cell row information is written for soft macros.
-sm_placement {placement_info_types}
Writes the specified placement information for each soft macro.
Valid placement values are: io, std_cell, hard_macro,
soft_macro, and terminal. For more information about the place-
ment information keywords, see the description for the -place-
ment option. By default, no placement information is written for
soft macros.
-sm_placement_blockage
Writes placement blockage information for each soft macro. By
default, no placement blockage information is written for soft
macros.
-sm_plan_group
Writes plan group information for each soft macro. By default,
no plan group information is written for soft macros.
-sm_preroute
Writes preroute information for each soft macro. By default, no
preroute information is written for soft macros.
-sm_route_guide
Writes route guide information for each soft macro. By default,
no route guide information is written for soft macros.
-sm_track
Writes track information for each soft macro. By default, no
track information is written for soft macros.
-sm_voltage_area
Writes voltage area information for each soft macro. By default,
no voltage area information is written for soft macros.
-track Writes track information to the Tcl script. By default, the com-
mand does not write track information.
file_name
Specifies the name of the file to which the floorplan informa-
tion is written.
DESCRIPTION
This command writes a Tcl script file that contains floorplan informa-
tion for the current or user-specified design. You restore the floor-
plan information by reading the generated file with the read_floorplan
command.
By default, the command writes floorplan information only for the top-
level design. The information includes the boundary data and informa-
tion on the following objects: bounds, placement blockages, route
guides, plan groups, and voltage areas.
When you specify the -format icc2 option, the write_floorplan command
writes out the floorplan files in Tcl and DEF format into a folder
named by the file_name argument. The folder contains a main floor-
plan.tcl script file, which you can use to load the floorplan in IC
Compiler II. The script
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
13)
list_mw_cels
NAME
list_mw_cels
Prints the list of Milkyway designs in the current Milkyway
library.
SYNTAX
status list_mw_cels
[-all_views]
[-all_versions]
[-sort]
ARGUMENTS
-all_views
List all views of Milkyway designs in the current Milkyway
library. If specifying this option without -all_versions
option, the version number will not be listed.
-all_versions
List all versions of Milkyway designs in the current Milkyway
library. If specifying this option without -all_views option,
the designs of CEL view will only be listed.
DESCRIPTION
This command prints the list of Milkyway designs in the current Milky-
way library. The library must be open. And note that it will show the
design name if any view of the design exists in the library. It also
prints the following information about the Milkyway design:
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
EXAMPLES
The following example lists the Milkyway designs in the current
library:
prompt> list_mw_cels
top
AND
NOR
1
prompt> list_mw_cels -all_views
top.CEL
AND.CEL
NOR.CEL
NOR.FRAM
1
prompt> list_mw_cels -all_versions
top.CEL;1
top.CEL;2
AND.CEL;1
NOR.CEL;1
1
prompt> list_mw_cels -all_views -all_versions -sort
AND.CEL;1
NOR.CEL;1
NOR.FRAM;1
top.CEL;1
14)
open_mw_cel
NAME
open_mw_cel
Opens a Milkyway design for viewing or editing.
SYNTAX
collection open_mw_cel
[-readonly]
[-library library]
[-version version]
[-not_as_current]
[-sync_port_names]
mw_cel_name
Data Types
library string
version int
mw_cel_name list
ARGUMENTS
-readonly
Opens the Milkyway design only for reading, not writing. You
cannot modify and save the Milkyway design opened with this
option.
-library library
Specifies the Milkyway library in which the design exists. This
option is ignored if there is already an open Milkyway library.
If you also use the -readonly and -library options and the spec-
ified library is not already opened, that library is opened as
read-only. If you want to open another Milkyway design for writ-
ing in the same library, you need to close and reopen the
library to have write access to the library.
-version version
Specifies the version of the Milkyway design to open, an inte-
ger. This option overrides any version number specified in the
mw_cel_name argument.
-not_as_current
Opens the Milkyway design in the background; the design is
opened but not made the current design. The current design stays
the same. The GUI uses this option to overlay a different view
of a Milkyway design on the current Milkyway design.
-sync_port_names
Synchronizes changed ports names from the child macro cell to
the top cell. Whether or not this option is used, the tool syn-
chronizes the ports of the child macro cell to the top cell
based on the ports names. However, if the port names of the
child macro cell have been changed, then the names do not match,
and this option must be used to synchronize the modified ports
names of the child macro cell to the top cell.
Note that if you delete ports and create new ports in the child
macro cell, the synchronization operation might map the newly
created ports to the original ones incorrectly.
mw_cel_name
Specifies the name of the Milkyway design to open.
You can specify the Milkyway design name using two parts: the
design name and the view name. For example, "top.CEL" specifies
the CEL view of the Milkyway design named "top". If you specify
a simple name without an extension such as "top", the command
opens the Milkyway design named "top.CEL". To open a view other
than the CEL view, you need to explicitly specify the view name.
DESCRIPTION
This command opens a Milkyway design and automatically sets it as the
current Milkyway design, allowing you to view or edit the design. If
the GUI is running, the design is displayed in a new layout window. To
start the GUI, use the gui_start command.
You can optionally specify the Milkyway library from which to open the
design using the -library option. Otherwise, the command opens the
design in the currently open Milkyway library (previously opened by the
open_mw_lib command).
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
15)
save_mw_cel
NAME
save_mw_cel
Saves the specified design in Milkyway format.
SYNTAX
status save_mw_cel
[-as name]
[-overwrite | -increase_version]
[-scenarios scenario_list]
[-hierarchy]
[-check_only]
design_name
Data Types
name string
scenario_list list
design_name string
ARGUMENTS
-as name
Saves the specified design as a Milkyway design with the speci-
fied name. This can be a new or existing Milkyway design.
-overwrite
Overwrites the stored version of the Milkyway design. This is
the default behavior if the -increase_version option is not
used.
-increase_version
Increases the version number of the Milkyway design being saved,
which preserves the previously stored version. This option can
be used together with the -as option.
-scenarios scenario_list
Specifies a list of scenarios whose constraints are saved with
the Milkyway design. By default, the command includes all sce-
narios.
-hierarchy
Saves the modified top-level Milkyway design, its modified sub-
designs, and all attached files. The saved data overwrites the
previously stored versions of the designs. By default, the com-
mand saves only the specified design, not its subdesigns.
-check_only
Reports the list of Milkyway designs to be saved, but does not
execute the save operation. This option works only with the
-hierarchy option.
design_name
Specifies explicitly the Milkyway design to be saved. By
default, the command saves the current Milkyway design.
DESCRIPTION
This command saves the current Milkyway design or a specified design in
Milkyway format. It does not affect the open status of Milkyway designs
in the current session. To open or close Milkyway designs, use the
open_mw_cel or close_mw_cel command.
When you use the -as option, the command saves the specified design as
a new design, along with the files associcated with the design. The
associated views overwrite any identically named views if the view name
of the saved design is CEL and the period character (.) is not speci-
fied in the name of the new design.
The tool runs a database consistency checker before it saves the Milky-
way design. If the check fails, it appends "_CORRUPT" to the Milkyway
design name. For example, if you are saving the design named abc.CEL
and the consistency checker detects an error, the command writes out
the Milkyway design using the name "abc_CORRUPT.CEL".
The command saves the top-level Milkyway design or subdesigns when they
have been modified. When the top-level Milkyway design is unmodified
while subdesigns are modified, the commands saves the modified subde-
signs and updates the time stamp of the top-level Milkyway design.
The -hierarchy option does not close any Milkyway designs. Thus, any
open Milkyway designs remain open after the hierarchical save. If you
do another hierarchical save, the whole process is applied again for
the specified top-level Milkyway design.
When you use the -check_only option together with the -hierarchy
option, the command reports the list of Milkyway designs to be saved,
but does not save the Milkyway designs.
Multicorner-Multimode Support
By default, this command uses information from both active and inactive
scenarios. You can select different scenarios by using the -scenarios
option.
EXAMPLES
The following example saves the current design as a Milkyway design
named "my_new_design".
16
close_mw_cel
NAME
close_mw_cel
Closes the specified Milkyway designs.
SYNTAX
status close_mw_cel
[-save]
[-hierarchy]
[-all_views]
[-all_versions]
[mw_cel_list]
Data Types
mw_cel_list list
ARGUMENTS
-save Indicates that the specified Milkyway designs are to be saved
before closing. By default, the command discards any changes
made to the Milkyway design and closes the specified Milkyway
design.
-hierarchy
Closes the specified top design and all opened child designs. By
default, the command closes only the specified Milkyway designs.
-all_views
Closes all opened views of specified Milkyway designs. By
default, the command closes only the specified Milkyway designs.
If this option is used with -save, only views supported by
save_mw_cel will be saved first and then all opened views will
be closed. If specifying this option without -all_versions,
only the latest versions of all views will be closed.
-all_versions
Closes all versions of specified Milkyway designs. If specify-
ing this option with -all_views, all views and all versions of
the specified Milkway designs will be closed, or else only all
versions of the specified views will be closed.
mw_cel_list
Specifies Milkyway designs to be closed. You can specify Milky-
way designs by name, name pattern, or by the Milkyway design
collection's name. For example, specifying top matches a Milky-
way design named top in the current library. Specifying top*
matches all Milkyway designs having names beginning with top.
The command close_mw_cel [get_mw_cels *] closes all Milkyway
designs in the current library. By default, the command uses
the current Milkyway design.
DESCRIPTION
This command saves or discards specified Milkyway designs or the cur-
rent Milkyway design and then closes them.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
17)
read_def
NAME
read_def
Annotates the design with data from a file in Design Exchange
Format (DEF).
SYNTAX
status read_def
[-check_only]
[-enforce_scaling]
[-no_incremental]
[-verbose]
[-turn_via_to_inst]
[-inexactly_matched_via_to_inst]
[-lef lef_file_names]
[-snet_no_shape_as_user_enter]
[-snet_no_shape_as_detail_route]
[-preserve_wire_ends]
def_file_names
Data Types
lef_file_names list
def_file_names list
ARGUMENTS
-check_only
Analyzes the input DEF file without annotating any of the data
on the design. It provides diagnostic information on the cor-
rectness and integrity of DEF file.
-enforce_scaling
Instructs the tool to continue to annotate the design with
information given in the DEF file, even when conversion of data
from DEF units to library units could result in roundoff errors.
-no_incremental
Removes all pre-existing physical annotations before reading in
the physical information in the DEF file.
-verbose
Generates additional debugging messages of two types: informa-
tion and warnings.
-turn_via_to_inst
Creates turn vias as via cell instances rather than path
objects. Turn vias are represented in DEF as a single rectangle
(usually a piece of dangling metal).
-inexactly_matched_via_to_inst
Creates inexactly matched vias as via cell instances. Inexactly
matched vias are vias that match a Milkyway technology contact
code's cut dimensions, but the enclosure dimensions are larger
than those of the contact code. By default, the tool creates
inexactly matched vias as contact arrays and extra paths on the
enclosure layers.
-lef lef_file_names
Imports the rotated vias and design-specific nondefault rules
from the LEF files into the design. The incremental LEF files
are generated by the write_def command.
-snet_no_shape_as_user_enter
Marks the wire segments without "+ SHAPE" statement in SPECIAL-
NETS with the route type "user enter".
-snet_no_shape_as_detail_route
Marks the wire segments without "+ SHAPE" statement in SPECIAL-
NETS with the route type "detail route".
-preserve_wire_ends
Creates special power/ground wiring as paths without extensions
(that is, square ends), special fill wiring as rectangles, and
all other special and regular wiring as wires with half-width
extensions (that is, square ends by half-width).
def_file_names
Specifies the name of the file from which to draw physical data
to annotate onto the design. This file must be in Design
Exchange Format (DEF). For multiple files, the DEF files are
read in incrementally, and you must specify the DEF files in the
correct order. It strongly recommended that you remove overlap-
ping floorplanning data, such as ROWS, and duplicate routing
geometry data in the DEF files. Otherwise, these conditions
might be error-prone in the subsequent flow.
DESCRIPTION
This command annotates the design with physical design data taken from
a file in Design Exchange Format (DEF). The command can read both
uncompressed and compressed (in gzip format) DEF files.
The command reads physical data associated with the current design from
a DEF file. If cell, port, or net specified in the DEF file does not
exist in the database, the corresponding object is created in the
Milkyway database.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
EXAMPLES
In the following example, the design is annotated with the physical
data defined in the DEF file named top.def.
18)
add_end_cap
NAME
add_end_cap
Adds end cap cells to the cell rows in the current design.
SYNTAX
status add_end_cap
-lib_cell lib_cell_name
[-vertical_cells lib_cell_names [-fill_corner]]
[-mode both | bottom_left | upper_right]
[-mirror]
[-respect_padding]
[-respect_blockage]
[-respect_keepout]
[-ignore_soft_blockage]
[-skip_fixed]
[-next_to_fixed]
[-at_va_boundary]
[-at_plan_group_boundary]
Data Types
lib_cell_name collection of one cell
lib_cell_names collection of one or more cells
ARGUMENTS
-lib_cell lib_cell_name
Specifies the reference library cell to be used as horizontal
end caps. You can specify only one cell.
-vertical_cells lib_cell_names
Specifies the reference library cells to be used as vertical end
caps.
By default, the tool does not add vertical end cap cells.
-fill_corner
Fills the corners where vertical and horizontal end caps meet
with horizontal end cap cells. You must use this option with the
-vertical_cells option.
o bottom_left
Places an end cap cell at the bottom of a vertical row or to
the left of a horizontal row.
o upper_right
Places an end cap cell at the top of a vertical row or to the
right of a horizontal row.
-mirror
Places the end cap cell in a flipped orientation. This option
has no effect when you specify -mode both.
-respect_padding
Prevents the tool from placing end cap cells in the padding
areas around macro cells.
By default, the tool can place end cap cells in the padding
areas.
-respect_blockage
Prevents the tool from placing end cap cells inside placement
blockages.
By default, the tool can place end cap cells inside placement
blockages.
-respect_keepout
Prevents the tool from placing end cap cells inside the keepout
margins around macro cells. This option does not apply to keep-
out margins on other types of cells.
-ignore_soft_blockage
Ignores soft blockages and honors only hard blockages. You must
use this option with the -respect_blockage option.
-skip_fixed
Prevents the tool from placing end cap cells at locations that
are occupied by fixed cells. If placing a horizontal end cap at
either end of a row that overlaps a fixed cell, no horizontal
end cap is placed.
You must use this option with the -vertical_cells option. This
option is mutually exclusive with the -next_to_fixed option.
-next_to_fixed
Treats fixed cells that are less than one unit tile from a
boundary as a macro and places a horizontal end cap cell next to
the fixed cell. Other fixed cells are ignored by this option.
-at_va_boundary
Places horizontal end cap cells on both sides of the vertical
voltage area boundaries. When you use this option, rows are
treated as cut by the vertical voltage area boundaries. There-
fore, horizontal end cap cells are placed on both sides of a
vertical voltage area boundary.
-at_plan_group_boundary
Places horizontal end cap cells on both sides of the vertical
plan group boundaries. When you use this option, rows are
treated as cut by vertical plan group boundaries. Therefore,
horizontal end cap cells are placed on both sides of a vertical
plan group boundary.
If you use the -vertical_cells option and the remaining gaps are larger
than or equal to the smallest vertical end cap cells, the tool inserts
the vertical end cap cells in the specified order. If the remaining
gaps are smaller than the smallest vertical end cap cells, the tool
inserts the next cell in order. To avoid unfilled gaps, carefully con-
sider the size of the vertical end cap cells that you specify.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
EXAMPLES
The following example adds horizontal end cap cells named MY_END_CAP to
the current design.
18)
add_tap_cell_array
NAME
add_tap_cell_array
Adds tap cells to the design, forming a two-dimensional array
structure.
SYNTAX
status add_tap_cell_array
-master_cell_name cell_name
-distance tap_cell_distance
[-offset distance]
[-pattern normal | every_other_row | stagger_every_other_row]
[-voltage_area {voltage_area_collection}]
[-plan_group plan_group_collection]
[-tap_cell_identifier tap_cell_prefix]
[-tap_cell_separator tap_cell_separator]
[-no_tap_cell_under_layers layer_list]
[-well_port_name port_name]
[-well_net_name net_name]
[-substrate_port_name port_name]
[-substrate_net_name net_name]
[-connect_power_name power_net_name]
[-connect_ground_name ground_net_name]
[-fill_boundary_row true | false]
[-fill_macro_blockage_row true | false]
[-boundary_row_double_density true | false]
[-macro_blockage_row_double_density true | false]
[-left_macro_blockage_extra_tap by_rule | must_insert | no_insert]
[-right_macro_blockage_extra_tap by_rule | must_insert | no_insert]
[-left_boundary_extra_tap by_rule | must_insert | no_insert]
[-right_boundary_extra_tap by_rule | must_insert | no_insert]
[-ignore_soft_blockage true | false]
[-at_distance_only true | false]
[-skip_fixed_cells true | false | tap]
[-respect_keepout]
[-remove_redundant_tap_cells]
[-no_1x]
Data Types
cell_name string
tap_cell_distance float
distance float
voltage_area_collection collection
plan_group_collection collection
tap_cell_prefix string
tap_cell_separator string
layer_list list
port_name string
net_name string
power_net_name string
ground_net_name string
ARGUMENTS
-master_cell_name cell_name
Specifies the library reference cell to be used as a tap cell.
You can specify only a single library cell.
-distance tap_cell_distance
Specifies the distance in microns between two tap cells in a
row. This distance is referred to as the tap distance.
-offset distance
Specifies the distance in microns that the tap pattern should be
shifted to the right.
The default is 0.
o every_other_row
The tool adds tap cells to every other row for odd rows only.
This reduces the number of required tap cells by approximately
half as compared to the normal pattern. The tap distance spec-
ified for this pattern should be approximately twice the
design rule distance limit.
o stagger_every_other_row
The tool adds tap cells to every row. The tap cells on even
rows are offset with half the tap distance relative to the odd
rows, producing a checkerboard-like pattern. This pattern also
reduces the number of required tap cells by approximately half
as compared to the normal pattern. The tap distance specified
for this pattern should be approximately four times the design
rule distance limit.
-voltage_area {voltage_area_collection}
Inserts tap cells only in the specified voltage areas.
-plan_group plan_group_collection
Inserts tap cells only in the specified plan groups and under
the plan group hierarchy.
-tap_cell_identifier tap_cell_prefix
Specifies the prefix for the inserted tap cells.
-tap_cell_separator tap_cell_separator
Specifies the separator character that is used when composing
the instance name of the tap cell.
-no_tap_cell_under_layers layer_list
Avoids placing tap cells under the preroutes on the specified
metal layers.
-well_port_name port_name
Specifies the port name of the well tie.
-well_net_name net_name
Specifies the net name of the well tie.
-substrate_port_name port_name
Specifies the port name of the substrate tie.
-substrate_net_name net_name
Specifies the net name of the substrate tie.
-connect_power_name power_net_name
Specifies the net to connect the tap cell's power pin if there
is more than one power net in the design,
-connect_ground_name ground_net_name
Specifies the net to connect the tap cell's ground pin if there
is more than one ground net in the design.
This option is effective only when you also use the -pattern
every_other_row option.
This option is effective only when you also use the -pattern
every_other_row option.
This option is effective only when you also use the -pattern
stagger_every_other_row option.
This option is effective only when you also use the -pattern
stagger_every_other_row option.
o must_insert
If there is no tap cell within the minimum tap distance from
the left row edge, the tool inserts an extra tap cell at the
minimum tap distance from the left edge.
o no_insert The tool never inserts an extra tap cell at the left
edge of the row. When you use this setting, standard cells
near the left side of the row might need to rely on tap cells
inside the macro or blockage to satisfy the tap distance rule.
o must_insert
If there is no tap cell within the minimum tap distance from
the right row edge, the tool inserts an extra tap cell at the
minimum tap distance from the right edge.
o must_insert
If there is no tap cell within the minimum tap distance from
the left row edge, the tool inserts an extra tap cell at the
minimum tap distance from the left edge.
o no_insert The tool never inserts an extra tap cell at the left
edge of the row. When you use this setting, standard cells
near the left side of the row might need to rely on tap cells
outside the design's boundary to satisfy the tap distance
rule.
o must_insert
If there is no tap cell within the minimum tap distance from
the right row edge, the tool inserts an extra tap cell at the
minimum tap distance from the right edge.
When this option is set to true, the tool inserts tap cells only
at the specified distance, distance/2, or distance/4 (stagger
mode). This could cause DRC violations.
This option is effective only when the one or more of the fol-
lowing options are set to by_rule: -left_macro_block-
age_extra_tap, -right_macro_blockage_extra_tap, -left_bound-
ary_extra_tap, and -right_boundary_extra_tap.
When this option is true (the default), existing fixed cells are
treated like blockages and tap cells are not placed on top of
fixed cells. Extra tap cells might be placed next to fixed
cells, using the same rules as those applied to blockages.
When this option is set to tap, the tool does not place a tap
cell if the location is occupied by a fixed standard cell. The
result is similar to setting this option to false, except that
the tool does not place a tap cell that would cause an overlap.
-respect_keepout
Prevents the placement of tap cells inside the keepout margins
around macro cells.
By default, the tool can place tap cells inside the keepout mar-
gins.
-remove_redundant_tap_cells
Runs a clean-up operation after placing the well tap cells to
remove tap cells with the specified master cell name that are
not strictly necessary to meet the tap distance for the normal
pattern.
-no_1x Does not to allow one-unit-tile fillers in the design. When you
specify this option, tap cells are not placed at locations that
would cause one-unit-tile gaps between a tap cell and fixed
cells, macros, blockages, and the chip boundary. The no one-
unit-tile spacing rule takes precedence over all other tap
rules. The tool first places tap cells and then checks for one-
unit-tile gaps. Tap cells that cause single one-unit-tile gaps
are either moved (to the left or right) to the next legal loca-
tion or removed if no legal location is found. Tap cells that do
not cause one-unit-tile gaps are not moved.
Setting this option might cause tap distance and pattern viola-
tions. You need to specify a tighter tap distance to prevent
these violations.
DESCRIPTION
This command adds tap cells to the design, forming a two-dimensional
array structure. A tap cell is a special nonlogic cell with a well tie,
substrate tie, or both. Tap cells are typically used when most or all
standard cell in the library contain no substrate or well taps. The
design rules typically specify a distance limit from every transistor
of a standard cell to a well or substrate tie.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
19)
insert_buffer
NAME
insert_buffer
Inserts buffer cells on specified nets or nets connected to
specified ports or pins.
SYNTAX
collection insert_buffer
[-new_net_names new_net_names]
[-new_cell_names new_cell_names]
[-location coordinate_list]
[-orientation orientation_list]
[-no_of_cells number]
[-inverter_pair]
[-freeze_silicon]
object_list
buffer_lib_cell
[-divide_load_by denominator]
[-repeater_distance length]
[-port_half_distance]
[-ignore_pin_cap]
Data Types
new_net_names list
new_cell_names list
coordinate_list list
orientation_list list
number integer
object_list list
buffer_lib_cell collection
ARGUMENTS
-new_net_names new_net_names
Specifies the names of the new nets created by buffer insertion.
You should specify one net name per buffer, or two net names per
inverter pair when inserting inverter pairs. You can optionally
specify only a single common base name; the tool generates new
net names by adding unique numeric suffixes to this base name.
The specified names can be any valid net names, but must be leaf
(not hierarchical) names and cannot contain embedded hierarchi-
cal separators. They must be unique in the current context, as
specified by the current instance. If the specified net name
already exists, the command adds a suffix of "_%d" or "_%d_%d"
to the net name.
-new_cell_names new_cell_names
Specifies the names of the new buffer cells inserted. You
should specify one cell name per buffer, or two cell names per
inverter pair when inserting inverter pairs. You can optionally
specify only a single common base name; the tool generates new
cell names by adding unique numeric suffixes to this base name.
The specified names can be any valid cell names, but must be
leaf (not hierarchical) names and cannot contain embedded hier-
archical separators. They must be unique in the current context,
as specified by the current instance. If the specified cell
name already exists, the command adds a suffix of "_%d" or
"_%d_%d" to the cell name.
-location coordinate_list
Specifies the lower-left coordinates in microns for the loca-
tions of the buffer cells or inverter pairs, in the format {x1
y1 x2 y2 ...}. You must specify one location per buffer when
inserting buffers, or two locations per inverter pair when
inserting inverter pairs. These locations can be any valid x-y
coordinate pair inside the placement region of the core area,
relative to the chip origin.
By default, the tool derives the locations for the buffers based
on the pins specified for the object_list argument.
-orientation orientation_list
Specifies the orientation of the buffer cells or inverter pairs.
You must specify one orientation per buffer when inserting
buffers, or two orientations per inverter pair when inserting
inverter pairs. These orientations can be any valid orientation
allowed in the library, such as N, W, S, E, FN, FW, FS, or FE.
By default, the command uses the N orientation.
-no_of_cells number
Specifies the number of buffer cells or inverter pairs to be
inserted per net. The inserted repeaters are connected back-to-
back in series. By default, the command inserts a single buffer
cell or inverter pair per net.
-inverter_pair
Inserts inverter pairs instead of buffer cells. If you use this
option, you need to also specify a library cell that has an
inverting output, using the buffer_lib_cell option.
-freeze_silicon
Inserts buffer cells in a transitional state to support the ECO
freeze silicon flow. The place_freeze_silicon or
map_freeze_silicon command deletes the instances and replaces
them with existing spare cells of the same reference library
cell.
object_list
Specifies a list of nets, pins, or ports to be buffered. The
new buffers or inverter pairs are placed in the specified net or
in the net connected to the specified pins or ports, close to
pin or port.
If you specify a net, the inserted buffer is the new load of the
specified existing net.
If you specify pins, the tool groups all of the specified pins
based on the nets to which they are connected. When the grouped
pins are load pins, the tool inserts the buffers so that the new
buffer cells can drive them. When the grouped pins are driver
pins, the tool connects the new buffer cells so that they become
the load of the specified driver pin.
buffer_lib_cell
Specifies the library cell object to be used as a buffer or
inverter. Specify the object as either a named library cell or
a library cell collection. If the library cell is a buffer
cell, the number of instances inserted is equal to the number
specified by the -no_of_cells option. If the library cell is an
inverter, the cells are inserted as pairs, so the number of
instances inserted is twice the number specified by the
-no_of_cells option.
-divide_load_by denominator
This option is obsolete. Use the add_buffer_on_route command
instead.
-repeater_distance length
This option is obsolete. Use the add_buffer_on_route command
instead.
-port_half_distance
This option is obsolete. Use the add_buffer_on_route command
instead.
-ignore_pin_cap
This option is obsolete. Use the add_buffer_on_route command
instead.
DESCRIPTION
This command adds buffers or inverter pairs at one or more specified
nets, pins, or ports. A library cell with a single input and one or
more outputs can be used as the buffer or inverter, as long as each
output has the same or inverted logic function of the input.
Like all other netlist editing commands, all of the insert_buffer com-
mand's arguments must be valid to have a successful command run. If
any specified argument is invalid, the netlist remains unchanged. If
the command succeeds, the result is a collection of the newly inserted
cells. If the command fails, the result is an empty collection or an
empty string.
By default, each newly created cell has a name beginning with the
eco_cell string and ending with a unique numeric suffix. Each newly
created net has a name beginning with the eco_net string and ending
with a unique numeric suffix. To override the default name strings,
use the -new_net_names and -new_cell_names options.
Note that the locations of the new cells specified by the -location
option or the locations derived by the tool are not legalized. If you
use the legalize_placement command after using the insert_buffer com-
mand, the tool might move these new cells around to find legal loca-
tions.
You can mimic buffer insertion by using other commands such as cre-
ate_cell, create_net, disconnect_net, and connect_net. The
insert_buffer command provides a more efficient and reliable way to
insert buffers.
The insert_buffer command uses the following basic rules to check its
arguments for validity:
o The pin or port must be in the current scope (at or below the cur-
rent instance).
For a description of special scoping rules, see the "Buffering Inside
Boundary Pins" section.
o The library cell must have an inverting output when you use the
-inverter_pair option.
The command uses the first inverting output and inserts two cells so
that it preserves the logic sense of the path.
+--- e3/A
|
e1/Z ---- old_net -----+--- e4/A
|
+--- e5/A
If the specified pin is a load, the load first is disconnected from its
old net and then connected to the new net, as shown in the following
figure:
If the specified pin is a driver, all loads on that net are discon-
nected from the old net and are connected to the new net, as shown in
the following figure:
+--- e3/A
|
e1/Z --- old_net --- eco_cell --- eco_net -+--- e4/A
|
+--- e5/A
If you specify a list of load pins on the same net, these load pins are
grouped and the new net drives them, as shown in the following figure:
+--- e3/A
|
e1/Z --- old_net -+- eco_cell --- eco_net -+--- e4/A
|
+--- e5/A
The command cannot buffer a multidriver net.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information
20)
magnet_placement
NAME
magnet_placement
Performs magnet placement. Pulls standard cells closer to
macros and assigns legal locations.
SYNTAX
status magnet_placement
[-move_fixed]
[-mark_fixed]
[-move_soft_fixed]
[-mark_soft_fixed]
[-hierarchy_mode default | block | all]
[-exclude_cells object_list]
[-avoid_soft_blockages]
[-stop_by_sequential_cells]
[-exclude_buffers]
[-logical_level level]
[-stop_points object_list]
[-cells object_list]
[-align]
magnet_objects
Data Types
object_list collection
level integer
magnet_objects collection
ARGUMENTS
-move_fixed
Specifies that a cell marked fixed can be moved. A warning
occurs when a fixed cell is being moved. By default, fixed
cells cannot be moved.
-mark_fixed
Specifies that the cells are to be marked fixed after placement.
By default, no cells are marked fixed.
-move_soft_fixed
Specifies that a cell marked soft fixed can be moved. A warning
occurs when a soft-fixed cell is being moved. By default, fixed
cells cannot be moved.
-mark_soft_fixed
Specifies that the cells are to be marked fixed after placement.
By default, no cells are marked fixed.
o default
The tool traces through only buffers and inverters when
traversing from the magnet object to the cells within the
specified hierarchical block. This is the default setting.
o block
The tool does not traces through any cell when traversing from
the magnet object to the cells within the hierarchical block.
The tool pulls the cells of the specified hierarchical block
toward the magnet object only if they are directly connected
to the magnet object. This is the most restrictive setting.
o all
The tool traces through all combinational cells when travers-
ing from the magnet object to the cells within the specified
hierarchical block. However, it does not trace through sequen-
tial cells. This is the least restrictive setting.
-exclude_cells object_list
Instructs the command to skip the specified cells when pulling
cells toward the magnet object.
-avoid_soft_blockages
Specifies that cells should not be placed over soft blockages.
By default, soft blockages are ignored.
-stop_by_sequential_cells
Specifies to stop pulling cells closer to the magnet objects
when a sequential cell is encountered during level traversal.
This option should be used together with -logical_level
-exclude_buffers
Specifies not to consider buffers and inverters when calculating
the level. They are pulled like normal cells but are skipped
over for level determination. By default, buffers and inverters
are considered as one level of logic. This option should only
be used together with -logical_level.
-logical_level level
Specifies the number of logical levels to pull. By default,
level is 1 (only the first-level cells are pulled).
-stop_points object_list
Specifies to pull only the cells that are on the timing paths
between the magnet objects and the stop-points objects. The
objects can be lists of any pin, port, or cell objects.
-cells object_list
Specifies to pull only the cells in the specified object list.
You specify only cell objects in the object list.
magnet_objects
Specifies the objects to become magnets. The objects can be a
fixed macro cell, a fixed standard cell, a pin of a fixed macro
cell, or an I/O pin. Objects like vias and blockages are not
allowed to be magnets.
DESCRIPTION
The magnet_placement command allows you to define a set of objects as
magnets and pull the neighboring cells up to a specified logical level
closer to the magnet. Specify a large macro with many placeable stan-
dard cell neighbors. Magnet placement can be used on this type of
macro to ensure that the standard cells are placed close to the macro,
resulting in better timing and congestion.
With the -cells option, the cells that you specify should form an
intact datapath together with the magnet object. For example, if magnet
object connects to cell_a, cell_a connects to cell_b, you should spec-
ify both cell_a and cell_b. These cells do not have to be in a timing
path. Do not use the -cells option with the -stop_points,
-stop_by_sequential_cells, -exclude_buffers, and -logical_level
options.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
21)
set_app_var
NAME
set_app_var
Sets the value of an application variable.
SYNTAX
string set_app_var
-default
var
value
Data Types
var string
value string
ARGUMENTS
-default
Resets the variable to its default value.
var Specifies the application variable to set.
DESCRIPTION
The set_app_var command sets the specified application variable. This
command sets the variable to its default value or to a new value you
specify.
This command returns the new value of the variable if setting the vari-
able was successful. If the application variable could not be set,
then an error is returned indicating the reason for the failure.
o The value specified is not a legal value for this application vari-
able
22)
placer_max_cell_density_threshold
NAME
placer_max_cell_density_threshold
Enables a mode of coarse placement in which cells can clump
together.
TYPE
float
DEFAULT
-1
DESCRIPTION
This variable enables a mode of coarse placement in which cells are not
distributed evenly across the surface of the chip, but are allowed to
clump together. The value you specify sets the threshold of how
tightly the cells are allowed to clump. A value of 1.0 allows no gaps
between cells.
You can use this feature in conjunction with any command that invokes
coarse placement, such as create_fp_placement, create_placement, and
place_opt.
23)
report_physical_bus
NAME
report_physical_bus
Displays information about physical bus.
SYNTAX
status report_physical_bus
[physical_bus_list]
Data Types
physical_bus_list list
ARGUMENTS
physical_bus_list
Specifies the list of physical buses to be reported.
You can specify element of the list with a name pattern of phys-
ical buses or a collection containing physical buses.
DESCRIPTION
This command displays information about the specified physical buses.
In the report, nets in a physical bus are listed following the order in
that physical bus.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
23)
report_physical_signoff_options
NAME
report_physical_signoff_options
Reports option values set by set_physical_signoff_options that
are shared (in common) by signoff_drc command and sig-
noff_metal_fill command, etc.
SYNTAX
status report_physical_signoff_options
[-default]
ARGUMENTS
-default
Report default options of set_physical_signoff_options.
DESCRIPTION
This command reports option values that have been set by set_physi-
cal_signoff_options command.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
EXAMPLES
The following example runs the report_physical_signoff_options command.
prompt> set_physical_signoff_options \
-exec_cmd icv \
-dp_hosts { machine_1 machine_2 machine_3 machine_4 } \
-num_cpus 4 \
-drc_runset drc.rs \
-fill_runset fill.rs \
-mapfile layermap
prompt> report_physical_signoff_options
24)
get_bounds
NAME
get_bounds
Creates a collection of bounds from the current design.
SYNTAX
collection get_bounds
[-quiet]
[-regexp | -exact]
[-nocase]
[-filter expression]
[patterns | -of_objects objects]
Data Types
expression string
patterns list
objects list
ARGUMENTS
-quiet Suppresses warning and error messages if no objects match. Does
not suppress syntax error messages.
-regexp
Views the patterns argument as a regular expression rather than
a simple wildcard pattern.
-nocase
Makes matches case-insensitive, both for the patterns argument
and for the ==, =~, and !~ filter operators.
-filter expression
Filters the collection with the specified expression. For each
bound in the collection, the expression is evaluated based on
the bound's attributes. If the expression evaluates to true, the
bound is included in the result.
To see the list of bound attributes that you can use in the
expression, use the list_attributes -application -class bound
command.
For more information about how to use the -filter option, see
the filter_collection man page.
patterns
Creates a collection of bounds whose names match the specified
patterns. Patterns can include the * (asterisk) and ? (question
mark) wildcard characters. For more information about using and
escaping wildcards, see the wildcards man page. Pattern match-
ing is case sensitive unless you use the -nocase option.
-of_objects objects
Creates a collection of bounds that contain the specified
objects. The objects must be leaf cells or ports.
DESCRIPTION
This command creates a collection of bounds from the current design
that match the specified criteria.
You can use this command at the command prompt or you can nest it as an
argument to another command, such as query_objects or report_bounds. In
addition, you can assign the result to a variable.
When issued from the command prompt, the command behaves as though you
have called the query_objects command to report the objects in the col-
lection. By default, it displays a maximum of 100 objects. You can
change this maximum by using the collection_result_display_limit vari-
able.
For information about collections and the querying of objects, see the
collections man page.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
EXAMPLES
The following example gets all bounds with names that start with
my_bound.
25)
remove_bounds
NAME
remove_bounds
Removes bounds from the current design.
SYNTAX
status remove_bounds
[-verbose]
[-all]
[-name bound_name_list]
objects
Data Types
bound_name_list list
objects string
ARGUMENTS
-verbose
Prints information about what is being deleted.
-all Removes all bounds from the current design. This command
removes only bounds that have been created using the cre-
ate_bounds command. Bounds created in an input PDEF file cannot
be removed.
-name bound_name_list
Specifies to remove bounds with the given names.
objects
Specifies bound objects to be removed. You can use the
get_bounds command to specify the objects.
DESCRIPTION
This command removes bounds constraints from the current design. If
you specify the -all option, all bounds are be removed from the design,
with the exception of those specified in an input PDEF file. If you
give a list of bound names, the bounds with the specified names are
removed. The ID is displayed every time a bound is created. You can
use the report_bounds command to view the ID.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
EXAMPLES
The following example removes the bounds named temp_0 and temp_1.
NAME
get_placement_blockages
Creates a collection of placement blockages that match the spec-
ified criteria.
SYNTAX
collection get_placement_blockages
[-quiet]
[-within region
| -touching region
| -intersect region]
[-filter expression]
[-type hard | soft | pin | hard_macro | partial]
[patterns]
Data Types
region list of points
expression string
patterns list
ARGUMENTS
-quiet Suppresses warning and error messages.
-within region
Creates a collection that contains all placement blockages that
are completely inside the specified region and do not overlap
the boundary. The region boundary can be a rectangle or a poly-
gon.
The format for specifying a polygon is {{x1 y1} {x2 y2} ... {xN
yN} {x1 y1}}, where each {x y} pair specifies one point of the
input polygon. A valid polygon must be rectilinear, so the
startpoint and endpoint of the polygon are the same point.
-touching region
Creates a collection that contains all placement blockages that
are inside the specified region, including those that overlap
the boundary. The region boundary can be a rectangle or a poly-
gon.
The format for specifying a polygon is {{x1 y1} {x2 y2} ... {xN
yN} {x1 y1}}, where each {x y} pair specifies one point of the
input polygon. A valid polygon must be rectilinear, so the
startpoint and endpoint of the polygon are the same point.
-intersect region
Creates a collection that contains all placement blockages that
intersect the boundary of the specified region and at least part
of the cell is outside of the specified region. The region
boundary can be a rectangle or a polygon.
The format for specifying a polygon is {{x1 y1} {x2 y2} ... {xN
yN} {x1 y1}}, where each {x y} pair specifies one point of the
input polygon. A valid polygon must be rectilinear, so the
startpoint and endpoint of the polygon are the same point.
-filter expression
Filters the collection with the specified expression. For each
placement blockage in the collection, the expression is evalu-
ated based on the placement blockage's attributes. If the
expression evaluates to true, the placement blockage is included
in the result.
For more information about how to use the -filter option, see
the filter_collection man page.
patterns
Creates a collection of placement blockages whose names match
the specified patterns. Placement blockages that are named by
the tool have the naming convention PB#n, where n is an integer.
Patterns can include the * (asterisk) and ? (question mark)
wildcard characters. For more information about using and escap-
ing wildcards, see the wildcards man page. Pattern matching is
case sensitive.
If you do not specify this argument, the command uses * (aster-
isk) as the default pattern.
DESCRIPTION
This command creates a collection of placement blockages by selecting
placement blockages from the current design that match the specified
criteria.
You can use this command at the command prompt or you can nest it as an
argument to another command, such as query_objects. In addition, you
can assign the result to a variable.
When issued from the command prompt, the command behaves as though you
have called the query_objects command to report the objects in the col-
lection. By default, it displays a maximum of 100 objects. You can
change this maximum by using the collection_result_display_limit vari-
able.
For information about collections and the querying of objects, see the
collections man page.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
27)
remove_placement_blockage
NAME
remove_placement_blockage
Removes placement blockages.
SYNTAX
status remove_placement_blockage
patterns | -name name | -all
[-verbose]
Data Types
patterns collection
name string
ARGUMENTS
patterns
Specifies the pattern by which this command finds and removes a
placement blockage. The patterns can be a collection of block-
ages, or other formats, such as * or pb#* (removes all placement
blockages) or pb#7789 (removes one placement blockage whose
object_id is 7789).
The patterns argument, the -name option, and the -all option are
mutually exclusive.
-name name
Specifies a name by which this command finds and removes a
placement blockage. The name must be the same name specified
for the placement blockage when it was created with the cre-
ate_placement_blockage command. The name must not be a runtime
name, such as pb#7789.
The patterns argument, the -name option, and the -all option are
mutually exclusive.
The patterns argument, the -name option, and the -all option are
mutually exclusive.
-verbose
Prints additional messages.
DESCRIPTION
This command removes all specified placement blockages.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
EXAMPLES
The following example removes all placement blockages:
prompt> remove_placement_blockage \
[get_placement_blockages * -within {{2 2} {25 25}}]
28)
report_congestion
NAME
report_congestion
Reports the congestion statistics.
SYNTAX
status report_congestion
[-routing_stage global | track | detail]
[-effort minimum | low | medium | high]
[-from_saved_congestion_map]
[-grc_based]
[-grc_number grc_number]
[-overflow_threshold threshold]
[-by_layer]
[-coordinates {rectangle}
| -polygon {polygon_area}]
Data Types
grc_number integer
threshold integer
rectangle list of points
polygon_area list of points
ARGUMENTS
-routing_stage global | track | detail
Specifies the routing stage for reporting the congestion map.
o track
Reports a track assignment congestion map. By default, the
tool generates a new track assignment congestion map from the
current track assignment routing information. Before running
this command, you need to ensure that the design is track
assigned.
o detail
Reports a detail route congestion map. By default, the tool
generates a new detail route congestion map from the current
detail routing information. Before running this command, you
need to ensure that the design is detail routed.
The lower effort has a faster runtime but results in a more pes-
simistic congestion number. The higher effort has a better con-
gestion result but requires a longer runtime. The default is
medium.
-from_saved_congestion_map
Reports the existing congestion map for the specified routing
stage from the design library.
The command runs faster when you specify this option because the
congestion map is not regenerated. However, it is possible that
the existing congestion map is not up-to-date, so you need to
ensure that the existing congestion map is valid and up-to-date
when using this option.
This option and the -effort option are mutually exclusive.
-grc_based
Generates a GRC-based congestion report that provides informa-
tion about the 10 worst global routing cells (GRCs) in terms of
total congestion, horizontal congestion, and vertical conges-
tion.
-grc_number grc_number
Generates a GRC-based congestion report that is similar to the
report generated by the -grc_based option, except that it
reports the specified number of global routing cells for each
category, rather than 10.
-overflow_threshold threshold
Specifies the threshold for the overflow value.
When you use this option, the command generates a GRC-based con-
gestion report. The report is similar to the report generated by
the -grc_based option, except that it reports only those global
routing cells that exceed the specified overflow threshold, up
to a maximum of 10 global routing cells per category.
-by_layer
Generates a layer-based congestion report, which includes a con-
gestion summary for each routing layer and the default conges-
tion summary.
-coordinates {rectangle}
Generates a congestion report for only the specified region.
The format for specifying a rectangle is {llx lly urx ury}. The
coordinates of the rectangle are in microns.
-polygon {polygon_area}
Generates a congestion report only for the specified region.
The format for specifying a polygon is {{x1 y1} {x2 y2} {x3
y3}...{x1 y1}}. Note that the first point and the last point in
the list must be the same. The coordinates of the polygon are in
microns.
DESCRIPTION
This command generates a congestion map based on the specified routing
stage. By default, it runs global routing, generates a new congestion
map, and reports congestion statistics for the current design.
During global routing, this command uses Zroute as the default router.
To use the classic router instead, use the set_route_mode_options
-zroute false command. Note that this setting affects all routing com-
mands.
Multicorner-Multimode Support
This command has no dependency on scenario-specific information.
EXAMPLES
The following example runs the report_congestion command:
prompt> report_congestion
...
Both Dirs: Overflow = 39 Max = 8 (1 GRCs) GRCs = 14 (0.26%)
H routing: Overflow = 6 Max = 2 (2 GRCs) GRCs = 4 (0.07%)
V routing: Overflow = 33 Max = 8 (1 GRCs) GRCs = 10 (0.18%)
29)
psynopt
NAME
psynopt
Performs incremental optimization on the design.
SYNTAX
status psynopt
[-area_recovery]
[-only_area_recovery]
[-congestion]
[-no_design_rule | -only_design_rule]
[-only_hold_time]
[-in_place_size_only]
[-size_only]
[-preserve_footprint]
[-power]
[-only_power]
[-ignore_scan]
[-continue_on_missing_scandef]
[-refine_critical_paths max_path_count]
Data Types
max_path_count int
ARGUMENTS
-area_recovery
Enables area recovery for the cells not on the timing critical
paths.
-only_area_recovery
Specifies that only area recovery is performed. Timing opti-
mization and logical design rule fixing are not performed.
-congestion
Enables congestion removal algorithms for improved routability.
-no_design_rule
Disables logical design rule fixing.
When you specify this option, the tool exits before fixing the
design rule violations. You can check the results in a con-
straint report before fixing the violations.
-only_design_rule
Specifies that only logical design rule fixing is performed.
Timing optimization is not performed.
-only_hold_time
Specifies that only hold time violations are fixed.
When you use this option, you must use the set_fix_hold command
to specify the clocks on which to perform hold time fixing
before running the psynopt command.
-in_place_size_only
Restricts optimization to in-place sizing changes only. Opti-
mization procedures that insert new cells and remove cells are
disabled.
-size_only
Restricts optimization to sizing changes only. Optimization
procedures that insert new cells and remove cells are disabled.
-preserve_footprint
Restricts optimization to footprint-preserving sizing only.
-power
Enables power-aware timing optimization and leakage-power opti-
mization.
-only_power
Enables only leakage-power optimization.
-ignore_scan
Ignores scan chain connections during placement.
When you specify this option, you must load the SCANDEF data
that defines the scan chains before running the psynopt command.
You can use the get_scan_chains command to check if the SCANDEF
data is available.
-continue_on_missing_scandef
Continues placement when the design contains scan chains but no
SCANDEF data.
-refine_critical_paths max_path_count
Specifies the number of worst critical paths on which to perform
register optimization. Register optimization moves registers and
combinational logic along timing paths to minimize timing viola-
tions.
The default is 0.
DESCRIPTION
The psynopt command performs incremental preroute or postroute opti-
mization on the current design. The output of this command is a
legally placed netlist.
Multicorner-Multimode Support
This command uses information from all active scenarios. If you enable
power optimization, you must select the leakage scenarios before run-
ning the psynopt command.
EXAMPLES
The following example runs the psynopt command in the preroute flow:
prompt> psynopt
30) Command Reference
place_opt
NAME
place_opt
Performs simultaneous placement, routing, and optimization on
the design.
SYNTAX
status place_opt
[-effort low | medium | high]
[-area_recovery]
[-optimize_dft]
[-congestion]
[-power]
[-cts]
[-spg]
[-skip_initial_placement]
[-consider_scan]
[-continue_on_missing_scandef]
[-optimize_icgs]
ARGUMENTS
-effort low | medium | high
Specifies the effort level for place_opt.
-area_recovery
Enables area recovery for the cells not on the timing critical
paths.
-optimize_dft
Enables scan chain reordering, which performs placement-aware
scan reordering. It aims to reduce the scan chain wire length,
minimize congestion, and improve routability.
When you specify this option, you must load the SCANDEF data
that defines the scan chains before running the place_opt com-
mand. You can use the get_scan_chains command to check if the
SCANDEF data is available.
-congestion
Enables congestion removal algorithms for improved routability.
-power
Enables power-aware timing optimization and leakage-power opti-
mization during the place_opt command.
-cts
Enables clock tree synthesis, optimization, and routing within
the place_opt command. It also enables the optimization engine
to work with propagated clock network delays.
When you specify this option, you must specify all clock-related
constraints before running the place_opt command.
-spg
Enables the use of Synopsys physical guidance information from
the Design Compiler tool. The compile_ultra command in Design
Compiler needs to run with the same option. With the -spg
option, the place_opt uses the physical guidance information
from Design Compiler to guide optimization.
-skip_initial_placement
Skips the initial placement stage that is invoked first during
the place_opt flow.
When you specify this option, you must ensure that the initial
placement has been performed; that is, all cells have valid
locations and macro cells are fixed. Otherwise, the place_opt
command exits with an error.
You also need to ensure that high fanout synthesis has been
done. With this option, only incremental high fanout synthesis
is performed during the place_opt flow.
-consider_scan
Considers the scan chain connections during placement. You
should not specify this option when performing the DFT optimiza-
tion flow because scan nets affect placement.
By default, the command ignores scan nets and disables DFT opti-
mization.
-continue_on_missing_scandef
Continues placement when the design contains scan chains but no
SCANDEF data.
-optimize_icgs
DESCRIPTION
This command performs simultaneous placement, routing, and optimization
on the current design. The output of this command is a legally placed
netlist. If you specify the -cts option, the output also includes a
fully synthesized, optimized, routed, and extracted clock network.
Multicorner-Multimode Support
This command uses information from all active scenarios. If you enable
power optimization, you must select the leakage scenarios before run-
ning the place_opt command.
EXAMPLES
The following example runs the place_opt command in timing-driven mode.
prompt> place_opt
SEE ALSO
clock_opt(2)
create_buffer_tree(2)
create_placement(2)
extract_rc(2)
identify_clock_gating(2)
legalize_placement(2)
psynopt(2)
route_opt(2)
set_place_opt_cts_strategy(2)
create_net_search_pattern(2)
set_net_search_pattern_delay_estimation_options(2)
set_multi_vth_constraint(2)
set_scenario_options(2)
icc_preroute_power_aware_optimization(3)
set_place_opt_strategy(2)
report_place_opt_strategy(2)
31)
create_placement
NAME
create_placement
Performs coarse placement on the current design.
SYNTAX
status create_placement
[-effort low | medium | high]
[-quick]
[-timing_driven]
[-congestion [-congestion_effort low | medium | high]]
[-check_only]
[-mpc]
[-consider_scan]
[-continue_on_missing_scandef]
[-optimize_icgs]
ARGUMENTS
-effort low | medium | high
Specifies the CPU effort level for coarse placement. The
default effort level is medium.
-timing_driven
Enables direct timing-driven placement mode.
-congestion
Enables congestion-driven placement mode.
-check_only
Checks whether the design and the libraries have all of the nec-
essary information to run the command. This option cannot be
used with other options.
The default values are 60% cell density and 1:1 aspect ratio.
The cell area information is taken from the physical cell
library. See the set_mpc_options command for details on how to
set up physical constraints.
-consider_scan
Specifies to consider the scan chain connections during place-
ment. You should not specify this option when performing the
DFT optimization flow because scan nets affect placement.
By default, the command ignores scan nets and disables DFT opti-
mization.
-continue_on_missing_scandef
Specifies to continue placement when the design contains scan
chains but no SCANDEF data. By default, missing SCANDEF data
causes the command to exit with an error message. If you specify
this option, the command continues with a warning and results in
reduced QoR. Setting this option enables the placer to continue
and consider the scan chains regardless of the setting of the
-consider_scan option.
-optimize_icgs
When the option is specified, additional steps to merge and
restructure the clock gates based on design topology are per-
formed. You should consider using this option when clock gating
enable paths are timing critical in your design. This option
will increase runtime.
DESCRIPTION
The create_placement command performs coarse placement on the current
design.
Multicorner-Multimode Support
This command uses information from all active scenarios.
EXAMPLES
The following example runs the create_placement command in timing-
driven mode:
SEE ALSO
legalize_placement(2)
psynopt(2)
read_def(2)
write_def(2)
33)
refine_placement
NAME
refine_placement
Performs incremental placement with congestion optimization.
SYNTAX
status refine_placement
[-congestion_effort low | medium | high]
[-perturbation_level min | medium | high | max]
[-ignore_scan]
[-coordinates bbox
| [-continue_on_missing_scandef]
Data Types
bbox rectangle
ARGUMENTS
-congestion_effort low | medium | high
Specifies the effort level of congestion removal. The higher
effort, the less attention is paid to other objects: timing,
density and total wire-length. The default effort level is
medium.
-ignore_scan
Ignores scan chain connections during placement. Before using
this option you must first use the read_def command to read in
scan chain information.
-coordinates bbox
Specifies one rectangle, or multiple rectangle regions list,
from which to run incremental congestion removal.
-continue_on_missing_scandef
Specifies to continue placement when the design contains scan
chains but no SCANDEF data. By default, missing SCANDEF data
causes the command to exit with an error message. If you specify
this option, the command continues with a warning and results in
reduced QoR. Setting this option enables the placer to continue
and consider the scan chains regardless of the setting of the
-ignore_scan option.
DESCRIPTION
The refine_placement command performs incremental congestion optimiza-
tion for the current design. This command does not touch netlist, and
it provides a legalized placement at the end.
Multicorner-Multimode Support
This command operates a scenario selected based on timing QoR.
EXAMPLES
The following example runs the refine_placement command in low-effort
congestion mode:
SEE ALSO
create_placement(2)
remove_congestion_options(2)
report_congestion(2)
report_congestion_options(2)
set_congestion_options(2)