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.
A power domain whose primary power supply provides power to another power domain through some power switch network is called a base domain.
A power domain that derives its power from another power domain through some power switch network is called the derived domain.
To support this concept the
-base_domainsoption to thecreate_power_domaincommand. 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
Enable the simulation of always-on cell
Enable the simulation of deep sleep mode of retention cell
Enable the physical implementation of always-on, retention logic and power switches
To support this concept the following changes were made:
Added
-secondary_domainoption to thecreate_isolation_ruleand thecreate_state_retention_rulecommands.Added
identify_secondary_domaincommand.
Improved Hiearchical Flow
To improve the hierarchical flow, the following concepts were introduced:
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.
Merge a block-level power domain into a top-level power domain in a hierarchical flow
Reconfigure block level power domains at the top level
Mapping power domains causes some complications such as
How to handle rules defined for the block-level and top-level power domains.
How to merge power modes
To support this concept the following changes were made:
Added
-domain_mappingoption to theset_instancecommand.Added
-honor_boundary_port_domainoption to theset_designcommand.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:
Added the
set_power_mode_control_groupcommand.Added the
end_power_mode_control_groupcommand.Added the
-group_modesoption to thecreate_power_modecommand.Added the
-group_viewsoption in thecreate_analysis_viewcommand.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
Implementation tool to properly hook up the power and ground pins of the IP at the top level
Verification tool to check for consistency between the implementation and the constraints specified in the CPF.
Simulation tool to verify the behavior
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:
Added
set_macro_modelcommandAdded
end_macro_modelcommandAdded
set_floating_portscommandAdded
set_input_voltage_tolerancecommandAdded
set_wire_feedthrough_portscommandFor more information, refer to Modeling a Macro Cell.
Improved IP Support
To improve support of IP's, the following changes were made:
Added support for parameterized IP by adding the
-paramater_mappingoption to theset_designcommand.Added support for specifying isolation constraints at the inputs of an IP by making the
-isolation_conditionoption in thecreate_isolation_rulecommand optional.The
define_related_power_pinscommand was added to specify the relationship between the power and data pins for IPs that have more than one set of power / ground pins.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:
Specific rules explicitly specify the targeted design objects.
Generic rules do not explicitly specify the targeted design objects, but the targeted design objects can be derived from some option specified with the rule.
The following general rules of precedence apply:
Generic rules specified with both the
-fromand-tooptions have a higher priority than those generic rules specified with only-fromor-tooption.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_instancecommand:
Block-level rules always overwrite the top-level rules if both rules apply to the same objects at the block-level after domain mapping.
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.
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:
The
end_designstatement can now contain the name of the module used with the correspondingset_designcommand.The end_macro_model statement can now contain the name of the macro cell used with the corresponding
set_macro_modelcommand.
Isolation Enhancements
The following enhancements were made:
Added support for isolation cell without enable pin by adding
-no_enableoption to thedefine_isolation_cellcommand and the-no_conditionoption to thecreate_isolation_rulecommand.
IP blocks can have special requirements for input ports. For example, when the signals driving these input ports are switched off, the signals must be held at specific values. For these signals, no isolation condition can be specified because the IP developer has no knowledge of how the IP will be used.
Added support for a default isolation rule for a power domain by adding the
-default_isolation_conditionoption to thecreate_power_domaincommand.Added support for tristate isolation output by adding the
tristatevalue to the-isolation_outputoption of thecreate_isolation_rulecommand.Added support for instantiating the isolation logic in any logic hierarchy within a power domain by adding the
-within_hierarchyoption to theupdate_isolation_rulescommand.Added support for isolation cells that must be put in the
onoroffdomain by adding theonandoffvalues for the-valid_locationoption to thedefine_isolation_cellcommand.
Level Shifter Enhancements
The following enhancements were made:
Added support for instantiating the level shifters in any logic hierarchy within a power domain by adding the
-within_hierarchyoption to theupdate_level_shifter_rulescommand.Improved support for level-shifter cells with an enable pin by adding the
-enableoption to thedefine_level_shifter_cellcommand.Added support for ground level shifter by adding the
-ground_input_voltage_range,-ground_output_voltage_range,-input_ground_pinand-output_ground_pinoptions to thedefine_level_shifter_cellcommand.Added support for level shifter cells that can be put in the driving or receiving domain by adding the
eithervalue for the-valid_locationoption to thedefine_level_shifter_cellcommand.
State Retention Enhancements
The following enhancements were made:
Added support for latches by adding the
-target_typeto thecreate_state_retention_rulecommand.Added support for level-sensitive save and restore control by adding the
-restore_leveland-save_leveloptions to thecreate_state_retention_rulecommand.Added support to more accurately match the implied RTL behavior with gate-level models by adding the
-restore_precondition,-save_precondition, and-secondary_domainoptions to thecreate_state_retention_rulecommand.Added support to specify a list of instances that must be excluded from replacement with state retention elements by adding the
-excludeoption to thecreate_state_retention_rulecommand.Added support for master-slave type state retention cells which have neither a save nor restore pin. For more information, refer to Handling Master-Slave Type Retention Cells.
Power Switch Enhancements
The following enhancements were made:
Added capability to specify the resistance of the power switch per stage.
To support this feature, the
-on_resistanceoption of thedefine_power_switch_cellcommand was replaced with the-stage_x_on_resistanceoptions, wherexcorresponds to the stage.Added capability to specify an acknowledge receiver condition for each stage of the power switch cells.
To support this feature, the
-acknowledge_receiveroption of theupdate_power_switch_rulecommand was replaced with the-acknowledge_receiver_xoptions, wherexcorresponds to the stage.
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
-stateoption with valueson,off, andstandbyoption was added to thecreate_nominal_conditioncommand.To improve the functional modeling of the biased state, the
-ground_voltageoption was added to thecreate_nominal_conditioncommand.To improve the implementation of designs using body bias, the
-nmos_bias_voltageand-pmos_bias_voltageoptions were added to thecreate_operating_cornercommand.To describe forward body biasing, you must specify -
pmos_bias_voltagewith a value smaller than the value of -voltageand -nmos_bias_voltagewith a value greater than the value of -ground_voltage. Forward biasing can be used to improve performance in theonstate.To describe reverse body biasing, you must specify -
pmos_bias_voltagewith a value larger than the value of -voltageand -nmos_bias_voltagewith 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 theonorstandbystate.
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_conditionsoption was added to thecreate_power_domaincommand.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
absolute time--using the
-latencyoption of thecreate_mode_transitioncommandclock cycles--using the using the
-cyclesoption of thecreate_mode_transitioncommandIn the CPF 1.0 extended version you can now specify a minimum and maximum number for the
-latencyand the-cyclesoption of thecreate_mode_transitioncommand.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_domaincommand:
-transition_latency{from_nomlatency_list}
Specifies the nominal condition of the starting power state, followed by a list of transition times to complete a transition to the next power state.
-transition_cycles{from_nomcycle_list clock_pin}
Specifies the nominal condition of the starting power state, followed by a list of transition cycles to complete the transition to the next power state, followed by the clock pin.
-transition_slopeThe 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
Added Capability to Associate User Attributes with An Analysis View
Added Control over Assertion Evaluation
Added Support for Equivalent Control Pins
Equivalent Power and Ground Nets
Refined Specification of SDC Files
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_configurationscommand was added.Added Capability to Associate User Attributes with An Analysis View
To support this feature, the
-user_attributesoption was added to thecreate_analysis_viewcommand.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_controlcommand 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_pinscommand 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_netsand-equivalent_ground_netsoptions were added to theupdate_power_domaincommand.Refined Specification of SDC Files
Added capability to group SDC files with only hold or setup constraints by adding the
-hold_sdc_filesand-setup_sdc_filesoptions to theupdate_power_modecommand.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
set_instance-merge_default_domains-domain_mappingThe old option only allowed for merging of the default domains. The new option is more general.
update_isolation_rules-combine_level_shiftingBy 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_setImplementation tools should automatically select valid cells from the library sets associated with the power domain through the
update_nominal_conditionorcreate_operating_cornercommands.update_level_shifter_rules-library_setImplementation tools should automatically select valid cells from the library sets associated with the power domain through the
update_nominal_conditionorcreate_operating_cornercommands.update_power_domain-max_power_up_time-min_power_up_time-transition_latency-transition_cyclesBecause 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_setNone 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_setImplementation tools should automatically select valid cells from the library sets associated with the power domain through the
update_nominal_conditionorcreate_operating_cornercommands.update_state_retention_rules-library_setImplementation tools should automatically select valid cells from the library sets associated with the power domain through the
update_nominal_conditionorcreate_operating_cornercommands.
Renamed Command Options
Note: For backward-compatibility, the old names are also supported.
Changed Command Option Value
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
Syntax Changes
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