View Library View Table Of Contents View Previous 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


2


What's Changed from CPF 1.0 to CPF 1.1




New Features



Introduced Concept of Base and Derived Power Domains

CPF 1.1 introduces the concepts of base and derived power domains.

To support this concept the -base_domains option to the create_power_domain command. This enables specification and simulation of domain dependencies.



Introduced Concept of Secondary Power Domain

CPF 1.0 only had the concept of a power domain which was defined as collection of instances that use the same power supply during normal operation and that can be switched on or off at the same time.

However, physical cells with multiple power pins were hard to model. Therefore the concept of secondary power domain was introduced.

A power domain X is a secondary power domain of a special low power instance if the primary power and ground nets of the domain X provide the power supply to the secondary power and (or) ground pins of the instance.

The secondary domain can be used to

To support this concept the following changes were made:



Improved Hiearchical Flow

To improve the hierarchical flow, the following concepts were introduced:

Other improvements include

Introduced Concept of Domain Mapping

CPF1.0 did not support mapping a block-level power domain into a higher-level power domain.

For example, when creating a hierarchical design, the domains of an IP are created without knowledge of final use. By introducing the concept of domain mapping, mapped power domains are treated as a single power domain.

Domain mapping can be used to

Mapping power domains causes some complications such as

To support this concept the following changes were made:

For more information on domain mapping, refer to Power Domain Mapping Concepts.

Introduced Concept of Power Mode Control Group

CPF 1.0 only supported top-level power mode definitions. However, in a hierarchical flow, a block can have its own power mode definitions. To describe how the power modes at the top-level are related to the power modes of a block, the concept of power mode control group was introduced.

A power mode control group is a set of power domains with an associated set of power modes and mode transitions that apply to this group only. A power mode group can contain other power mode groups.

To support power mode control groups, the following changes were added:

For more information, refer to Power Mode Control Groups.

Introduced Concept of Macro Model

Proper modeling of macro cells (such as a RAM) with complex power network is important because it serves as a specification for the

Because the macro cell has only a behavioral model to describe its functionality, implementation and verification tools have to rely on the CPF modeling of the internal power network using the boundary ports.

To support modeling of macro cells, the concept of macro model was introduced.

To support this concept the following changes were made:

For more information, refer to Modeling a Macro Cell.

Improved IP Support

To improve support of IP's, the following changes were made:

Defined Precedence for Rules

In a hierarchical flow, block-level and top-level domains each can have rules defined with them. When you map power domains, the associated rules must be handled properly.

To handle the rule precedence, two categories of CPF rules are considered:

The following general rules of precedence apply:

  1. Specific rules have a higher priority than generic rules.

  2. Generic rules specified with both the -from and -to options have a higher priority than those generic rules specified with only -from or -to option.

  3. If multiple CPF rules with the same priority are applied to the same design objects, the last rule wins.

In addition, for a hierarchical flow, the following rules of precedence apply:

The following policies should be followed by all tools when a block-level CPF is integrated into the top-level CPF using the set_instance command:

  1. Block-level rules always overwrite the top-level rules if both rules apply to the same objects at the block-level after domain mapping.

  2. Top-level rules are only applied to block-level objects if the block-level objects have no rule specified and the block is not a macro model.

    In this case, the tools should issue a warning to inform users that top-level CPF rules are applied to the block.

  3. Block-level rules are never propagated to the top level.

  4. For more information on the precedence of rules, refer to the Rules chapter in the Common Power Format Language Reference.

Enhanced CPF Readability

To improve the readability of the CPF files, the following enhancements were made:



Isolation Enhancements

The following enhancements were made:



Level Shifter Enhancements

The following enhancements were made:



State Retention Enhancements

The following enhancements were made:



Power Switch Enhancements

The following enhancements were made:



Power Mode Enhancements

CPF 1.0 only covered either the on or off state of a power domain. However, there is a need to also be able to specify when a power domain is in standby mode and to support forward bias and reverse bias.

To support specification of the state of a power domain, the -state option with values on, off, and standby option was added to the create_nominal_condition command.

To improve the functional modeling of the biased state, the -ground_voltage option was added to the create_nominal_condition command.

To improve the implementation of designs using body bias, the -nmos_bias_voltage and -pmos_bias_voltage options were added to the create_operating_corner command.

To describe forward body biasing, you must specify -pmos_bias_voltage with a value smaller than the value of -voltage and -nmos_bias_voltage with a value greater than the value of -ground_voltage. Forward biasing can be used to improve performance in the on state.

To describe reverse body biasing, you must specify -pmos_bias_voltage with a value larger than the value of -voltage and -nmos_bias_voltage with a value smaller than the value of -ground_voltage. Reverse body biasing can be used to achieve the standby state.

To describe reverse source biasing, you must specify the voltage values for the power supply (-voltage) and ground supply (-ground_voltage) that cause the logic to be in the on or standby state.



Improved Support for DVFS Designs

Added Capability to Specify Control Conditions for Different States of a Domain

To define active state and conditions for each power domain, the -active_state_conditions option was added to the create_power_domain command.

Added Support for Domain Specific Transition Time

In CPF 1.0 mode transition times applied to all power domains involved in the same mode transition. The transition time could be specified in

In the CPF 1.0 extended version you can now specify a minimum and maximum number for the -latency and the -cycles option of the create_mode_transition command.

Starting with the CPF 1.0 extended version mode transition times can be specified per power domain. To specify the required time for a domain for a specific state transition, the following options were added to the update_power_domain command:

The specified time can be used by simulation to simulate the domain transition time or used by physical implementation tool as constraint when designing the power distribution network



Other Improvements

Added Capability to Identify Illegal Power Modes

To assert that a particular configuration of domain conditions and power mode control group conditions is illegal, the assert_illegal_domain_configurations command was added.

Added Capability to Associate User Attributes with An Analysis View

To support this feature, the -user_attributes option was added to the create_analysis_view command.

Added Control over Assertion Evaluation

By default, assertions remain active when the power domain is powered down. This may create a lot of false assertions.

To inhibit evaluation of any selected assertion instance when its related power domain is powered down the create_assertion_control command was added.

Added Support for Equivalent Control Pins

To define a list of this pins that are equivalent with a master control pin, the set_equivalent_control_pins command was added. The master control pin is part of the definition of a shutoff condition, isolation condition or state retention condition.

Equivalent Power and Ground Nets

If a power domain is implemented in multiple disjoint physical regions, each region has its own power and ground nets. To declare these power and ground nets equivalent to the primary power and ground nets of a power domain, the -equivalent_power_nets and -equivalent_ground_nets options were added to the update_power_domain command.

Refined Specification of SDC Files

Added capability to group SDC files with only hold or setup constraints by adding the -hold_sdc_files and -setup_sdc_files options to the update_power_mode command.

Change in Hierarchy Delimiter

Added the colon (:) as allowed hierarchy delimiter character, and removed the caret (^) as allowed hierarchy delimiter character.

Change in Object Names

Object names can no longer contain the dollar sign ($).




Command Change Summary



Obsoleted Command Options


Command

Obsolete Option(s)

Equivalent?

set_instance
-merge_default_domains
-domain_mapping

The old option only allowed for merging of the default domains. The new option is more general.

update_isolation_rules
-combine_level_shifting

None

By default, implementation tools should try to find a suitable cell that has both isolation and level-shifting functionality. See How to Handle Multiple Rules that Apply to a Physical Net.

-library_set

None

Implementation tools should automatically select valid cells from the library sets associated with the power domain through the update_nominal_condition or create_operating_corner commands.

update_level_shifter_rules
-library_set

None

Implementation tools should automatically select valid cells from the library sets associated with the power domain through the update_nominal_condition or create_operating_corner commands.

update_power_domain
-max_power_up_time
-min_power_up_time
-transition_latency
-transition_cycles

Because a power domain can be in a different on state (with different voltages) and it can also be in a standby state, a more fine grain specification of domain transition time was needed.

-rail_mapping
-library_set
None

The options were initially added to check for power/ground connectivity for special cells with multiple power and ground pins. With the introduction of secondary power domain and domain mapping, this is no longer needed. All the power/ground net connections are described in CPF.

update_power_switch_rule
-library_set

None

Implementation tools should automatically select valid cells from the library sets associated with the power domain through the update_nominal_condition or create_operating_corner commands.

update_state_retention_rules
-library_set

None

Implementation tools should automatically select valid cells from the library sets associated with the power domain through the update_nominal_condition or create_operating_corner commands.




Renamed Command Options


Command

Old Option (1.0)

New Option (1.1)

create_mode_transition
-from_mode 
-from 
-to_mode
-to
define_isolation_cell
-always_on_pin
-always_on_pins
define_level_shifter_cell
-always_on_pin
-always_on_pins
-output_voltage_input_pin
-enable
define_power_switch_cell
-on_resistance
-stage_x_on_resistance
define_state_retention_cell
-always_on_pin
-always_on_pins
update_power_domain
-internal_power_net
-primary_power_net
-internal_ground_net 
-primary_ground_net
update_power_switch_rule
-acknowledge_receiver
-acknowledge_receiver_x
update_state_retention_rules
-cell
-cells

Note:  For backward-compatibility, the old names are also supported.



Changed Command Option Value


Command

Option

Old Value

New Value

create_ground_nets
-voltage 
string
{float|voltage_range}
create_isolation_rule
-isolation_output
{high|low| hold}
{high|low|hold|tristate}
create_mode_transition
-cycles
integer
[integer:]integer
-latency
float
[float:]float
create_power_nets
-voltage 
string
{float|voltage_range}
define_isolation_cell
-valid_location
{from|to}
{from|to|on|off}
define_level_shifter_cell
-valid_location
{to|from}
{to|from|either}
define_library_set
-libraries
library file list
list of library files 
and library groups
update_power_switch_rule
-acknowledge_receiver_x
pin
expression



New Commands

assert_illegal_domain_configurations
create_assertion_control
define_related_power_pins
end_macro_model
end_power_mode_control_group
get_parameter
identify_secondary_domain
include
set_equivalent_control_pins
set_floating_ports
set_input_voltage_tolerance
set_macro_model 
set_power_mode_control_group
set_wire_feedthrough_ports


New Command Options


Command

New Option/Argument

create_analysis_view
-group_views
-user_attributes
create_ground_nets
-external_shutoff_condition
create_isolation_rule
-no_condition
-secondary_domain
create_nominal_condition
-ground_voltage
-state
create_operating_corner
-ground_voltage
-nmos_bias_voltage
-pmos_bias_voltage
create_power_domain
-active_state_conditions
-base_domains
-default_isolation_condition
-default_restore_level
-default_save_level
-external_controlled_shutoff
create_power_mode
-group_modes
create_state_retention_rule
-exclude
-restore_level
-restore_precondition
-save_level
-save_precondition
-secondary_domain
-target_type
define_isolation_cell
-no_enable
define_level_shifter_cell
-enable
-ground_input_voltage_range
-ground_output_voltage_range
-input_ground_pin
-output_ground_pin
-power
define_power_switch_cell
-enable_pin_bias
-gate_bias_pin
-stage_x_on_resistance
define_state_retention_cell
-always_on_components
-cell_type
end_design
module
end_macro_model
macro_cell
identify_power_logic
-module
set_design 
-honor_boundary_port_domain
-parameters
set_instance
-design
-domain_mapping
-model
-parameter_mapping
update_isolation_rules
-within_hierarchy
update_level_shifter_rules
-within_hierarchy
update_power_domain
-equivalent_power_nets
-equivalent_ground_nets
-transition_cycles
-transition_latency
-transition_slope
update_power_mode
-hold_sdc_files
-setup_sdc_files
update_power_switch_rule
-gate_bias_net
update_state_retention_rules
-set_reset_control



Syntax Changes


Command

New Option

create_isolation_rule

-pins option must be specified with -from, -to or both options

-isolation_condition option is now optional

create_level_shifter_rule

-pins option must be specified with -from, -to or both options

create_power_domain

options -instances, -boundary_ports and -default are no longer exclusive

modified syntax for -default_save_xx and -default_restore_xx options

create_state_retention_rule

modified syntax for the -restore_edge and -save_edge options

define_always_on_cell

allow specification of combination of -power_switchable and -ground_switchable options

define_level_shifter_cell

made step in voltage range optional:

lower_bound:upper_bound[:step]
define_state_retention_cell

allow specification of combination of -power_switchable and -ground_switchable options

modified syntax for -save_function and -restore_function options



Return to top of page

View Library View Table Of Contents View Previous 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