View Library View Table Of Contents View Previous Chapter in Book View Next Chapter in Book Open PDF to print book Email Comments Help Using Documentation Shut Down Cadence Documentation Server


What's New in Common Power Format, Version 2.0


1


What's Changed from CPF 1.1 to CPF 2.0




New Features



New Concepts

Introduced Concept of Power Source Domain

Introduced the concept of a power source domain, that is a power domain that contains the output supply of a voltage regulator.

Introduced the Concept of Global Cell

The global cell replaces the always-on cell. Like the always-on cell, the global cell is a special cell that has secondary power or ground pins in addition to the primary power and ground pins (followpins). In some cell designs, when the primary power or ground are switched off, the cell function can be different from the normal function when the primary power and ground are on. Also, in some cases, the cell can also have isolation logic built in at the cell input pins.

To support this new cell, the define_global_cell command was added.

Introduced the Concept of Generic Mode

Introduced the concept of a generic mode (also referred to as mode), which is a static state of a design that performs one or more intended design functions. Typically, it is determined by the states of memory elements, states of power domains, and signal values.

To create a generic mode that applies to a subset of domains, the create_mode command was added.

Introduced Concept of Power Design

Introduced the concept of a power design, that is a unique power structure that can be associated with either a top design, or with one or more logic modules.

Introduced Concept of Input and output Domains for Level Shifter Cells

Inputs and output domains are the domains whose primary power and ground nets are connected to the input and output supply of the level shifter cells.

Introduced Concept of Domain Crossing

A domain crossing is a connection between one driver and one load in two different power domains. This concept replaces the net segment terminology which was not as precise and implied that multiple isolation cells could be inserted on the same crossing. Using the concept of domain crossing, clearly indicates that insertion of isolation cells and level shifters occurs on a full crossing basis.



Power Domain Changes

Added Support for Assigning Leaf-level Library Cell instances to Power Domains

In CPF 1.1, you could only specify instances of hierarchical modules and macro cells for the -instances option of the create_power_domain command. In CPF 2.0, the semantics have been expanded to allow instances of any library cells.

Made Instance and Boundary Port Specification in Domain Specification More Flexible

To support this feature, the -exclude_instances and -exclude_ports options were added to the create_power_domain command.

Added Flexibility to Update the Members of a Power Domain

The -instances and -boundary_ports options were added to the update_power_domain to allow appending newly-created instances and ports to the member list of a previously created power domain.



Hiearchical Flow Improvements

Added Support for Analog Ports in Macro Models

The set_analog_ports command allows you to specify a list of analog signal pins that must also be connected to pins declared as analog in other macro models or in pad cells.

Added Support for Specification of Macro Cell Ports Connected to Bonding Ports

To specify a set of macro cell ports that can directly connect to a bonding port at the chip level, the set_pad_ports command was added. No low power logic (such as level shifters and isolation cells) can be inserted between the top-level bonding ports and the pad ports of a macro.

Added Support for Specification of Macro Cell Ports Connected to Diode Cells

To specify a list of pins of a macro cell that connect to the positive and negative pins of a diode, the set_diode_ports command was added.

Added Capability to Create a Single Macro Model that can Apply to Multiple Cells

To formally allow a single macro model to apply to more than one cell, the -cells option was added to the set_macro_model command. For example, memory cells with the same architecture but different bits can use the same macro cell definition.

This option also facilitates better error checking in cases where the wrong macro model was applied to an instance of a cell.

Changed Semantics for set_design

The semantics of the set_design command have been changed:

Added Support to Link Multiple HDL Modules to a Power Design

The -modules option was added to the set_design command to associate multiple HDL modules to a power design.

Appending Power Intent to an Existing Design

Expanded Semantics for Virtual Ports

In CPF 1.1, the -ports option of the set_design command specified input ports only.

In CPF 2.0, new options explicitly specify -input_ports, -output_ports, and -inout_ports.

Note:  The existing -ports option still exists for backward compatibility.

Clarified Semantics for Instance Port Mapping

The semantics of the -port_mapping option of the set_instance command have been clarified to include the specification of real ports (such as macro model pins) in addition to virtual ports.



Isolation Enhancements

Added Support for Isolation Cell That Can be Placed in Power and Ground Shutoff Domain

To support these type of isolation cells, the define_isolation_cell command can be specified with both the -power_switchable and -ground_switchable options.

Added Support for Isolation Cell That Can Be Placed in Any Domain

Isolation cells without power and ground pins that connect through abutment of the cells (followpins), that is, with only a secondary power and ground pin can be placed in any domain.

To support this type of isolation cell, the following changes were made to the define_isolation_cell command:

Implementation tools must connect the secondary power and ground pin of this isolation cell to the supplies of the secondary domain of the rule. For more information, see Secondary Power Domain of Isolation Instances. Implementation tools must also ensure that placement of these cells does not break the follow pin connection of the other cells that are placed in the same standard cell row.

Added Support for Clamp-Type Isolation Cell

To support clamp-type isolation cells, the following changes were made:

Added Support for Isolation Cell with Synchronous Enable Control

To support isolation cells with synchronous enable control, the following changes were made:

Added Support to Enable Multi-bit Isolation Cells

Added the -pin_groups option to the define_isolation_cell command.

Changed Semantics of Location in Rules

Previously, when you specified the -location and -cells options together in the update_isolation_rules command, the -cells option took precedence--the location of the cells was determined by the -valid_location specification in the define_isolation_cell command.

In CPF 2.0, if you specify the -location and -cells options together in the update_isolation_rules command, the value of the -location option must match the value specified for the -valid_location in the define_isolation_cell command. Otherwise an error will be given.

Added Capability to Specify A Model for Special Isolation Logic

Added the -use_model to the update_isolation_rules command to indicate that a simulation tool must use the functional model of the first cell specified in the -cells option. The -pin_mapping option was added to specify the connection between the pins of the functional model and the pins or ports in the design. If a macro model exists for the functional model, the -domain_mapping option can be used to specify the mapping between the domains in the macro model and the domains in the design.

Changed Semantics of -within_hierarchy in Rules

Previously, when you specified the -within_hierarchy option in the update_isolation_rules command, the power domain of the specified instance had to match the power domain of the default location or the location specified with the -location option.

In CPF 2.0, the power domain of the specified instance no longer needs to match the power domain specified by the -location option. The power domain of the instance specified with the -within_hierarchy option takes precedence.

This change allows you to insert the isolation logic in a power domain that is neither the from nor the to power domain. This may be needed when the physical constraints require the placement of the isolation in a separate domain.

Also, if you specify the -within_hierarchy and -cells options together, the -valid_location of the cells specified in the define_isolation_cell command must be compatible with the power domain of the hierarchical instance specified with the -within_hierarchy option in the update_isolation_rules. Otherwise an error will be given.

Added Support for Isolation Logic That Can Be Placed in Parent Hierarchy

To support the placement of isolation logic in the logic hierarchy of the parent instance of the nets selected using the -from, -to, and -pins options in the create_isolation_rule command, the parent value can now be specified for the -location option of the update_isolation_rules command.

Added Capability to Force the Insertion of Isolation Logic

To support forced insertion, the -force option was added to the create_isolation_rule command. You must specify the -force option with a -pins option. If you specify a -to or -from option with the -force option, they will be ignored.

If you use the -force option to create the isolation rule, the isolation logic can only be inserted in the default location or in the parent hierarchy ( see the -location option of the update_isolation_rules command).

Added Capability to Specify a Name Suffix

To specify the name suffix to be used when creating the isolation logic, the -suffix option was added to the update_isolation_rules command.



Level Shifter Enhancements

Added Support for Level Shifter Cell That Can Be Placed in Any Domain

Level shifter cells whose input and output pins are specified as non-followpins can be placed in any domain.

To support this type of level shifter cell, the any value was added for the -valid_location option of the define_level_shifter_cell command.

If the valid location of a level shifter cell is any, it can be used in a rule using -within_hierarchy with any hierarchy location.

Added Support for Bypass Level Shifter

To support bypass level shifters, the following changes were made:

Added Support to Specify Lists for Input and Output Voltages in Level Shifter Definition

In previous releases, you needed to specify either a single voltage or a voltage range for the input (source) and output (destination) supply voltages. However, when specifying ranges, some unintended input and output combination could be implied. Consider the following option combination in the define_level_shifter_cell command:

-input_voltage_range 0.8:1.0:0.2 -output_voltage_range 1.0:1.2:0.2

This could imply that the level shifter can shift from 0.8 to 1.2, while the level shifter can only shift from either 0.8 to 1.0 or from 1.0 to 1.2.

In CPF 2.0, you can specify lists of voltages and voltage ranges. If you specify a list of voltages or ranges for the input supply voltage, you must also specify a list of voltages or voltage ranges for the output supply voltage. Both lists must be ordered and have the same number of elements. That is, each member in the list of input voltages (or ranges) has a corresponding member in the list of output voltages (or ranges).

Added Support for Multi-Stage Level Shifters

To support multi-stage level shifters, the following changes were made:

Added Support to Enable Multi-bit Cells

Added the -pin_groups option to the define_level_shifter_cell command.

Changed Semantics of Location in Rules

Previously, when you specified the -location and -cells options together in the update_level_shifter_rules command, the -cells option took precedence--the location of the cells was determined by the -valid_location specification in the define_level_shifter_cell command.

In CPF 2.0, if you specify the -location and -cells options together in the update_level_shifter_rules command, the value of the -location option must match the value specified for the -valid_location in the define_level_shifter_cell command. Otherwise an error will be given.

Expanded Support for Input Voltage Tolerance

In previous versions of CPF, the input voltage tolerance could only be specified for input pins of a macro model.

In CPF 2.0, the concept has been generalized for all input pins. You can also specify a different tolerance for power and ground voltages. You can specify the pins or the domain to which the constraints apply. If the input voltage tolerance is violated, a power or ground level shifter is required for the specified pins.To support these new features the syntax of the set_input_voltage_tolerance command was revised.

Changed Semantics of -within_hierarchy in Rules

Previously, when you specified the -within_hierarchy option in the update_level_shifter_rules command, the power domain of the specified instance had to match the power domain of the default location or the location specified with the -location option.

In CPF 2.0, the power domain of the specified instance no longer needs to match the power domain specified by the -location option. The power domain of the instance specified with the -within_hierarchy option takes precedence.

This change allows you to insert level shifters in a power domain that is neither the from nor the to power domain. This may be needed when the physical constraints require the placement of the level shifter in a separate domain.

Also, if you specify the -within_hierarchy and -cells options together, the -valid_location of the cells specified in the define_level_shifter_cell command must be compatible with the power domain of the hierarchical instance specified with the -within_hierarchy option of the update_level_shifter_rules command. Otherwise an error will be given.

Added Support for Level Shifters That Can Be Placed in Parent Hierarchy

To support the placement of level shifters in the logic hierarchy of the parent instance of the nets selected with the -from, -to, and -pins options in the create_level_shifter_rule command, the parent value can now be specified for the -location option of the update_level_shifter_rules command.

Added Capability to Force the Insertion of Level Shifter Logic

To support forced insertion, the -force option was added to the create_level_shifter_rule command. You must specify the -force option with a -pins option. If you specify a -to or -from option with the -force option, they will be ignored.

If you use the -force option to create the level shifter rule, the level shifters can only be inserted in the default location or in the parent hierarchy ( see the -location option of the update_level_shifter_rules command).

Added Capability to Specify Input and Output Domains for the Level Shifter Cells

To specify the input and output domains for a level shifter the -input_domain and -output_domain options were added to the create_level_shifter_rule command.

Added Capability to Specify a Name Suffix

To specify the name suffix to be used when creating the level shifters, the -suffix option was added to the update_level_shifter_rules command.



State Retention Enhancements

Added Capability to Specify A Model for Special State Retention Logic

Added the -use_model to the update_state_retention_rules command to indicate that a simulation tool must use the functional model of the first cell specified in the -cells option. The -pin_mapping option was added to specify the connection between the pins of the functional model and the pins or ports in the design. If a macro model exists for the functional model, the -domain_mapping option can be used to specify the mapping between the domains in the macro model and the domains in the design.

Added Support for Retention Check and Precondition

In CPF 2.0, a -retention_precondition option was added to the create_state_retention_rule command and a -retention_check option to the define_state_retention_cell command.

Added Capability to Preserve Output While Power is Off

To prevent the corruption of the output of the state retention logic when the primary power is off, the -use_secondary_for_output option was added to the create_state_retention_rule command

Added Capability to Require the Implementation of Retention Logic

To require the implementation of retention logic, the -required option was added to the create_state_retention_rule command.



Power Mode and Power Mode Control Group Changes

Power Mode Control Group Semantic Change

When compound power modes are specified, a design can be in more than one mode at a time. This can cause problems during verification when deterministic domain states are expected.

By allowing a power domain to be specified in multiple power mode control groups, this problem can be solved.

Note:  In CPF 1.1, a power domain could only belong to one power mode control group.

Added Capability to Specify Illegal Power Mode Transitions

To support this feature, the -illegal option was added to the create_mode_transition command.

Added Capability to Associate Assertions with Power Mode Transitions

To support this feature, the -assertions option was added to the create_mode_transition command.

Added Capability to Specify Condition for Power Mode

In CPF 2.0, the -condition option was added to the create_power_mode command to indicate when the design is in the specified mode.

This option is only interpreted by the simulation and verification tools.



Pad and Regulator Modeling Changes

Simplified Pad Modeling

Until now, you could only use a CPF macro model to model the IO pads. This method can be tedious and error-prone.

The define_pad_cell command allows you to create a model for simple pad cells. This command allows you to identify

This model is not sufficient when your pad cell contains any of the following:

In this case, you need to use a CPF macro model for the pad cell.

Simplified Pad Instantiation

The create_pad_rule command allows you to specify the mapping to a top-level domain of either

Improved Capability to Model an On-Chip Voltage Regulator

To model a voltage regulator the following features were added:



Simulator-Related Changes

Added Capability to Specify Simulator Action when Power Domain is Switched off or Restored

To allow users to specify the immediate action to be taken when the power is switched off in power domains or restored to power domains, the set_sim_control command was added.

For example, initial statements are non-synthesizable code used in simulation to create proper startup conditions at time zero of the simulation. Previous CPF versions had no provision to specify the action to be taken when the power is restored to a switchable power domain. This time is very similar to initialization of the simulation at time zero.

Added Capability to Specify a CPF Model for a Testbench

To support this feature, the -testbench option was added to the set_design command.

Added Control over Signal Values in a Power Off Domain

To control the signal values of elements in a power domain when this domain is being switched off, the -power_down_states option was added to the create_power_domain command.



Other Improvements

Added Capability to Specify Inverted Polarity for Equivalent Control Pins

By allowing specification of equivalent pins with inverted polarity in the set_equivalent_control_pins command, insertion of special low power logic during synthesis can sometimes be simplified by using a control signal with the opposite polarity.

For example, with previous versions of CPF, when a limited number of isolation cells is available in the library, a combination of some conditions in the isolation rules might require the addition of an inverter to the control enable line. By using a control signal with the opposite polarity, the inverter is no longer needed.

Added Capability to Specify Libraries Specific to Power Analysis

To support this feature, the -power_library_set option was added to the create_operating_corner and update_nominal_condition commands.

Improved Support for Clamp Diodes

Previous versions of CPF only supported power clamp cells with one data pin.

To improve the support of clamp diodes, the define_power_clamp_cell was superseded by the new define_power_clamp_pins command.

This new command supports

Improved Support for Open Source Pin

Added the -type option to the define_open_source_input_pin command to specify the type of the transistor connected to the pin within the cell.

Added Support for Deep Nwell and Deep Pwell

Added the -deep_nwell and -deep_pwell options to specify bias nets in the update_power_domain command.

Added the -deep_nwell_voltage and -deep_pwell_voltage options to the create_nominal_condition command.

Added Additional Operators for Boolean Expressions

The following bit-wise and logical operators are now allowed in CPF Boolean expressions: ~ ^ && ||

Added Capability to Specify a Global Connection using Ports or Liberty PG Type

The create_global_connection command allows specification of a global connection between

Expanded Definition of Library Set for Operating Corners

The create_operating_corner command now facilitates MMMC analysis and optimization by allowing the specification of more than one library set in the -library_set option.

Added Capability to Specify a Default Analysis View

The -default option was added to the create_analysis_view command to specify the default binding of libraries for different corners to the corresponding power domains.

Added Capability to Find Design Objects within a Specified Scope

To locate and return design objects which can then be used as arguments to other CPF commands, the find_design_objects command was added.




Command Change Summary



Renamed Command Options


Command

Old Option (1.1)

New Option (2.0)

set_input_voltage_tolerance
-ports 
-pins 
-bias [lower:]upper
-power lower[:upper]
-ground [lower:]upper



New Commands

create_mode
create_pad_rule
define_global_cell
define_pad_cell
define_power_clamp_pins
find_design_objects
set_analog_ports
set_diode_ports
set_pad_ports
set_power_source_reference_pin
set_sim_control
update_design


New Command Options


Command

New Option/Argument

create_analysis_view
-default
create_global_connection
-pg_type
-ports
create_isolation_rule
-force
-isolation_control
create_level_shifter_rule
-bypass_condition
-force
-input_domain
-output_domain
create_mode_transition
-assertions
-illegal
create_nominal_condition
-deep_nwell_voltage
-deep_pwell_voltage
create_operating_corner
-power_library_set 
create_power_domain
-exclude_instances
-exclude_ports
-power_down_states
-power_source
create_power_mode
-condition
create_state_retention_rule
-required
-retention_precondition
-use_secondary_for_output
define_isolation_cell
-aux_enables
-clamp
-pin_groups
define_level_shifter_cell
-bypass_enable
-multi_stage
-pin_groups
define_open_source_input_pin
-type
define_state_retention_cell
-retention_check
set_design 
-inout_ports
-input_ports
-modules
-output_ports
power_design
-testbench
set_macro_model
-cells
update_isolation_rules
-domain_mapping
-pin_mapping
-suffix
-use_model
update_level_shifter_rules
-suffix
-through
update_nominal_condition 
-power_library_set
update_power_domain
-boundary_ports
-deep_nwell_net
-deep_pwell_net
-instances
update_state_retention_rules
-domain_mapping
-pin_mapping
-use_model



Other Syntax Changes


Command

New Option

create_isolation_rule

-isolation_output option can take clamp_high and clamp_low values

create_operating_corner

allow specification of more than one library set in the -library_set option.

define_isolation_cell

-power_switchable and -ground_switchable options were made optional

allow specification of combination of -power_switchable and -ground_switchable options

-valid_location can take any value

define_level_shifter_cell

-valid_location can take any value

-input_voltage_range and -output_voltage_range allow specification of list of voltages and voltage ranges

-input_ground_pin, -input_power_pin, -output_ground_pin, -output_power_pin, -ground and -power options were made optional

update_isolation_rules

-location option can take parent value

update_level_shifter_rules

-location option can take parent value




Semantics Changes


Command

New Option

create_power_domain

-instances allows instances of any library cells

set_equivalent_control_pins

allow specification of equivalent pins with inverted polarity

set_instance

-design now takes a power design name specified by set_design.

set_macro_model

macro model definitions are now scope insensitive. first definition is used.

update_level_shifter_rules

-cells can take a list of lists for multi-stage level shifters



Return to top of page

View Library View Table Of Contents View Previous Chapter in Book View Next Chapter in Book Open PDF to print book Search Cadence Library Email Comments Help Using Documentation Shut Down Cadence Documentation Server


For support, see http://www.cadence.com/support or try Cadence's SourceLink service.

Copyright © 2013, Cadence Design Systems, Inc.
All rights reserved.
Legal notices and trademark attributions