CPF File
CPF File
Version 1.0
October 2006
THE REQUESTED DOCUMENT DESCRIBING THE COMMON POWER FORMAT (CPF DOCUMENT), AND
ALL MATERIALS AND INFORMATION THEREIN, ARE PROVIDED AS IS AND WITHOUT WARRANTY OF
ANY KIND. NEITHER SI2, CADENCE DESIGN SYSTEMS, INC. (CADENCE) NOR ANY OTHER THIRD
PARTY MAKES ANY REPRESENTATION OR WARRANTY WITH RESPECT TO THE COMMON POWER
FORMAT, THE CPF DOCUMENT OR ANY OF THE MATERIALS OR INFORMATION THEREIN. IN
ADDITION, NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, WHETHER WRITTEN, ORAL,
IMPLIED OR STATUTORY, INCLUDING WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR
FITNESS FOR A PARTICULAR PURPOSE OR ARISING FROM COURSE OF DEALING OR USAGE IN
TRADE ARE MADE OR SHALL APPLY.
NEITHER SI2 NOR CADENCE SHALL BE LIABLE FOR ANY SPECIAL, INCIDENTAL, PUNITIVE,
INDIRECT, OR CONSEQUENTIAL DAMAGES OF ANY NATURE ARISING FROM OR RELATING TO THE
COMMON POWER FORMAT, THE CPF DOCUMENT OR ANY MATERIALS OR INFORMATION THEREIN,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH LOSS OR DAMAGES.
The CPF Document is subject to protection under Copyright Laws: Copyright (c) 2006 Cadence Design
Systems, Inc. All Rights Reserved Worldwide. Any unauthorized use, reproduction, modification, or distribution
of the CPF Document is strictly prohibited. Except as expressly set forth in the LPC Membership Agreement, no
right or license is granted or implied under any copyrights in or to the CPF Document. No right or license is
granted to distribute or otherwise dispose of any Source Code (as defined in the LPC Membership Agreement),
either expressly or by implication, estoppel or otherwise.
The CPF Document is preliminary. No assurances are provided that the CPF Document will be compatible with
subsequent versions or with any version that may be implemented in any products or technology or that may be
adopted by any standards organization. No obligations have been undertaken to provide or disclose any
subsequent versions of the CPF Document.
2006 Cadence Design Systems, Inc. All rights reserved.
Printed in the United States of America.
Cadence Design Systems, Inc., 555 River Oaks Parkway, San Jose, CA 95134, USA
Trademarks: Trademarks and service marks of Cadence Design Systems, Inc. (Cadence) contained in this
document are attributed to Cadence with the appropriate symbol. For queries regarding Cadence’s trademarks,
contact the corporate legal department at the address shown above or call 800.862.4522.
All other trademarks are the property of their respective holders.
Limitations on Use, Distribution, and Access: This publication contains proprietary information owned by
Cadence. This publication may not be copied, reproduced, modified, published, uploaded, posted, transmitted,
or distributed in any way, without prior written permission from Cadence.
Disclaimer: Information in this publication is subject to change without notice and does not represent a
commitment on the part of Cadence. Except as may be explicitly set forth in such agreement, Cadence does
not make, and expressly disclaims, any representations or warranties as to the completeness, accuracy or
usefulness of the information contained in this document. Cadence does not warrant that use of such
information will not infringe any third party rights, nor does Cadence assume any liability for damages or costs
of any kind that may result from use of such information.
Restricted Rights: Use, duplication, or disclosure by the Government is subject to restrictions as set forth in
FAR52.227-14 and DFAR252.227-7013 et seq. or its successor.
Common Power Format
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1
Introducing the Common Power Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2
Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3
CPF File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4
General CPF Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5
Library Cell-Related CPF Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6
Quick Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Preface
Documentation Conventions
To aid the readers understanding, a consistent formatting style has been used throughout this
manual.
The list below describes the syntax conventions used for the CPF constraints.
literal Nonitalic words indicate keywords that you must type literally.
These keywords represent command or option names.
arguments and options Words in italics indicate user-defined arguments or options for
which you must substitute a name or a value.
... Three dots (...) indicate that you can repeat the previous
argument. If the three dots are used with brackets (that is,
[argument]...), you can specify zero or more arguments. If
the three dots are used without brackets (argument...), you
must specify at least one argument, but can specify more.
1
Introducing the Common Power Format
■ Introduction on page 6
■ Format Specifics on page 9
❑ Object Names on page 9
❑ List of Objects on page 10
❑ Hierarchy Delimiter on page 10
❑ Bus Delimiters on page 11
❑ Range Specification on page 11
❑ Individual Registers Names on page 11
❑ Expressions on page 13
❑ Units on page 13
■ Example on page 14
Introduction
The shift in the use of chips to consumer applications and the change in the latest process
technologies have made power one of the primary design criteria for a majority of the chips
worldwide. However, the industry’s design infrastructure has not evolved at the same pace.
Figure1-1 shows the mature state of the infrastructure for functional designs versus the
chaotic state of the infrastructure for designs using advanced low power design techniques.
To accomplish an industry-wide solution for this industry-wide problem, every effort was made
to use an open and inclusive approach to create a complete and well architected solution.
The lack of support in the infrastructure for designs using advanced low power design
techniques has resulted in a gap between the design techniques needed to control power
dissipation and the ability of the design environment to support those techniques in a safe
and efficient manner. The Common Power Format has been architected to supply the
infrastructure needed to support the state of the art in low power design styles and
techniques.
The requirements for the Common Power Format were created using a wide range of
viewpoints and with a broad range of applications in mind:
The broad participation in creating the requirements specification ensured the architecture of
a comprehensive solution that would be complete in nature. Some primary requirements are:
■ Easy to adopt—to overcome cost, time and risk deployment issues.
■ Incremental to existing infrastructure—overlay on top of methods in place.
■ Non-intrusive to existing practices, methodologies and flows
■ Serves IP/re-use methodologies with a minimal incremental effort
■ Consolidated view of the power strategy for a design into a single entity
■ Comprehensive in capabilities to support the most advanced existing low power design
techniques, across the entire continuum of design automation.
■ Extensible to new low power design techniques and to broader design flow scope (up
to system-level and into analog mixed signal in particular).
A bottom-up analysis has led to support for a digital RTL to sign-off solution. Although limited
in scope, the solution is broad in terms of design automation technology inclusion:
Adopting the Common Power Format into standard design flows will have fundamental
benefits to those that use it along with industry leading tool solutions. It
■ Enables RTL functional verification to validate power related operation
■ Guarantees higher design quality with fewer functional failures
■ Reduces risk in applying state-of-the-art low power design techniques
■ Increases productivity and reduced cost of using those power saving methods
Figure 1-2 Benefit of the Common Power Format on the Design Flow
Format Specifics
The Common Power Format (CPF) is a strictly Tcl-based format.
The CPF file is a power specification file. This implies that the functionality of the design does
not change when sourcing a CPF file. The CPF file complements the HDL description of the
design and can be used throughout the design creation, design implementation, and design
verification flow.
Object Names
Design object names must specify the path to the objects. An object name is specified with
respect to the module name specified in the last set_design command.
The CPF file for a hierarchical design can contain multiple set_design commands.
The first set_design command specifies the top module of the design. The top module is
at the root of the design hierarchy and is referred to as the top design.
CPF objects are created with a unique name for each type of object.The name cannot contain
the hierarchy delimiter character.
See Referencing CPF Objects for more information on referencing CPF objects inside and
outside the current scope.
Note: In this document, scope refers to either the current design or the top design.
Important
If the object name contains a $, you need to escape the dollar sign.
■ Object names that contain the escape character must be enclosed in braces ({}).
■ Escaped object names must start with the backslash character (\) and end with a white
space (blank, tab, newline).
List of Objects
Lists of objects must be enclosed in braces.
You can also specify multiple objects (instances, pins, nets and modules) by including
wildcards:
■ * matches zero or more characters
■ ? matches a single character
Important
Wildcard characters do not represent the hierarchical separator.
Hierarchy Delimiter
The default hierarchy delimiter character is the period (.). Other supported characters are
■ slash (/)
■ caret (^)
Bus Delimiters
The default bus delimiters are the square brackets ([ ]). However, because the square
brackets represent command substitution in the Tcl language, you need to enclose the bus
name in curly braces.
These characters only have this special meaning in object names. When the object name is
escaped, the square brackets lose their meaning as bus delimiters.
Range Specification
To specify a range (multiple bits of a bus or of a register array), use the bus delimiters and the
colon (:). For example:
a[2:7]
b[6:3]
c_reg[4:2]
The format of a name in RTL and in the netlist can be different. When you want to use the
RTL names in the CPF file, but you are reading a gate-level netlist, you need to specify how
the base name and bit information are represented in the netlist.
All pieces of the suffix are concatenated, from the highest dimension to the lowest dimension,
to form a combined suffix for multi-dimensional arrays.
Expressions
In this document, all expressions refer to Boolean expressions.
The current version only supports the following operators for Boolean expressions:
Operator Description
! invert following expression
& logical AND
| logical OR
All operators associate left to right. When operators differ in precedence, the operators with
higher precedence apply first. In the table above, the operators are shown in order of
precedence.
Important
You can use parentheses () to change the operator precedence.
Important
Signal names in expressions cannot represent buses.
Units
To specify the power unit, use the set_power_unit command. The default power unit is mW.
To specify the time unit, use the set_time_unit command. The default time unit is ns.
Example
Consider the example design shown in Figure 1-3 on page 14.
■ Hierarchical instances inst_A and inst_B belong to the power domain PD2
■ Hierarchical instance inst_C belongs to power domain PD3
■ Hierarchical instance inst_D belongs to power domain PD4
Table 1-1 on page 15 shows the static behavior (voltage) for each power domain in each of
the modes.
Note: A voltage of 0.0V indicates that the power domain is off.
Power Domain
Power Mode
PD1 PD2 PD3 PD4
PM1 1.2V 1.1V 1.2V 1.0V
PM2 1.2V 0.0V 1.2V 1.0V
PM3 1.2V 0.0V 0.0V 1.0V
PM4 1.0V 0.0V 0.0V 0.0V
The power manager (pm_inst) generates three sets of control signals to control each power
domain.
Control Signals
Power Domain
power switch isolation cell state retention cell
PD1 no control signal no control signal no control signal
PD2 pse_enable[0] ice_enable[0] pge_enable[0]
PD3 pse_enable[1] ice_enable[1] pge_enable[1]
PD4 pse_enable[2] ice_enable[2] pge_enable[2]
2
Terminology
Design Objects
Design objects are objects that are being named in the description of the design which can
be in the form of RTL files or a netlist. Design objects can be referenced by the CPF
commands.
Design
The top-level module.
Instance
An instantiation of a module or library cell.
■ Hierarchical instances are instantiations of modules.
■ Leaf instances are instantiations of library cells.
Module
A logic block in the design.
Net
A connection between instance pins and ports.
Pad
An instance of an I/O cell.
Pin
An entry point to or exit point from an instance or library cell.
Port
An entry point to or exit point from the design or a module.
CPF Objects
CPF objects are objects that are being defined (named) in the CPF constraint file. CPF
objects can be referenced by the CPF commands.
Analysis View
A view that associates an operating corner with a power mode for which SDC constraints
were specified.
The set of active views represent the different design variations (MMMC, that is, multi-mode
multi-corner) that will be timed and optimized.
Isolation Rule
Defines the location and type of isolation logic to be added and the condition for when to
enable the logic.
Library Set
A set (collection) of libraries that was characterized for the same set of operating conditions.
By giving the set a name it is easy to reference the set when defining operating corners.
Mode Transition
Defines when the design transitions between the specified power modes.
Operating Corner
A specific set of process, voltage, and temperature values under which the design must be
able to perform.
Power Domain
A collection of instances that use the same power supply during normal operation and that
can be switched on or off at the same time. You can also associate boundary ports with a
power domain to indicate that the drivers for these ports belong to the same power domain.
The only leaf instances allowed are IP blocks and I/O pads.
Power Mode
A static state of a design in which each power domain operates on a specific nominal
condition.
Always On Cell
A special cell located in a switched-off domain, and whose power supply is continuous on
even when the power supply for the rest of the logic in the power domain is off.
Isolation Cell
Logic used to isolate signals between two power domains where one is switched on and one
is switched off.
The most common usage of such cell is to isolate signals originating in a power domain that
is being switched off, from the power domain that receives these signals and that remains
switched on.
3
CPF File
Command Categories
The following table shows how the CPF commands can be categorized.
Information Precedence
■ If you define a CPF object in a specific scope multiple times with the same name, the last
definition takes precedence.
You can add implementation details for CPF objects using multiple update commands as
long as each command specifies unique information. If the same information is specified,
the information specified in the last command takes precedence.
■ If information defined in the CPF file conflicts with information in the referenced library,
the information in the CPF file takes precedence.
Information Inheritance
The following commands are scope sensitive:
set_array_naming_style
set_cpf_version
set_hierarchy_separator
set_register_naming_style
set_time_unit
set_power_unit
You can change the values for the current scope, but these values only apply as long as you
are within the scope.
4
General CPF Commands
■ create_analysis_view on page 33
■ create_bias_net on page 34
■ create_global_connection on page 35
■ create_ground_nets on page 37
■ create_isolation_rule on page 38
■ create_level_shifter_rule on page 40
■ create_mode_transition on page 42
■ create_nominal_condition on page 43
■ create_operating_corner on page 44
■ create_power_domain on page 45
■ create_power_mode on page 48
■ create_power_nets on page 49
■ create_power_switch_rule on page 51
■ create_state_retention_rule on page 53
■ define_library_set on page 55
■ end_design on page 56
■ identify_always_on_driver on page 57
■ identify_power_logic on page 58
■ set_array_naming_style on page 59
■ set_cpf_version on page 60
■ set_design on page 61
■ set_hierarchy_separator on page 62
■ set_instance on page 63
■ set_power_target on page 65
■ set_power_unit on page 66
■ set_register_naming_style on page 67
■ set_switching_activity on page 68
■ set_time_unit on page 70
■ update_isolation_rules on page 71
■ update_level_shifter_rules on page 73
■ update_nominal_condition on page 74
■ update_power_domain on page 75
■ update_power_mode on page 77
■ update_power_switch_rule on page 80
■ update_state_retention_rules on page 82
create_analysis_view
create_analysis_view
-name string
-mode mode
-domain_corners domain_corner_list
Creates an analysis view. Associates a list of operating corners with a given mode.
-domain_corners domain_corner_list
Specifies the operating corner of the power domain to be
considered in the specified mode.
Use the following format to specify a domain corner:
domain_name@corner_name
Specify a corner for each domain that you listed when you
defined the specified power mode and that is not switched off in
that mode.
-mode mode Specifies a mode.
-name string Specifies the name of the analysis view.
Note: The specified string cannot contain wildcards.
Note: The specified string cannot contain the hierarchy delimiter
character.
create_bias_net
create_bias_net
-net net
[-driver pin]
[-user_attributes string_list]
[-peak_ir_drop_limit float]
[-average_ir_drop_limit float]
Specifies or creates a bias net to be used as a power supply to either forward or backward
bias a transistor.
Note: Even if this net exists in the RTL or the netlist, it still must be declared through this
command if the net is referenced in other CPF commands.
-average_ir_drop_limit float
Specifies the maximum allowed average voltage change on a
bias net due to resistive effects in volt (V) for any mode.
Default: 0
-driver pin Specifies the driver pin of the net.
-net net Declares a bias net.
Note: The specified net name cannot contain the hierarchy
delimiter character.
-peak_ir_drop_limit float
Specifies the maximum allowed peak voltage change on a bias
net due to resistive effects in volt (V) for any mode.
Default: 0
-user_attributes string_list
Attaches a list of user-defined attributes to the net. Specify a list
of strings.
create_global_connection
create_global_connection
-net net
-pins pin_list
[-domain domain | -instances instance_list]
Specifies how to connect a global net to the specified pins. A global net can be a data net,
bias net, power net or ground net.
Given a list of pins, if a specified pin is already connected, that pin is ignored for connection
while the remaining pins are connected to the specified global net.
This command allows to specify which pins must be connected. You can
■ Specify all pins to be connected with the -pins option
If you omit the -domain or -instances option, the global connection applies to the
specified pins of the entire design.
■ Combine options to filter the set of pins:
❑ Combine -pins and -domain options—only connects those pins in the specified
list that also belong to the specified power domain
❑ Combine -pins and -instances options—only connects those pins in the
specified list that also belong to the specified instances.
-instances instance_list
Limits the pins to which the specified global net should be
connected to pins that belong to the specified instances. Specify
the name with respect to the current design or top design.
You can use wildcards (*) to specify a pattern of instance names.
-net net Specifies the name of the global net for which you specify the
global connection.
If the specified net does not exist in the design, you must have
defined it with a create_bias_net, create_power_nets or
create_ground_nets command.
-pins pin_list Specifies the name of LEF pin to connect to the specified global
net.
If several pins of the same instance have names that match the
specified names, all those pins will be connected to the specified
global net.
You can use wildcards (*) to specify the pin names.
-domain domain Limits the pins to be connected to pins that belong to the specified
power domain.
create_ground_nets
create_ground_nets
-nets net_list
[-voltage string]
[-internal]
[-user_attributes string_list]
[-peak_ir_drop_limit float]
[-average_ir_drop_limit float]
-average_ir_drop_limit float
Specifies the maximum allowed average ground bounce on the
specified ground nets due to resistive effects in volt (V) for any
mode.
Default: 0
-internal Specifies that the nets have no connection to any I/O ports or
pads.
-nets net_list Declares a list of ground nets.
Note: The specified net names cannot contain the hierarchy
delimiter character.
-peak_ir_drop_limit float
Specifies the maximum allowed peak ground bounce on the
specified grounds net due to resistive effects in volt (V) for any
mode.
Default: 0
-user_attributes string_list
Attaches a list of user-defined attributes to the net. Specify a list
of strings.
-voltage string Identifies the voltage applied to the specified nets.
create_isolation_rule
create_isolation_rule
-name string
-isolation_condition expression
{-pins pin_list | -from power_domain_list | -to power_domain_list}...
[-isolation_target {from|to}] [-isolation_output {high|low|hold}]
[-exclude pin_list]
-exclude pin_list Specifies a list of pins that do not require isolation logic.
-from power_domain_list
Limits the pins to be considered for isolation to output pins in
the specified power domains.
If specified with -to option, all input pins in the -to domains that
are receiving signals from the -from domains will be isolated.
-isolation_condition expression
Specifies the condition when the specified pins should be
isolated. The condition is a function of pins.
-isolation_output {high|low|hold)
Controls the output value at the output of the isolation gates
when the isolation condition is true. The output can be high,
low, or held to the value it had right before the isolation
condition is activated.
Default: low
-isolation_target {from|to)
Specifies when this rule applies.
■ from indicates that the rule applies when the power domain
of the drivers of the specified pins is switched off.
■ to indicates that the rule applies when the power domain of
the loads of the specified pins is switched off.
Default: from
Tip
If you intend to use the isolation rule to isolate cells with
open source input pins or to isolate power clamp cells,
the isolation target must be to.
-name string Specifies the name of the isolation rule.
Note: The specified string cannot contain wildcards.
Note: The specified string cannot contain the hierarchy delimiter
character.
-pins pin_list Specifies a list of pins to be isolated. You can list input pins and
output pins of power domains.
You can further limit the pins to be isolated using the -from,
-to, and -exclude options.
-to power_domain_list
Limits the pins to be considered for isolation to input pins in the
specified power domains.
create_level_shifter_rule
create_level_shifter_rule
-name string
{-pins pin_list | -from power_domain_list | -to power_domain_list}...
[-exclude pin_list]
-exclude pin_list Specifies a list of pins that do not require level shifters.
-from power_domain_list
Specifies the name of the originating (driving) power domains.
create_mode_transition
create_mode_transition
-name string
-from_mode power_mode -to_mode power_mode
-start_condition expression [-end_condition expression]
[-clock_pin clock_pin [-cycles number | -latency float]]
-clock_pin clock_pin
Specifies the name of the clock pin that controls the transition.
-end_condition expression
Specifies the condition that acknowledges when the power
mode transition is finished.
-cycles number Specifies an integer of number of clock cycles needed to
complete the power mode transition.
-from_mode power_mode
Specifies the power mode from which to transition.
-latency float Specifies the time needed to complete the power mode
transition. Specify the time in the units specified by the
set_time_unit command.
-name string Specifies the name of the power mode transition.
Note: The specified string cannot contain wildcards.
Note: The specified string cannot contain the hierarchy delimiter
character.
-start_condition expression
Specifies the condition that triggers the power mode transition.
-to_mode power_mode
Specifies the power mode to which to transition.
create_nominal_condition
create_nominal_condition
-name string
-voltage float
[-pmos_bias_voltage float] [-nmos_bias_voltage float]
-nmos_bias_voltage float
Specifies the bias voltage of the n-type transistors in the
domain that uses this condition. The voltage must be specified
in volt (V).
-name string Specifies the name of the nominal operating condition.
Note: The specified string cannot contain wildcards.
Note: The specified string cannot contain the hierarchy delimiter
character.
-pmos_bias_voltage float
Specifies the bias voltage of the p-type transistors in the
domain that uses this condition. The voltage must be specified
in volt (V).
-voltage float Specifies the voltage of the nominal operating condition in volt
(V).
create_operating_corner
create_operating_corner
-name string
-voltage float
[-process float]
[-temperature float]
-library_set library_set
-library_set library_set
References the library set to be associated with the specified
corner.
-name corner Specifies the name of the operating corner you want to create.
Note: The specified string cannot contain wildcards.
Note: The specified string cannot contain the hierarchy delimiter
character.
-process float Specifies the process value of the corner. This value depends
on the used technology process and is provided by the library
vendor.
If this option is not specified, the value defaults to the value
specified in the first library of the specified library set.
-temperature float Specifies the temperature of the operating condition in degrees
Celsius.
If this option is not specified, the value defaults to the value
specified in the first library of the specified library set.
-voltage float Specifies the voltage of the operating condition in volt.
create_power_domain
create_power_domain
-name power_domain
{ -default [-instances instance_list] [-boundary_ports pin_list]
| -instances instance_list [-boundary_ports pin_list]
| -boundary_ports pin_list }
[ -shutoff_condition expression ]
[ -default_restore_edge expression ]
[ -default_save_edge expression ]
[ -power_up_states {high|low|random} ]
Creates a power domain and specifies the instances and boundary ports and pins that belong
to this power domain.
By default, an instance inherits the power domain setting from its parent hierarchical instance
or the design, unless that instance was associated with a specific power domain. In addition,
all top-level boundary ports are considered to belong to the default power domain, unless they
have been associated with a specific domain.
In CPF, power domains are associated with the design objects based on the order of the
logical hierarchy. The order in which you create the power domains is irrelevant.
You must define at least one power domain for a design, and one (and only one) power
domain must be specified as the default power domain.
The top design, identified by the first set_design command, belongs to the default power
domain.
-boundary_ports pin_list
Specifies the list of inputs and outputs that are considered part
of this domain.
■ For inputs and outputs of the top-level design, specify ports.
■ For inputs and outputs of IP instances, specify a list of the
instance pins that are part of the domain.
create_power_mode
create_power_mode
-name string
-domain_conditions domain_condition_list
[-default]
If your design has more than one power domain, you must define at least one power mode.
If you define any power mode, you must define one (and only one) power mode as the default
mode.
-default Labels the specified mode as the default mode. The default
mode is the mode that corresponds to the initial state of the
design.
-name string Specifies the name of the mode.
Note: The specified string cannot contain wildcards.
Note: The specified string cannot contain the hierarchy delimiter
character.
-domain_conditions domain_condition_list
Specifies the nominal condition of each power domain to be
considered in the specified power mode.
Use the following format to specify a domain condition:
domain_name@nominal_condition_name
A domain is considered switched off in the specified mode if
■ It is associated with a nominal condition whose voltage is 0
■ It is not specified in the list of domain conditions
The voltage of a switched-off domain corresponds to 0.0V.
Note: You can associate each power domain with only one
nominal condition for a given power mode.
create_power_nets
create_power_nets
-nets net_list
[-voltage string]
[-external_shutoff_condition expression | -internal]
[-user_attributes string_list]
[-peak_ir_drop_limit float]
[-average_ir_drop_limit float]
-average_ir_drop_limit float
Specifies the maximum allowed average IR drop on the
specified power nets due to resistive effects in volt (V) for any
mode.
Default: 0
-external_shutoff_condition expression
When the specified power nets are powered by an external
power source, you can use an expression to specify under
which condition the power source can be switched off.
If this option is not specified, the power source is assumed to be
an always-on power supply.
-internal Specifies that the nets have no connection to any I/O ports or
pads.
-nets net_list Declares a list of power nets.
Note: The specified net name cannot contain the hierarchy
delimiter character.
-peak_ir_drop_limit float
Specifies the maximum allowed peak IR drop on the specified
power nets due to resistive effects in volt (V) for any mode.
Default: 0
-user_attributes string_list
Attaches a list of user-defined attributes to the net. Specify a list
of strings.
-voltage string Identifies the voltage applied to the specified nets.
create_power_switch_rule
create_power_switch_rule
-name string
-domain power_domain
{-external_power_net net | -external_ground_net net}
Specifies how a single power switch must connect the external and internal power or ground
nets for the specified power domain.
You can specify one or more commands for a power domain depending on whether you want
to control the switchable power domain by a single switch or multiple switches.
By default, the proper power switch cell will be selected from the cells specified through the
define_power_switch_cell command. To use a specific cell, use the
update_power_switch_rule command.
By default, the inversion of the expression specified for the shutoff condition of the power
domain is used as the driver for the enable pin of the power switch cell. For complicated cells
with multiple enable pins, or if you want to use a different signal to drive the enable pins, use
the update_power_switch_rule command.
-domain power_domain
Specifies the name of a power domain.
-external_ground_net net
Specifies the external ground net to which the source pin of the
power switch must be connected. The drain pin must be
connected to the internal ground net associated with the
specified power domain.
Note: You can only specify this option when you use a footer
cell.
-external_power_net net
Specifies the external power net to which the source pin of the
power switch must be connected. The drain pin must be
connected to the internal power net associated with the
specified power domain.
Note: You can only specify this option when you use a header
cell.
create_state_retention_rule
create_state_retention_rule
-name string
{ -domain power_domain | -instances instance_list }
[-restore_edge expression [ -save_edge expression ]]
Defines the rule for replacing selected registers or all registers in the specified power domain
with state retention registers.
-instances instance_list
Specifies the instances that you want to replace with a state
retention register.
An instance can be a
■ Leaf or hiearchical instance name in a gate-level netlist
■ Register variable or hiearchical instance in RTL
If you specify the name of a hierarchical instance, all registers in
this instance and its children that belong to the same power
domain will be replaced.
Note: The specified instances can belong to several power
domains. If they belong to different power domains, the same
conditions will be applied to all of them.
-domain power_domain
Specifies the name of a power domain containing the target
registers to be replaced.
All registers in this power domain will be replaced.
-name string Specifies the name of the state retention rule.
Note: The specified string cannot contain wildcards.
Note: The specified string cannot contain the hierarchy delimiter
character.
-restore_edge expression
Specifies the condition when the states of the registers need to
be restored. The expression is a function of pins. When the
expression changes from false to true, the states are
restored.
If this option is omitted, but if you specified the
-default_restore_edge option with the
create_power_domain command for the corresponding
power domain(s), that condition will be used.
If you omit this option and the -default_restore_edge
option for the corresponding power domain was not specified,
the state retention rule will be ignored.
If you specify this option with the
create_state_retention_rule and the
-default_restore_edge option with the
create_power_domain command, the option specified with
this command takes precedence.
-save_edge expression
Specifies the condition when the states of the registers need to
be saved. The condition is a function of pins. When the
expression changes from false to true, the states are saved.
If this option is omitted, but a -default_save_edge option
was specified for the corresponding power domain, that
condition will be used, otherwise, if both are omitted, the
inversion of the expression specified for the -restore_edge
option will be used.
If you specify this option with the
create_state_retention_rule and the
-default_save_edge option with the
create_power_domain command, the option specified with
this command takes precedence.
define_library_set
define_library_set
-name library_set
-libraries library_list
-libraries library_list
Specifies a list of library files (.lib files).
-name library_set Specifies the name of a library set.
Note: The specified string cannot contain wildcards.
end_design
end_design
Used with a set_design command groups a number of CPF commands that apply to the
current design or top design.
identify_always_on_driver
identify_always_on_driver
-pins pin_list [-no_propagation]
Specifies a list of driving pins in the design that are considered as always on-drivers.
A net connected to an always-on driver is not switched off (even if its parent power domain is
switched off) as long as the parent of the driver is not switched off.
For any always-on driver, none of the logical nets physically connected to this driver are
switched off as long as the parent of the driver is not switched off.
If the specified pin is a driving pin of a multiple driven net, the net is considered to be always
on.
Note: Outputs of cells that are always on, are always-on drivers.
-no_propagation Considers only the logical net directly connected to each driving
pin to be not switched off.
-pins pin_list Specifies the names of the driving pins.
Specify the full hierarchical path of the pin.
Note: A bidirectional pin can also be considered as a driving pin.
identify_power_logic
identify_power_logic
-type isolation
-instances instance_list
Identifies any isolation logic instantiated in RTL or the gate-level netlist that is implemented
through regular cells that do not have the required Liberty attributes and are not defined
through the define_isolation_cell command.
Note: Any instances of special low power cells (such as level shifter cells, isolation cells, and
so on) instantiated in RTL or the gate-level netlist that have the required Liberty attributes or
that are defined through any of the library cell-related CPF commands are automatically
identified.
-instances instance_list
Specifies the names of all instances of the power logic selected
through the -type option.
-type Specifies the type of power logic to be identified.
Currently, the only valid option is isolation.
set_array_naming_style
set_array_naming_style
[string]
Specifies the format used to name the design objects in the netlist starting from multi-bit
arrays in the RTL description. For sequential elements, the bit information is appended to the
instance name which is determined by the set_register_naming_style command.
The command returns the new setting or the current setting in case the command was
specified without an argument.
string Specifies the format of the bit information. The string must have
the following format:
[character]%d[character]
You can use angle brackets, square brackets, or underscores.
Default: \[%d\]
set_cpf_version
set_cpf_version
[value]
The command returns the new setting or the current setting in case the command was
specified without an argument.
If specified, this command must be the first CPF command in a CPF file.
set_design
set_design
module [-ports port_list]
Specifies the name of the module to which the power information in the CPF file applies.
Note: If this command appears multiple times, the first one applies to the top design, while
the next ones must follow a scope change using the set_instance command.
set_hierarchy_separator
set_hierarchy_separator
[character]
The command returns the new setting or the current setting in case the command was
specified without an argument.
set_instance
set_instance
[hier_instance [-merge_default_domains]
[-port_mapping port_mapping_list]]
The command returns the current scope in case the command was specified without an
argument. If the current scope is the top design, the hierarchy separator is returned.
All CPF objects referred to in the library cell-related CPF commands are scope insensitive.
Important
Any rule created in the module-level CPF file that references a virtual port that is
declared using the -ports option of the set_design command, but whose
mapping is not specified through the -port_mapping option, will be ignored.
-port_mapping port_mapping_list
Specifies the mapping of the virtual ports specified in the
set_design command to the parent-level drivers.
Use the following format to specify a port mapping:
{virtual_port parent_level_driver}
set_power_target
set_power_target
{ -leakage float | -dynamic float
| -leakage float -dynamic float}
Specifies the targets for the average leakage and dynamic power of the current design across
all the power modes. All power targets must be specified in the units specified by the
set_power_unit command.
-dynamic float Specifies the target for the average dynamic power.
Default: 0 mW
-leakage float Specifies the target for the average leakage power.
set_power_unit
set_power_unit
[pW|nW|uW|mW|W]
Specifies the unit for all power values in the CPF file.
The command returns the new setting or the current setting in case the command was
specified without an argument.
[pW|nW|uW|mW|W] Specifies the power unit. You can specify any of these five
values.
Default: mW
set_register_naming_style
set_register_naming_style
[string%s]
Specifies the format used to name flip-flops and latches in the netlist starting from the register
names in the RTL description.
The command returns the new setting or the current setting in case the command was
specified without an argument.
set_switching_activity
set_switching_activity
{ {-all | -pins pin_list | -instances instance_list [-hierarchical]}
-probability float -toggle_rate float }
| [-clock_pins pin_list] -toggle_percentage float }
[-mode mode]
Specifies activity values (toggle rate and probability) for the specified pins.
The toggle rate is the average number of toggle counts per time unit of a net during a given
simulation time.
The probability is the probability of a net being high during a given simulation time.
-probability float
Specifies the probability value.
The probability is a floating value between 0 and 1.
-toggle_percentage float
Specifies to compute the toggle rate as the multiplication of the
specified value and the toggle rate of the related clock. If
multiple clocks are related to the specified data pin, the clock
with the worst frequency is used. If no clock is related to the
data pin, the worst clock of the design is used.
The value must be a float between 0 and 100.
If you specify clock pins through the -clock_pins option, the
computed toggle rate is only applied to the data pins related to
those clock pins.
If you did not specify any clock pins, a computed toggle rate is
applied to all data pins and the value for each data pin will be
based on its related clock pin.
-toggle_rate float
Specifies the number of toggles per time unit.
set_time_unit
set_time_unit
[ns|us|ms]
Specifies the unit for all time values in the CPF file.
The command returns the new setting or the current setting in case the command was
specified without an argument.
[ns|us|ms] Specifies the time unit. You can specify any of these three
values.
Default: ns
update_isolation_rules
update_isolation_rules -names rule_list
{ -location {from | to}
| -cells cell_list -library_set library_set
| -prefix string
| -combine_level_shifting
| -open_source_pins_only}...
-cells cell_list Specifies the names of the library cells that must be used as
isolation cells for the selected pins.
By default, the appropriate isolation cells are chosen from the
isolation cells defined with the define_isolation_cell
command or from the library cells with isolation related Liberty
attributes.
-combine_level_shifting
Specifies to apply the specified rules when level shifter logic is
needed.
Whenever isolation logic must be inserted for a given pin and a
level shifter is also required for that pin, the tool must use a cell
that has both functions.
-library_set library_set
References the library set to be used to search for the specified
cells. Specify the library set name. All matching cells will be
used.
-location {from|to}
Specifies the power domain to which the isolation logic must be
added.
■ from stores the isolation logic with the instances of the
originating power domain
■ to stores the isolation logic with the instances of the
destination power domain
Default: to
-names rule_list Specifies the names of the rules to be updated.
The name can contain wildcards.
-open_source_pins_only
Limits the pins to be isolated to the open source pins that
belong to a power domain that is switched off while the driver
domain remains powered on.
This implies that only those rules that were created with the
-isolation_target option set to to can be updated.
-prefix string Specifies the prefix to be used when creating the isolation logic.
Default: CPF_ISO_
update_level_shifter_rules
update_level_shifter_rules
-names rule_list
{ -location {from | to}
| -cells cell_list -library_set library_set
| -prefix string }...
-cells cell_list Specifies the names of the library cells to be used to bridge the
specified power domains.
By default, the appropriate level shifter cells are chosen from the
level shifter cells defined with the
define_level_shifter_cell command or from the library
cells with level-shifter related Liberty attributes.
-library_set library_set
References the library set to be used to search for the specified
cells. Specify the library set name. All matching cells will be
used.
-location {from|to}
Specifies where the level shifters must be stored:
■ from stores the level shifters with the instances of the
originating power domain
■ to stores the level shifters with the instances of the
destination power domain
Default: to
-names rule_list Specifies the names of the level shifter rules to be updated.
The name can contain wildcards.
-prefix string Specifies the prefix to be used when creating this logic.
Default: CPF_LS_
update_nominal_condition
update_nominal_condition
-name condition
-library_set library_set
-library_set library_set
References the library set to be associated with the specified
condition.
-name condition Specifies the name of the nominal operating condition.
The specified string cannot contain wildcards.
update_power_domain
update_power_domain
-name domain
{ -internal_power_net net | -internal_ground_net net
| -min_power_up_time float | -max_power_up_time float
| -pmos_bias_net net | -nmos_bias_net net | -user_attributes string_list
| -rail_mapping rail_mapping_list -library_set library_set} ...
-internal_ground_net net
Specifies the main ground net for all functional gates in the
specified power domain.
This option is required when you use footer cells.
-internal_power_net net
Specifies the main power net for all functional gates in the
specified power domain.
This option is required when you use header cells.
-library_set library_set
References the library set to be used to search for the specified
power rails. Specify the library set name.
-min_power_up_time (max_power_up_time) float
Specifies the minimum (maximum) time allowed for the power
domain to ramp up. Specify the time in the units defined by
set_time_unit.
Default: 0
-nmos_bias_net net
Specifies the net to be used to bias the n-type transistors of all
functional gates in this power domain.
-name domain Specifies the name of the power domain.
-pmos_bias_net net
Specifies the net to be used to bias the p-type transistors of all
functional gates in this power domain.
-rail_mapping rail_mapping_list
Specifies the mapping of the power rails specified in the library
(.lib files) to the power and ground nets defined in the CPF file.
Use the following format to specify a rail mapping:
{power_rail_name power_or_ground_net}
-user_attributes string_list
Attaches a list of user-defined attributes to the domain. Specify
a list of strings.
update_power_mode
update_power_mode
-name mode
{ -activity_file file -activity_file_weight weight
| -sdc_files sdc_file_list
| -peak_ir_drop_limit domain_voltage_list
| -average_ir_drop_limit domain_voltage_list
| -leakage_power_limit float
| -dynamic_power_limit float}...
-activity_file file
Specifies the path to the activity file. Supported formats for the
activity files are VCD, TCF, and SAIF.
-activity_file_weight weight
Specifies the relative weight of the activities in this file in
percentage. Use a positive floating number between 0 and 100.
To estimate the total average chip power over all modes, the
activity weights are used to adjust the relative weight of each
power mode.
Note: If the weights specified for the activity files for the different
power modes do not add up to 100, an adjusted weight is used.
-average_ir_drop_limit domain_voltage_list
Specifies the maximum allowed average voltage change on a
power net due to resistive effects in volt (V) for the specified
power mode. This net must be the internal power net of the
power domain to be considered in the specified mode.
Use the following format to specify the maximum allowed
average voltage change in the domain:
domain_name@voltage
Use a floating value for the voltage.
If a domain is omitted from this list, the value for the internal
power net of this domain will be 0, unless you specified a value
using the -average_ir_drop_limit option of the
create_power_nets command.
-dynamic_power_limit float
Specifies the maximum allowed average dynamic power in the
specified mode.
Default: 0 mW
-leakage_power_limit float
Specifies the maximum allowed average leakage power in the
specified mode.
Default: 0 mW
-name mode Specifies the name of the mode.
-peak_ir_drop_limit domain_voltage_list
Specifies the maximum allowed peak voltage change on a
power net due to resistive effects in volt (V) for the specified
power mode. This net must be the internal power net of the
power domain to be considered in the specified mode.
Use the following format to specify the maximum allowed peak
voltage change in the domain:
domain_name@voltage
Use a floating value for the voltage.
If a domain is omitted from this list, the value for the internal
power net of this domain will be 0, unless you specified a value
using the -average_ir_drop_limit option of the
create_power_nets command.
-sdc_files sdc_file_list
Specifies a list of SDC files to be used for the specified mode.
update_power_switch_rule
update_power_switch_rule
-name string
{ -enable_condition_1 expression [-enable_condition_2 expression]
| -acknowledge_receiver pin
| -cells cell_list -library_set library_set
| -prefix string
| -peak_ir_drop_limit float
| -average_ir_drop_limit float }...
Appends the specified rules for power switch logic with implementation information.
-acknowledge_receiver pin
Specifies an input pin in the design which must be connected to
an output pin of the power switch cell.
-average_ir_drop_limit float
Specifies the maximum allowed average voltage change across
a power switch due to resistive effects in volt (V).
Default: 0
-cells cell_list
Specifies the name of the library cells that can be used as
power switch cells.
update_state_retention_rules
update_state_retention_rules
-names rule_list
{-cell_type string | -cell libcell}
-library_set library_set
Appends the specified rules for state retention logic with implementation information.
By default, the appropriate state retention cells are chosen from the state retention cells
defined with the define_state_retention_cell command or from the library based on
the appropriate Liberty attributes.
-cell libcell Specifies the library cell to be used to map the flops.
-cell_type string
Specifies the class of library cells that can be used to map the
flops.
-library_set library_set
References the library set to be used to search for the specified
cell or specified cell type. Specify the library set name.
5
Library Cell-Related CPF Commands
■ define_always_on_cell
■ define_isolation_cell on page 88
■ define_level_shifter_cell on page 90
■ define_open_source_input_pin on page 93
■ define_power_clamp_cell on page 94
■ define_power_switch_cell on page 95
■ define_state_retention_cell on page 98
define_always_on_cell
define_always_on_cell
-cells cell_list [-library_set library_set]
[ [-power_switchable LEF_power_pin | -ground_switchable LEF_ground_pin]
-power LEF_power_pin -ground LEF_ground_pin ]
Identifies the library cells in the .lib files that can be used as cells that are always on.
Note: Outputs of cells that are always on, are always-on drivers.
-cells cell_list
Identifies the specified cells as special cells that are always on.
-ground LEF_ground_pin
If this option is specified with the -power_switchable option,
it indicates the GROUND pin of the specified cell.
If this option is specified with the -ground_switchable
option, it indicates the GROUND pin in the corresponding LEF
cell to which the ground that is on during power shut-off mode is
applied.
-ground_switchable LEF_power_pin
Identifies the GROUND pin in the corresponding LEF cell to
which the ground that is switched off during power shut-off
mode is applied.
-library_set library_set
References the library set to be used to search for the specified
cells. Specify the library set name. All matching cells will be
used.
If you omit this option, all library sets are searched and all
matching cells will be used.
-power LEF_power_pin
If this option is specified with the -ground_switchable
option, it indicates the POWER pin of the specified cell.
If this option is specified with the -power_switchable option,
it indicates the POWER pin in the corresponding LEF cell to
which the power that is on during power shut-off mode is
applied.
-power_switchable LEF_power_pin
Identifies the POWER pin in the corresponding LEF cell to which
the power that is switched off during power shut-off mode is
applied.
define_isolation_cell
define_isolation_cell
-cells cell_list [-library_set library_set]
[-always_on_pin pin_list]
[ {-power_switchable LEF_power_pin | -ground_switchable LEF_ground_pin}
-power LEF_power_pin -ground LEF_ground_pin ]
[-valid_location { from | to}]
[-non_dedicated]
-enable pin
Identifies the library cells in the .lib files that can be used as isolation cells.
-always_on_pin pin_list
Specifies a list of cell pins which must always be driven.
Note: A pin specified with this option, can be specified with
other options as well.
-cells cell_list
Identifies the specified cells as isolation cells.
The libraries loaded will be searched and all cells found will be
identified.
-enable pin Identifies the specified cell pin as the enable pin.
This pin must be an always-on pin.
-ground LEF_ground_pin
If this option is specified with the -power_switchable option,
it indicates the GROUND pin of the specified cell.
If this option is specified with the -ground_switchable
option, it indicates the GROUND pin in the corresponding LEF
cell to which the ground that is on during power shut-off mode is
applied.
-ground_switchable LEF_power_pin
Identifies the GROUND pin in the corresponding LEF cell to
which the ground that is turned off during power shut-off mode
is applied.
-library_set library_set
References the library set to be used to search for the specified
cells. Specify the library set name. All matching cells will be
used.
If you omit this option, all library sets are searched and all
matching cells will be used.
-non_dedicated Allows to use specified cells as normal function cells.
-power LEF_power_pin
If this option is specified with the -ground_switchable
option, it indicates the POWER pin of the specified cell.
If this option is specified with the -power_switchable option,
it indicates the POWER pin in the corresponding LEF cell to
which the power that is on during power shut-off mode is
applied.
-power_switchable LEF_power_pin
Identifies the POWER pin in the corresponding LEF cell to which
the power that is turned off during power shut-off mode is
applied.
-valid_location {from | to}
Specifies the location of the isolation cell. Possible values are
■ from—indicating that the cell must be stored with the
source power domain
■ to—indicating that the cell must be stored with the
destination power domain
Default: to
define_level_shifter_cell
define_level_shifter_cell
-cells cell_list [-library_set library_set]
[-always_on_pin pin_list]
-input_voltage_range {voltage | voltage_range}
-output_voltage_range {voltage | voltage_range}
[-direction {up|down|bidir}]
[-output_voltage_input_pin pin]
{ -input_power_pin LEF_power_pin [-output_power_pin LEF_power_pin]
| [-input_power_pin LEF_power_pin] -output_power_pin LEF_power_pin }
-ground LEF_ground_pin
[-valid_location { from | to}
Identifies the library cells in the .lib files that can be used as level shifter cells.
-always_on_pin pin_list
Specifies a list of cell pins which must always be driven.
Note: A pin specified with this option, can be specified with
other options as well.
-cells cell_list Identifies the specified cell as a level shifter.
Note:
The libraries loaded will be searched and all cells found will be
used.
-direction {up | down | bidir}
Specifies whether the level shifter can be used between a lower
and higher voltage, or vice versa.
Default: up
-ground LEF_ground_pin
Identifies the name of the GROUND pin in the corresponding LEF
cell.
-input_power_pin LEF_power_pin
Identifies the name of the POWER pin in the corresponding LEF
cell that must be connected to the power net to which the
voltage of the source power domain is applied.
define_open_source_input_pin
define_open_source_input_pin
-cells cell_list -pin pin_name
[-library_set library_set]
input pins that must be isolated when the power supply of the driver is on, but the power
supply of the cells to which the input pin belongs is shut off.
-cells cell_list
Specifies the cells to which the open source input pins belong.
-library_set library_set
References the library set to be used to search for the specified
cells. Specify the library set name. All matching cells will be
used.
If you omit this option, all library sets are searched and all
matching cells will be used.
-pin pin_name Specifies the name of the open source input pin.
define_power_clamp_cell
define_power_clamp_cell
-cells cell_list
-data pin_name
-power pin_name [-ground pin_name]
[-library_set library_set]
-cells cell_list
Identifies the specified cells as power clamp diode cells.
-data pin_name Specifies the cell pin that connects to the data signal.
-ground pin_name Specifies the cell pin that connects to the ground net.
-library_set library_set
References the library set to be used to search for the specified
cells. Specify the library set name. All matching cells will be
used.
If you omit this option, all library sets are searched and all
matching cells will be used.
-power pin_name Specifies the cell pin that connects to the power net.
define_power_switch_cell
define_power_switch_cell
-cells cell_list [-library_set library_set]
-stage_1_enable expression [-stage_1_output expression]
[-stage_2_enable expression [-stage_2_output expression]]
-type {footer|header}
[ -power_switchable LEF_power_pin -power LEF_power_pin
| -ground_switchable LEF_ground_pin -ground LEF_ground_pin ]
[ -on_resistance float]
[ -stage_1_saturation_current float] [ -stage_2_saturation_current float]
[ -leakage_current float ]
Identifies the library cells in the .lib files that can be used as power switch cells.
-cells cell_list
Identifies the specified cells as power switch cells.
-ground LEF_ground_pin
Identifies the input ground pin of the corresponding LEF cell.
-ground_switchable LEF_ground_pin
Identifies the output ground pin in the corresponding LEF cell
that must be connected to a switchable ground net.
-leakage_current float
Specifies the leakage current when the power switch is turned
off. Specify the current in ampere (A).
-library_set library_set
References the library set to be used to search for the specified
cells. Specify the library set name. All matching cells will be
used.
If you omit this option, all library sets are searched and all
matching cells will be used.
-on_resistance float
Specifies the resistance of the power switch when the power
switch is turned on. Specify the resistance in ohm.
-power LEF_power_pin
Identifies the input POWER pin of the corresponding LEF cell.
-power_switchable LEF_power_pin
Identifies the output power pin in the corresponding LEF cell
that must be connected to a switchable power net.
-stage_1_saturation_current (-stage_2_saturation_current) float
Specifies the Id saturation current of the MOS transistor in the
specified stage. Specify the current in ampere (A).
The saturation current—which can be found in the SPICE
model—limits the maximum current that a power switch can
support.
-stage_1_enable (-stage_2_enable) expression
Specifies when the transistor driven by this input pin is turned
on (enabled) or off.
If only stage 1 is specified, the switch is turned on when the
expression for the -stage_1_enable option evaluates to
true.
If both stages are specified, the switch is turned on when the
expression for both enable options evaluates to true.
The expression is a function of the input pin. This pin must be
an always-on pin.
-stage_1_output (-stage_2_output) expression
Specifies whether the output pin specified in the expression is
the buffered or inverted output of the input pin specified through
the corresponding -stage_x_enable option.
The pin specified through the -acknowledge_receiver
option of the create_power_switch_rule command is
connected to the output pin specified through
■ The -stage_1_output option if the -stage_2_output
option is omitted.
■ The -stage_2_output option if both -stage_1_output
and stage_2_output options are specified.
Note: If neither option is specified, the pin specified through the
-acknowledge_receiver is left unconnected.
-type {header|footer}
Specifies whether the power switch cell is a header or footer
cell.
define_state_retention_cell
define_state_retention_cell
-cells cell_list [-library_set library_set]
[-always_on_pin pin_list]
[-clock_pin pin]
-restore_function expression [-restore_check expression]
[-save_function expression] [-save_check expression]
[ {-power_switchable LEF_power_pin | -ground_switchable LEF_ground_pin}
-power LEF_power_pin -ground LEF_ground_pin ]
Identifies the library cells in the .lib files that can be used as state retention cells.
-always_on_pin pin_list
Specifies a list of cell pins which must always be driven.
Note: A pin specified with this option, can be specified with
other options as well.
-cells cell_list
Identifies the specified cells as state retention cells.
The libraries loaded will be searched and all cells found will be
used.
-clock_pin pin Specifies the clock pin.
-ground LEF_ground_pin
If this option is specified with the -power_switchable option,
it specifies the GROUND pin of the corresponding LEF cell.
If this option is specified with the -ground_switchable
option, it indicates the GROUND pin in the corresponding LEF
cell to which the ground net that is on during power shut-off
mode is connected.
-ground_switchable LEF_power_pin
Identifies the GROUND pin in the corresponding LEF cell to
which the ground that is turned off during power shut-off mode
is applied.
-library_set library_set
References the library set to be used to search for the specified
cells. Specify the library set name. All matching cells will be
used.
If you omit this option, all library sets are searched and all
matching cells will be used.
-power LEF_power_pin
If this option is specified with the -ground_switchable
option, it indicates the POWER pin of the specified cell.
If this option is specified with the -power_switchable option,
it indicates the POWER pin to which the power that is always on
during shut-off mode is applied.
-power_switchable LEF_power_pin
Identifies the POWER pin in the corresponding LEF cell to which
the power that is turned off during power shut-off mode is
applied.
-restore_check expression
Specifies the additional condition when the states of the
sequential elements can be restored. The expression can be a
function of the clock pin and the restore pin. The expression
must be true when the restore event occurs.
Note: If you want to use the clock pin in the expression, you
must have identified the clock pin with the -clock_pin option.
-restore_function expression
Specifies the polarity of the restore pin that enables the
retention cell to restore the saved value after exiting power
shut-off mode.The restore pin must be an always-on pin.
Note: Expression is limited to the pin name and the inversion of
the pin name. An expression containing only the pin name
indicates an active high polarity. An expression containing the
inversion of the pin name indicates an active low polarity.
-save_check expression
Specifies the additional condition when the states of the
sequential elements can be saved. The expression can be a
function of the clock pin and the save pin The expression must
be true when the save event occurs.
Note: If you want to use the clock pin in the expression, you
must have identified the clock pin with the -clock_pin option.
-save_function expression
Specifies the polarity of the save pin that enables the retention
cell to save the current value before entering power shut-off
mode.The save pin must be an always-on pin.
If not specified, the save event is triggered by the opposite of
the expression specified for the restore event.
Note: Expression is limited to the pin name and the inversion of
the pin name. An expression containing only the pin name
indicates an active high polarity. An expression containing the
inversion of the pin name indicates an active low polarity.
6
Quick Reference
create_analysis_view
-name string
-mode mode
-domain_corners domain_corner_list
create_bias_net
-net net
[-driver pin]
[-user_attributes string_list]
[-peak_ir_drop_limit float]
[-average_ir_drop_limit float]
create_global_connection
-net net
-pins pin_list
[-domain domain | -instances instance_list]
create_ground_nets
-nets net_list
[-voltage string]
[-internal]
[-user_attributes string_list]
[-peak_ir_drop_limit float]
[-average_ir_drop_limit float]
create_isolation_rule
-name string
-isolation_condition expression
{-pins pin_list | -from power_domain_list | -to power_domain_list}...
[-isolation_target {from|to}] [-isolation_output {high|low|hold}]
[-exclude pin_list]
create_level_shifter_rule
-name string
{-pins pin_list | -from power_domain_list | -to power_domain_list}...
[-exclude pin_list]
create_mode_transition
-name string
-from_mode power_mode -to_mode power_mode
-start_condition expression [-end_condition expression]
[-clock_pin clock_pin [-cycles number | -latency float]]
create_nominal_condition
-name string
-voltage float
[-pmos_bias_voltage float] [-nmos_bias_voltage float]
create_operating_corner
-name string
-voltage float
[-process float]
[-temperature float]
-library_set library_set
create_power_domain
-name power_domain
{ -default [-instances instance_list] [-boundary_ports pin_list]
| -instances instance_list [-boundary_ports pin_list]
| -boundary_ports pin_list }
[ -shutoff_condition expression ]
[ -default_restore_edge expression ]
[ -default_save_edge expression ]
[ -power_up_states {high|low|random} ]
create_power_mode
-name string
-domain_conditions domain_condition_list
[-default]
create_power_nets
-nets net_list
[-voltage string]
[-external_shutoff_condition expression | -internal]
[-user_attributes string_list]
[-peak_ir_drop_limit float]
[-average_ir_drop_limit float]
create_power_switch_rule
-name string
-domain power_domain
{-external_power_net net | -external_ground_net net}
create_state_retention_rule
-name string
{ -domain power_domain | -instances instance_list }
[-restore_edge expression [ -save_edge expression ]]
define_always_on_cell
-cells cell_list [-library_set library_set]
[ [-power_switchable LEF_power_pin | -ground_switchable LEF_ground_pin]
-power LEF_power_pin -ground LEF_ground_pin ]
define_isolation_cell
-cells cell_list [-library_set library_set]
[-always_on_pin pin_list]
[ {-power_switchable LEF_power_pin | -ground_switchable LEF_ground_pin}
-power LEF_power_pin -ground LEF_ground_pin ]
[-valid_location { from | to}]
[-non_dedicated]
-enable pin
define_level_shifter_cell
-cells cell_list [-library_set library_set]
[-always_on_pin pin_list]
-input_voltage_range {voltage | voltage_range}
-output_voltage_range {voltage | voltage_range}
[-direction {up|down|bidir}]
[-output_voltage_input_pin pin]
{ -input_power_pin LEF_power_pin [-output_power_pin LEF_power_pin]
| [-input_power_pin LEF_power_pin] -output_power_pin LEF_power_pin }
-ground LEF_ground_pin
[-valid_location { from | to}
define_library_set
-name library_set
-libraries library_list
define_open_source_input_pin
-cells cell_list -pin pin_name
[-library_set library_set]
define_power_clamp_cell
-cells cell_list
-data pin_name
-power pin_name [-ground pin_name]
[-library_set library_set]
define_power_switch_cell
-cells cell_list [-library_set library_set]
-stage_1_enable expression [-stage_1_output expression]
[-stage_2_enable expression [-stage_2_output expression]]
-type {footer|header}
[ -power_switchable LEF_power_pin -power LEF_power_pin
| -ground_switchable LEF_ground_pin -ground LEF_ground_pin ]
[ -on_resistance float]
[ -stage_1_saturation_current float] [ -stage_2_saturation_current float]
[ -leakage_current float ]
define_state_retention_cell
-cells cell_list [-library_set library_set]
[-always_on_pin pin_list]
[-clock_pin pin]
-restore_function expression [-restore_check expression]
[-save_function expression] [-save_check expression]
[ {-power_switchable LEF_power_pin | -ground_switchable LEF_ground_pin}
-power LEF_power_pin -ground LEF_ground_pin ]
end_design
identify_always_on_driver
-pins pin_list [-no_propagation]
identify_power_logic
-type isolation
-instances instance_list
set_array_naming_style
[string]
set_cpf_version
[value]
set_design
module [-ports port_list]
set_hierarchy_separator
[character]
set_instance
[hier_instance [-merge_default_domains]
[-port_mapping port_mapping_list]]
set_power_target
{ -leakage float | -dynamic float
| -leakage float -dynamic float}
set_power_unit
[pW|nW|uW|mW|W]
set_register_naming_style
[string%s]
set_switching_activity
{ {-all | -pins pin_list | -instances instance_list [-hierarchical]}
-probability float -toggle_rate float }
| [-clock_pins pin_list] -toggle_percentage float }
[-mode mode]
set_time_unit
[ns|us|ms]