CPF Methodology PDF
CPF Methodology PDF
Cadence CPF
Methodology Guide
Version 1.1
2007-2009 Cadence Design Systems, Inc. All rights reserved worldwide.
Printed in the United States of America.
Cadence Design Systems, Inc., 2655 Seely Avenue, 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.
Restricted Permission: This publication is protected by copyright law and international treaties and contains trade secrets
and proprietary information owned by Cadence. Unauthorized reproduction or distribution of this publication, or any
portion of it, may result in civil and criminal penalties. Except as specified in this permission statement, this publication
may not be copied, reproduced, modified, published, uploaded, posted, transmitted, or distributed in any way, without
prior written permission from Cadence. Unless otherwise agreed to by Cadence in writing, this statement grants Cadence
customers permission to print one (1) hard copy of this publication subject to the following conditions:
The publication may not be modified in any way;
Any authorized copy of the publication or portion thereof must include all original copyright, trademark, and other proprietary
notices and this permission statement;
The information contained in this document cannot be used in the development of like products or software, whether for
internal or external use, and shall not be used for the benefit of any other party, whether or not for consideration
Disclaimer: Information in this publication is subject to change without notice and does not represent a commitment on the
part of Cadence. The information contained herein is the proprietary and confidential information of Cadence or its
licensors, and is supplied subject to, and may be used only by Cadence's customer in accordance with, a written
agreement between Cadence and its customer. 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.
2 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Introduction
3 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Notes on this Document
4 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Table Of Contents
5 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Introduction
Low Power Basics
What is CPF?
What are the common low power techniques and how do they
compare?
Power Techniques
Detailed discussion on each technique, how to write the CPF, and
how they impact the verification and implementation flows.
Power Shutoff (PSO)
Multiple Voltage Supplies (MSV)
Standby Mode
Dynamic Voltage And Frequency Scaling (DVFS)
6 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Cadence Low Power Solution
Chip Estimation
Verification Planning
Cadence Low Power Solution CtoSilicon
Chip Planning &
Creating CPF with CLP GUI
Architectural Exploration CPF checking and validation
Power Intent
Creation & Checking Low Power simulation and emulation
LP Assertions and coverage
Emulation
LP Functional Verification
Synthesis and optimization
Frontend Design LP DFT
and Optimization Power analysis
Power exploration
Closed Loop Verification
Closed loop design and verification
Digital Implementation Low Power design Checks
Low Power equivalency checking
7 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Flow Topics
Macro Modeling
Domain Mapping
IP Reuse Example
8 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Guidelines
TCL Tips
9 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Tips and Techniques
How to model Hard macro with power intent
Macro Modeling ( details in macro modeling section)
I/O pads
Voltage_regulator
Level Shifters and Combination Isolation/level shifting cells
Roms, Flash Memory (details in RTL coding style section)
10 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Introduction to Low Power
11 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Introduction
Low Power Basics
What is CPF?
What are the common low power techniques and how do they
compare?
Power Techniques
Detailed discussion on each technique, how to write the CPF, and
how they impact the verification and implementation flows.
Power Shutoff (PSO)
Multiple Voltage Supplies (MSV)
Standby Mode
Dynamic Voltage And Frequency Scaling (DVFS)
12 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Common Power Format (CPF)
Common Power Format = Single specification of power intent
used throughout design, verification, and implementation
HDL Language neutral
ASCII File that captures:
Design intent Technology information
Power domain
Level shifter cells
Logical: hierarchical modules as
domain members Isolation cells
Physical: power/ground nets State-retention cells
and connectivity
Analysis view: timing library Switch cells
sets for power domains Always-on cells
Power Logic
Level Shifter Logic
Isolation Logic
State-Retention logic
Switch Logic & Control Signals
Power mode
Mode and transitions
13 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Design, Verification, and Implementation with
Power Permeating Throughout
Specification
Quick architectural exploration
Testbench Automation
Equivalence Checking
Verification Coverage
Generation Analysis
Constraint Validation
Synthesis Structural
& Func Checks
Acceleration
SVP & Emulation
DFT
miscommunications power domains
Physical Synthesis
Analysis
LVS/DRC/Ext
Automatic scheduling of
Single power Routing
ATPG
test modes
specification used from Sign-off
specification to GDSII
14 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems,
GDSII Inc. All rights reserved
Common Power Format (CPF)
Multiple Contributors
Architect specifies initial CPF to describe system behavior and modes
Implementation engineer provides technology information
RTL designer provides detailed level CPF
Verification engineer updates based on simulation results and requirements
TIP : Keep the CPF under revision control by the technical lead of the
project.
We have seen projects where there are multiple/contradicting CPFs
15 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
What CPF is not
16 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF Reference Material
17 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Introduction
Low Power Basics
What is CPF?
What are the common low power techniques and how do they
compare?
Power Techniques
Detailed discussion on each technique, how to write the CPF, and
how they impact the verification and implementation flows.
Power Shutoff (PSO)
Multiple Voltage Supplies (MSV)
Standby Mode
Dynamic Voltage And Frequency Scaling (DVFS)
18 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
What are the common low power techniques?
DVFS
The CPU can Power Standby
Reduce voltage and When not being used
Frequency when the memory can go in
running lower CPU Mem a standby or very low
performance tasks voltage mode
1.1V/0.9V 1.1V/Standby
MSV
DVFS & Power shutoff
The Audio processor Audio When not in use the
runs at lower clock
0.9V GPU graphics engine can be
frequency so can use 1.1V/0.9V/off
a lower voltage turned off. For high
USB performance ops it can
0.9V/off also take on the high
voltage.
Power shutoff
When no device is
plugged in, the USB can
complete power off
19 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Common Low Power Architectures (MSV)
Multiple Supply Voltages
Multiple Supply Voltages
PD_v13
1.3V
PD_v11
Power Shutoff 1.1V
PD_v09
0.9V
Standby/Sleep Mode
Multiple Supply Voltages
- Each domain gets the lowest voltage that
Dynamic Voltage and meets performance requirements
- Level Shifting may be required between
Frequency Scaling domains
Summary
Leakage Power Savings : Med
Dynamic Power Savings : Med
Verification Complexity : Med
Implementation Complexity : Med
20 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Common Low Power Architectures (PSO)
V1.1 Power Shutoff
Multiple Supply Voltages Switch Shutoff
PCM
Save
State Ret
1.1V/Off
Standby/Sleep Mode
Power Shutoff (PSO)
- Turn off power supply via a physical switch
Dynamic Voltage and - Isolation to protect downstream logic
- State retention to save state (optional)
Frequency Scaling
Summary
Leakage Power Savings : High
Dynamic Power Savings : High *
Verification Complexity : Med
Implementation Complexity : Med
*similar dynamic savings from clock gating
21 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Common Low Power Architectures (Standby)
Standby Mode
Multiple Supply Voltages
PCM
Sel1.1V V1.1 or V0.7
Sel0.7V VR
PCM
V1.1 or V0.9
Sel0.9V VR
23 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Click to return to Main Window
24 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Introduction
Low Power Basics
What is CPF?
What are the common low power techniques and how do they
compare?
Power Techniques
Detailed discussion on each technique, how to write the CPF, and
how they impact the verification and implementation flows.
Power Shutoff (PSO)
Multiple Voltage Supplies (MSV)
Standby Mode
Dynamic Voltage And Frequency Scaling (DVFS)
25 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Introduction to Power Shutoff
V1.1 Power Shutoff
How Does Power shutoff Switch Shutoff
work?
PCM
Save
PCM
Isolation for Power Shutoff Save
Isolation cells protect the interfaces between domains
Ensures a stable value across interface during power shutoff State Ret
State Retention Isolate
PD_PSO
PD_ON
State retention is used to retain some or all of a domains
state during power shutoff 1.1V/Off
There are a number of retention policies
Specialized state retention cells with a small latch to retain the
state when power is off
Saving state to a memory
Power Control Sequence
The sequence of events that is required to power on or
power off a domain Power
Ex: Isolate->Save->Power shutoff -> Power Up->restore->
Remove Isolation domain
State Isolation
Retention
27 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Shutoff Sequence
V1.1 Power Shutoff
Shutoff
Power Off Switch
PCM
Save
Gate clocks before PSO
Isolate the paths from the State Ret
power shutoff domain PD_PSO Isolate
Save the state of any 1.1V/Off
critical registers
Regs
(optional)
Power shutoff
Power On
Power up switch
Apply any Async resets
Restore the critical state
elements
Remove Isolation
Remove Clock Gating
28 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Introduction to Power Shutoff
V1.1 Power Shutoff
How Does Power shutoff Switch Shutoff
work?
PCM
Save
29 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Shutoff Specification Flow
Golden CPF
Update CPF for Synth
Front End Design Flow
Synthesis, LP Design &
Equiv checking
Define operating corners
31 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
PSO CPF For Synthesis and Implementation
How to generate Technology data
Power & Ground Switch +Network How to specify and connect the
power and ground network
Switches, special cells, etc
Note: The links on this page only work in PowerPoint
and not in the PDF
32 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Introduction to Power Shutoff
V1.1 Power Shutoff
How Does Power shutoff Switch Shutoff
work?
PCM
Save
33 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Shutoff Design Flow
34 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Evaluating Power Shutoff
35 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Defining what goes into a domain (PSO)
Power Domains define a set of instances that share a common power architecture
Define the set of hierarchical instances and macro instances that are connected to the same
power sources
Created with create_power_domain
In CPF, most of the power and ground connectivity is done via power domain definitions.
No need to directly connect power nets in most cases
Domains include
Module instances
Instantiated cells
Macro Models cells that have a macro model
Blackboxes leaf level cells with no function
I/O Cells marked as is_pad
Boundary Ports
Power Control signals
Power shutoff conditions
Guidelines for defining power domains
# Command: Create_power_domain
# Basic Power shutoff definition
create_power_domain -name PD_v11 -default
create_power_domain -name PD_PSO -instances {inst_A} shutoff_condition {pcm/pse}
36 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Guidelines for defining Power Domains
Power domains typically follow logic hierarchy
Common to group siblings in a hierarchy tree
CPF supports grouping of nodes from different hierarchy trees
Physical hierarchy
Power domains often relate to physical floorplan regions/fences
In some cases, may be split into smaller regions for floorplanning
Make domains reasonable sized
A lot of small domains can make the physical implementation more difficult
There is overhead associated with each domain (power and ground routing,
level shifting/isolation between domains, etc)
Minimize the number of unique voltage levels
While the optimum configuration may be one domain 0.95V and another at
0.93V, it doesnt make sense at a physical implementation level
Typically we see differences in the range 150-200 mv
Instance list specification
The instance list is hierarchical, an instance inherits its parents domain setting
Common to use wildcards at leaf level : A/B/C/MEM_*
Note: Click here for restrictions on using wildcards
37 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Shutoff
Isolation Requirements
Example
38 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Shutoff Control Vdd
39 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
PSO Guidelines on Power Control
Control
For front end design and simulation
Control is specified with the shutoff expression on create_power_domain
Ex: create_power_domain name PD_PSO shutoff_expression pso_en
For physical implementation, the create_power_switch rule is used
Power switch rules provides detailed specification of actual power switch
Click here for an example:
Conformal LP checking
Checks that the switch enable is the inversion of the shutoff condition
Guidelines
Avoid complex logical expression in shutoff condition
To control rush current, multiple power control pins that are delayed from each
other are often used. (example CPF)
The Shutoff condition of the power domain, and the switch enable are typically
inversions of each other.
In some cases, this relationship does not exist typically due to having multiple parallel
switches to balance rush current
In this case, it is up to the user to ensure consistency between these signals
Simulation is required to verify the functionality of the shutoff expressions
40 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Hierarchical Power Control
Example PSE_1
Create_power_domain name PD_MID
VDD_PSO
shutoff_condition PSE_2
base_domains PD_TOP
instances .
Create_power_domain name PD_PSO PD_PSO
shutoff_condition PSE_1
base_domains PD_MID
instances .
41 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Shutoff
Isolation Requirements
Example
42 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Modes (PSO)
Power modes define the set of valid voltage
configurations of all the domains in the design.
PD1 PD2 PD3
Modes are defined as a list of MA 1.1V off 1.1V
PowerDomain@nominal_condition
Where a nominal condition defines the state, voltage MB 1.1V off off
and libraries to use:
Create_nominal_condition name off state off voltage MC 1.1V 1.1V off
0.0
Click here to learn about nominal Conditions
43 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Guidelines on Power Modes
44 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Tracking Mode Transitions in Simulation (PSO)
Via Power Shutoff conditions
The simulator monitors the power shutoff conditions for all domains
The shutoff conditions signals the start of a domain transition
When all domains have finished transitioning, the simulator recalculates the
power mode
An error is issued if the mode has not been defined with a create_power_mode
Via Mode Transitions
The create_power_mode_transition command is used to define the legal set of
mode transitions
It can also specify a start_condition that can be used to initiate a change in
power mode.
Ex: create_mode_transition name T1 from M1 to M2 start_condition S1
When S1 is true and the current mode is M1, then simulator expects to see a transition
to M2
It will produce an error if any other transitions occur
Mode Transitions Provide
Additional coverage and checking for a design
Mechanism to control the power mode before all the detail control signals have
been fully defined.
45 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Create_mode_transitions
Create_mode_transition can be used to
define the legal set of transitions
between power modes
MA
Mode Transition Provide:
Coverage collection can verify that all
possible transitions have occurred
Error checking to ensure legal transition MC MB
and sequences of transitions
In the example, a transition from MA to MB
would flag an error
Prevents transient mode coverage
Different transition times on each domain
can make it appear that more modes
where executed. create_mode_transition from MA to MB start_condition mab
create_mode_transition from MB to MC start_condition mbc
Control of power mode transitions create_mode_transition from MCto MA start_condition mca
The start_condition defines when the create_mode_transition from MCto MB start_condition mcb
domain will start to transition
The end of the transition is one of:
All power domains have finished
their voltage transition
-end_condition has been triggered
Typically these are used mutually
exclusively.
46 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Create_mode_transitions - Notes
47 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Shutoff
Isolation Requirements
Example
48 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Isolation for Power Shutoff
What is isolation
What are the Common Isolation Styles
Styles and examples
Recommendations and Guidelines for Isolation
Isolation on feedthrough nets
49 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Isolation For Power Shutoff
Isolation For Power Shutoff
Method of protecting logic downstream from a power shutoff
A power shutoff domains outputs are floating during PSO
Isolation ensures a valid voltage and value at the outputs
Reduce power consumption at during power up/down
50 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Common Isolation Styles
Create_isolation_rule name ISO1 from PDA
Output Isolation
Output Isolation
a_out
Output isolation is very common PDA PDB
Typically used when the output value is c_out
the same regardless of destination
A bus interface for instance
Not all outputs have to isolate the same
way PDC
Can be specified at the chip level or Iso_en
block level
CPF allows a lot of flexibility
Specify unique isolation for each from/to
pair of signals (Cout->PDB, Cout-PDC)
Input Isolation
Input Isolation: PDA
a_out
PDB
Isolation is specific at the destination
Isolation from c_out to PDC c_out
Common in IP blocks
The IP block specifies what it expects
the inputs to be if their power is shutoff
PDC
Using Default isolation_condition
allows isolation to be defined even if the
isolation condition is not known to the Iso_en
IP(see next page)
Create_isolation_rule name ISO2 to PDC
51 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Isolation Examples and Recommendations
Recommended Isolation Technique
Description
Define a general isolation rule
Use from, -to, or combination of from and to
-from and to together provides more detailed control over the isolation behavior
Can help prevent un-necessary isolation
Set isolation_type to most common value (typically low or high)
Use exclude to exclude pins that isolate to the non-default value
Define a specific rule for the non-default pins
Pros:
Handles most common isolation cases where majority of pins can be isolated
the same way
Explicit list of less common isolation value
More concise and maintainable than listing explicitly listing each pin
Isolation is well defined and will work in all CPF based flows
Cons:
Missing pins automatically added using first isolation rule
Can be difficult to detect if this was an incorrect setting for that pin
More verbose than some techniques
#Block PDA.cpf
set hi_pins {PDB/a_in}
create_isolation_rule name ISO_LOW to PDB from PDA exclude $hi_pins
isolation_type low isolation_condition iso_en
create_isolation_rule name ISO_HIGH to PDB from PDA pins $hi_pins
isolation_type high isolation_condition iso_en
52 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Isolation Examples and Recommendations
Isolation with Explicit pin definitions
Specification
For each isolation_type
Create an isolation rule for that type listing out exactly which pins should be
isolated
Pros:
Explicitly setting the pins ensures that consistent operation in all CPF enabled tools
Missing isolation ports are easily flagged by CLP
If a new port is added the user actively decides what isolation type it should be
In other techniques the port will be added to the default case, which may or may not be the
correct isolation_type for this port
Cons:
More verbose specification and more maintenance
Pin list needs to be manually maintained by the user
List of pins could be hundreds of items
Isolation rules may not work when pins are introduction mid flow like during DFT
#Block PDA.cpf
set hi_pins {PDB/a_out}
Set low_pins {PDB/c_out
create_isolation_rule name ISO_LOW from PDB pins low_pins
isolation_type low isolation_condition iso_en
create_isolation_rule name ISO_HIGH from PDB pins $hi_pins
isolation_type high isolation_condition iso_en
53 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Isolation Examples and Recommendations
Isolation for IP Blocks
Input isolation in hierarchical CPF
Specification
Lower level block specifies input isolation
Without specifying the isolation_condition
Top level Block instantiates the block cpf
Defines its power domain with Default isolation_condition
Pros:
Block can be reused in power aware or non poweraware instances
The isolation rule is ignored if the driving domain is not a power shutoff
The IP block does not need to know the environment it is instantiated in
Facilitates design reuse
Top level CPF creator does not need to know as much about the block
Cons:
Relies on tools to resolve any conflicts with isolation
Top block may have an isolation from its outputs that conflicts
CLP rule checking can verify
#Block PDC.pf
#an isolation rule with no isolation_condition will pick up the #default isolation condition from the
driving domain
create_isolation_rule name ISO1 to PDC pins {b_out} isolation_type low
create_isolation_rule name ISO1 to PDC pins {a_out} isolation_type high
#Block TOP.cpf
Create_power_domain name PDA -shutoff_expression pse
default_isolation_condition iso_en
Include block_PDC.cpf
54 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Isolation Guidelines
Common Options and recommended settings
Using naming styles to simplify isolation specification
A common naming style is to use _n to indicate a low active signal
create_isolation_rule from PDA pins {a/b/*_n} isolation_type high
Isolation_value
High and low isolation are the most common in design
Isolate to inactive value of signal
hold has specific uses, but can increase verification space and is more expense in area and power
Verification would need to prove the circuit worked when the isolation latch was 1 and when it was 0.
tristate isolation is not currently supported by all tools in the flow
55 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Isolation Guidelines
-pins option
Using pins is a very robust method of isolation
Missing isolation is easily detected in CLP and in simvision waveforms
Other techniques rely on a default isolation value can inadvertently assign the wrong
isolation type, very difficult to debug
This is a classic trade off between ease of specification and ease of detecting an issue
If multiple rules are used make sure you understand
Rule Precedence in CPF
Isolation rules can be optimized away
if the driver is not a power shutoff domain
If the driver and all destinations are in the same power domain
Rule precedence
Synthesis optimizations
Pushing constants across boundaries
Dead code removal
Note: Synthesis and Simulation have different abilities in this area, so there can
be differences.
These differences are not functional differences as the rule will only be optimized away
only if it is non-functional.
56 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Isolation on Feed through Paths
Feed throughs should
not be corrupted
It is common for a net to pass
through a power shutoff domain
57 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Assign in RTL
Handing instantiated buffers
PDA PDC PDB
When Hand instantiated buffers are inserted, the simulation
view of the design and the implementation view can differ
if a regular buffer is used then the tools will need to insert
isolation on its output
The RTL would not have this isolation and would simulate
differently
Solutions
Allow the tools to do all buffer insertion
Insert AlwaysOnBuffers when inserting into a power shutoff
domain
For a design that needs to inserts ISO ISOC
Insert a buf explicitly in RTL before RTL simulation
assign a =rare
This is a very b; case; modifying the RTL to insert buffers is After Modification by designers
generally not recommended
create_isolation_rule \
-name IS_PDC2PDB \
-from PDC -to PDB \
-isolation_output low \
-isolation_condition !ISOC
58 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved ISOC
Power Shutoff
Isolation Requirements
Example
59 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
State Retention and Restoration
60 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power up and State restoration
When a design is powered off, all the internal logic becomes floating and
with indeterminate values
In simulation, this is modeled by forces xs on the logic
At power up, the design needs to be placed into a valid state
61 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
State Restoration
Power On Reset
Power on Reset is highly recommended
Ensures that all registers get to a known good state
Typically reuses the blocks initial power on reset
Easy to implement and specify
Can be used with other State retention strategies
Used in many cases where there is no need to maintain state between
uses, like a floating point unit, where one computation is unrelated to
the next.
Disadvantages
Used by itself, no memory of previous state or configuration is retained
Latency issues:
If the device needs to be configured before used, this entire configuration
process needs to be redone
Could be very time consuming which adds latency to the overall power
sequence
Places an additional requirement on the HW/software, as it must know to
issue the reset on power up
Where latency is an issue, most designs will include a state retention
strategy
62 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
State Retention Strategies
Partitioning into PSO and non-PSO
Instead of the entire block being power shutoff, a
portion of the block is keep always on
Useful if the logic is well partitioned already and Bus I/F Config Reg
only a small % of logic is needed to be on
Some pipelined designs and I/O blocks are naturally
partitioned this way PSO
This technique is useful when initially developing a
design, but can be difficult to implement on existing
blocks
Pro:
Maintain block configuration throughout power
shutoff
May already be required to keep bus interface alive BlkA BlkB
during shutoff
Conceptually simple and easily verified
Existing power on Reset used for the PSO section
Con:
Requires two domains
Often the always on logic is merged into an existing
higher level domain
Always on logic is still consuming power during
shutoff
Standby mode could improve
May complicate physical design and power planning
May be difficult to implement on existing IP
63 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
State Retention Strategies
State Retention Cells
Define a subset of the registers in the design to be state VDD
retention cells
These cells have a small, power efficient latch that is tied to a PwR
secondary power supply Switch
The latch is loaded prior to power shutoff
After power up, the latched value is transferred to the main flop
Use create_state_retention_rule to define VDD VRET
Usage Modes D Q
Selective (recommended) SRPG
A small % of flops are designated as state retention Clk Cell
Maximum power savings as only small # of components are active Retention
during PSO Ret Latch
Challenge: its difficult to determine the minimum set of flops to retain
Verification of correct power up can be difficult
Global VSS
Set all or most of the flops in a domain as state retention
Easy to specify, but expensive in terms of hardware and power
consumption
Each SR cell has extra logic, some of which is always on
Secondary power grid needs to be sized for larger # of items
(more routing resources required)
Verification is easier as the design state is fully restored on power up
Consider using Standby mode if this option is appealing
64 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
State Retention Control
65 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
State Retention Strategies
Standby Mode Standby Mode
Isolated or LS
Gated Inputs
Improved physical implementation flow
Requires Bias net + voltage regulator
But not power switches, secondary power and retention control PD_STBY
PSO is typically better when device can be powered off for 0.7/1.1V
long periods of time
See the table for a comparison
Isolation
Isolation
memory (on / off chip). power Block
logi
Restore the registers after power up c
Assumes an existing memory that is on while n
registers
this device is powered off
Keep-
Pro: alive
Better leakage power than other techniques power n bit
The entire block can be powered off State
Machine memory
Con:
Long latency State Retention
Additional hardware required to implement
Typically larger dynamic power during both save
and restore (especially if external memory is
used)
Assumes an existing memory to store to.
Summary
Only useful when power shutoff windows are very
long and there is a memory available that must be
on for other reason
67 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
State Retention Guidelines
68 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
State Restoration Selection Guidelines
The state restoration process is very design specific
The most common techniques are:
Power up reset,
Power up reset with selective state retention
Use power up reset if :
If the block has no memory of previous uses
If the block is always fully re-configured between uses
Use Power up reset + selective State retention
If there is a set of well defined configuration and mode registers that need to be
maintained between each use of the block
If there are tight performance requirements for powering up
Ex: I/O channels are often configured with speed, check bits, base address, etc.
Saving this information can significantly improves latency
Saving all registers
Avoid saving all regs this expensive in terms of power, area, and routing
Typically used If the device needs to power up in exactly the same state it was in
prior to power shutoff
Like hibernate mode in a laptop
Consider Standby Mode instead of power shutoff. this has less power savings,
but better latency on power up and considerably less area and routing resources
69 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Specifying State Retention Registers
Use the CPF create_state_retention_rule command to identify registers that are
state retention
-instances : Specific registers and latches
all registers and latches in a hierarchical instance **
-domain : Specifies all registers and latches in a specific domain**
-exclude : Excludes specific registers from the general lists above
** Simulation support
IES supports the full syntax of the create_state_retention_rule
IES does not have a synthesis engine, so it has a simple view of what is considered a
register
Verilog: any verilog reg in an always @{} block
VHDL: Any VHDL signal not identified as a feedthrough or simple assign
This view can cause more logic to be retained than is intended by the user
This can lead to false positives in simulation
What works
Specify specific registers
Simple wildcards that match a good naming style
Example : -instances a/b/c/*_reg; where only signals with suffix _ref are
sequential elements
Using domain or module instances where the above definition of a register holds true
This is rare, but is sometimes true for register files, etc.
Avoid using
Very general wildcards
Module and domain instances
Please refer to the KNPS section for more details and workaround
70 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Guidelines on State Retention
Clocks should be gated prior to state retention
Ensures the saved value is a known good value
Clock gating requirements on some State retention cells
Clock intolerant State retention cells
Some library cells require a specific value on the clock line in order to
maintain the retained valued
Clock tolerant
Typically want a constant value, but it can be 0, or 1
71 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
State Retention Guidelines RTL coding
72 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Create_State_Retention_Rule - Guidelines
Save/restore control expressions
Use single variable or simple expressions (and, or, not) for control expressions
Use set_equivalent_pins If there is a need to stagger the signals to avoid spikes
Equivalent pin example
Expression should include only signals that directly drive the control pins of the retention
cell.
Use *_precondition to add checks for clock and reset state onto the retention cell
-save_level and restore_level
The simulator optimized the save and restore level logic to improve performance
Despite the level_sensitive designation:
save occurs at the rising edge of save
If the register changes after the rise of save_level, it will not be latched
This is typically not an issue as the clocks are gated at this time, so no change would occur.
restore occurs at the falling edge of the restore
This restore occurs later then it could, but should pose no issue to verification
Wildcards only at leaf level of hierarchy
Click here to see wildcard support information
Explicit list of state retention registers
If large % of domain is state retention, used exclude to avoid unnecessary retention logic.
State retention mapping
Allow the synthesis tools to choose proper state retention cells
CPF can specify the technology cell to use cell per rule, but generally not required.
target_type is not currently supported by any CDN tool
73 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Shutoff
Isolation Requirements
Example
74 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Switches A front end perspective
The power switches define when the power to a power
shutoff design is turned on and off
From a front end design and early power exploration
point of view this is very simple: PD_BASE
Pso_en
create_power_domain name PD_PSO VDD_PSO
-shutoff_condition pso_en
-base_domain PD_BASE
PD_PSO
When pso_en =1, the power to PD_PSO is turned off
All the logic inside PD_PSO becomes inactive
When pso_en = 0, the voltage is provided by the
PD_BASEs input voltage
PD_BASE is the base_domain for PD_PSO
PD_BASE can also be a power shutoff domain, leading to
a nested power switch
whenever PD_BASE is off PD_PSO is also off
This model is sufficient for RTL simulation and
synthesis
In physical design, actual power nets are defined and
connected
75 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Shutoff
Isolation Requirements
Example
76 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Example PSO CPF
PD1
PD3
PD2 Power shutoff domain External
Power Switch
Inst_C
Includes: inst_A and inst_B Inst_D
Pge_enable
Pse_enable
iso_enable
inst_D can be switched on
and off independently from pm_inst
77 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF Example for PSO - technology.cpf
#################################################
# Technology CPF file Contains all technology specific information
#################################################
# group libraries characterized for same operating condition
define_library_set -name set1_wc -libraries {lib1_wc lib2_wc}
define_library_set -name set1_bc -libraries {lib1_bc lib2_bc}
include library1.cpf
#################################################
# Library1.cpf Library Cell definitions
#################################################
# define the isolation cells Always_on_* options
define_isolation_cell -cells ISOLN* -enable EN -valid_location on always_on_pin EN only used in simulation
# define the always on cell
define_always_on_cell -cells "BUFGX2M BUFGX8M INVGX2M INVGX8M" for Instantiated Isolation
# define the state retention cell + Retention cells
define_state_retention_cell -cells *DRFF* -restore_function RETN
always_on_components reg
# define the power switch cells
define_power_switch_cell -cells "hd8DM hd16DM hd32DM hd64DM" \
-stage_1_enable SLEEP -type header
define_power_switch_cell -cells "hd8M hd16M hd32M hd64M" \
-stage_1_enable !SLEEP -type header
#################################################
# Included technology and library definitions
#################################################
Include technology.cpf
#################################################
# Design part of the CPF
#################################################
# specify the operating voltages used in the design
create_nominal_condition -name off -voltage 0
create_nominal_condition -name on -voltage 1.1
# specify which library set to use for a specific nominal condition
update_nominal_condition -name on -library_set set1_wc
include physical_designcpf
81 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Introduction
Low Power Basics
What is CPF?
What are the common low power techniques and how do they
compare?
Power Techniques
Detailed discussion on each technique, how to write the CPF, and
how they impact the verification and implementation flows.
Power Shutoff (PSO)
Multiple Voltage Supplies (MSV)
Standby Mode
Dynamic Voltage And Frequency Scaling (DVFS)
82 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Introduction to Multiple Supply voltages
Multiple Supply Voltages
What are the components
of an MSV design PD_v13
1.3V
PD_v11
How do I define the Power 1.1V
PD_v09
intent for MSV? 0.9V
83 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
MSV
Multiple supply voltages are conceptually simple
The design has more than one static voltage sources
Each domain is assigned the lowest voltage that still makes
timing
Whenever a path crosses between domains of different voltages
a level shifter is required
Level Shifters
Level shifters have two voltage supplies
Source voltage on input
Destination voltage on output
The cell is designed to transfer the voltage
These are large and slow devices
Partitioning to a large number of small voltage domains can be
very expensive in hardware
LS cells have a defined range of voltage swing that they can
support
84 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Multiple Supply Voltage Specification Flow
Golden CPF
Define Level Shifting Requirement
Front End Design Flow
Synthesis, LP Design &
Equiv checking
Define operating corners
Physical Implementation
& Signoff Flow
85 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
MSV Power intent
How to determine which domains
Identify Power domains are candidates for MSV
Define which groups of logic should
be at the same voltage
How are power modes used? # associate the nominal conditions with the power domains
Used to drive and check level shifter insertion create_power_mode -name PM -domain_conditions
RTL-Compiler, SOCE and CLP {PD1@low PD2@medium PD3@high} -default
RTL-Compiler, SOCE use these for timing, synthesis
and optimization
Self-document the valid power states for the design.
87 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
How to determine candidates for MSV
Constraint analysis
Blocks with lower clock frequency
Blocks with timing slack
Often need to experiment with the design to determine the slack,
as area and power optimization tends to remove slack
Early Estimation
Chip Estimate can be used to estimate the timing and area of
blocks at different voltages.
A first pass estimate for planning purposes
When RTL is more complete
RC has DEX feature to explore different configurations of
domains to determine the optimal voltage for the domain
88 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
MSV Design Flow
89 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Example MSV CPF
top
Inst_C
Level Shifters
Inst_A
Inst_B
0.8V 1.0V
90 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF Example for MSV - technology.cpf
#################################################
# Technology CPF file Contains all technology specific information
#################################################
# group libraries characterized for same operating condition
define_library_set -name set1_bc -libraries {lib1_bc lib2_bc}
define_library_set -name set1_wc -libraries {lib1_wc lib2_wc}
define_library_set -name set2_bc -libraries lib3_bc
define_library_set -name set2_wc -libraries lib3_wc
define_library_set -name set3_bc -libraries lib4_bc
define_library_set -name set3_wc -libraries lib4_wc
include library1.cpf
#################################################
# Library1.cpf Library Cell definitions
#################################################
#
define_level_shifter_cell -cells LVLLHEHX* \
-input_voltage_range 0.8 -output_voltage_range 1.0 \
-output_power_pin VDD -ground GND -direction up -valid_location from
define_level_shifter_cell -cells LVLLHX* \
-input_voltage_range 0.8 -output_voltage_range 1.2 \
-output_power_pin VDD -ground GND -direction up valid_location to
define_level_shifter_cell -cells LVLLHELX* \
-input_voltage_range 1.0 -output_voltage_range 1.2 \
-output_power_pin VDD -ground GND -direction up -valid_location to
#################################################
# Top-level CPF file: top.cpf
#################################################
set_cpf_version 1.1
set_hierarchy_separator .
Include tech.cpf
# identify the design for which the CPF file is created
set_design top
# identify portions of the design that operate on the same voltage
create_power_domain -name PD1 -default
create_power_domain -name PD2 -instances instance_B
create_power_domain -name PD3 -instances instance_C
92 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
MSV-CPF Physical Implementation
Legend RC, CLP, EDI CLP, EDI Verification
# physical_design.cpf
#
#####################################################
# Additional Information for Physical Implementation
#####################################################
# declare power and ground nets
create_power_nets -nets VDD1 -voltage 0.8
create_power_nets -nets VDD2 -voltage 1.0
create_power_nets -nets VDD3 -voltage 1.2
93 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Introduction
Low Power Basics
What is CPF?
What are the common low power techniques and how do they
compare?
Power Techniques
Detailed discussion on each technique, how to write the CPF, and
how they impact the verification and implementation flows.
Power Shutoff (PSO)
Multiple Voltage Supplies (MSV)
Standby Mode
Dynamic Voltage And Frequency Scaling (DVFS)
94 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Introduction to Standby Mode
Standby Mode
What is Standby
PCM
Sel1.1V V1.1 or V0.7
Sel0.7V VR
How do I define the Power
intent for Standby Mode? PD_STBY
0.7/1.1V
95 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Standby Mode
The domain operates at two voltages
Normal voltage
Standby Voltage
Requires
Isolation or gating of input signals to ensure stability
Isolation or level shifting of outputs to ensure valid domain crossing
Multiple voltages
Typically voltage is a single voltage rail is used for the standby domain
Voltage Selection
Most often done off chip
On chip voltage regulators are also supported by CPF
96 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Standby Flow
97 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Output Isolation or Level Shifting
What is needed
During standby the domain has a reduced voltage supply
The outputs of the domain are still connected to the original higher voltage
The low-high voltage crossing typically needs level shifting to operate correctly
But if the outputs are not used, a simple isolation cell could protect the interface
Isolation vs Level shifting
Isolation
Cells are smaller, faster, simpler
If placed in destination, can be simple an AND gate, no special power routing or
connections
Isolation value is statically determined in the CPF
Level Shifting
Advantage is that the outputs maintain their current value
It is design dependent as to whether this is the correct thing to do or not, in some
case isolation to inactive values is preferred
Level shifting cells are more expensive
Large, more power consumption, require second power and ground pins to
handle voltage transitions.
Recommendation
Use Isolation if it meets functional requirements
98 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Standby Design Flow
Standby flow
Verification of Standby
Assertions on inputs to ensure stable during standby mode
Simulation corrupts logic if inputs change in standby mode
CLP is used to verify all voltage domain crossings
Ensures proper level shifting or isolation is in place
Currently CLP will complain if isolation is used instead of level shifting. This
is an enhancement being investigated
Implementation of Standby
Each voltage domain need power planning and routing
External or internal voltage selection is required
Typically a standby domain looks like a single power supply domain
Level shifters insertion and connectivity
Domain aware buffer insertion
Domain aware DFT ensure scan chains have minimal domain crossings
Generation and routing of BIAS net, if used.
99 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Standby Mode Specification Flow
Golden CPF
Define Level Shifting Requirement
Front End Design Flow
Synthesis, LP Design &
Equiv checking
Define operating corners
Physical Implementation
& Signoff Flow
100 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Standby ModePower intent
Define which groups of logic should be
at the same voltage
102 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Introduction
Low Power Basics
What is CPF?
What are the common low power techniques and how do they
compare?
Power Techniques
Detailed discussion on each technique, how to write the CPF, and
how they impact the verification and implementation flows.
Power Shutoff (PSO)
Multiple Voltage Supplies (MSV)
Standby Mode
Dynamic Voltage And Frequency Scaling (DVFS)
103 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Common Low Power Architectures (DVFS)
Dynamic Voltage & Frequency Scaling
What is DVFS Cntl
Sel1.1V
PCM
V1.1 or V0.9
Sel0.9V VR
How do I define the Power
intent for DVFS Mode? VCO
Clk PD_DVFS
HW 0.9/1.1V
Monitor
104 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Dynamic Voltage and Frequency Scaling (DVFS)
Description Voltage Island Voltage Island
Programmable
a design
Mode Voltage
Done Real time Control Regulators
Commonly used in processor design Voltage Island
Power Savings
Optimal voltage/Frequency level per Mode Domain A Domain B
task per domain
Improves both dynamic and leakage High Perf. 1.2V 1.2V
voltage 800mhz 600mhz
Reduced frequency produces less Med Perf 1.0V 1.2V
switching power 600mhz 600mhz
Reduced voltage means
Idle 0.8v 0.8v
Less dynamic power
400 mhz 400mhz
Less leakage power
105 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Dynamic Voltage-Frequency Scaling
Speed/
Description Power
Match the voltage and frequency of a Delivered
domain to the system demands Required
Without DVFS the same performance is
delivered regardless of operation Time
With DVFS the performance is matched MPEG decode Disk r/w Text entry
to demand
Done Real time
Commonly used in processor design
Power Savings
Optimal voltage/Frequency level per
Speed/
task per domain Power
Improves both dynamic and leakage
Delivered
voltage
Reduced frequency produces less Required
switching power
Time
Reduced voltage means
MPEG decode Disk r/w Text entry
Less dynamic power
Less leakage power
106 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
DVFS Specification Flow
Golden CPF
Define Level Shifting Requirement
Front End Design Flow
Synthesis, LP Design &
Equiv checking
Define operating corners
Physical Implementation
& Signoff Flow
107 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
DVFS Power intent
How to determine which domains
Identify Power domains
are candidates for DVFS
Define which groups of logic should
be at the same voltage
Define Modes of Operation + control
DVFS Power Modes and
Transitions
Define technology libraries
Define libraries to use for each
voltage level
Define Level Shifter Requirements
Create_level_shifter_rule
Define operating corners and
analysis views
Setup Multimode/multicorner
optimizations in backend
Update level shifter location
Note: The block diagram links on this page only work in PowerPoint and not in the PDF
108 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
How to determine candidates for DVFS
109 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
DVFS Power Modes
Mode PD1 PD2
Power modes define the set of valid voltage High Perf. 1.2V 1.2V
configurations of all the domains in the design. 800mhz 600mhz
For a DVFS, each mode of operation defines the Med Perf 1.0V 1.2V
operating voltage and the clock frequency 600mhz 600mhz
CPF defines the voltage levels directly Idle 0.8v 0.8v
Each mode can include a separate SDC file to adjust 400 mhz 400mhz
the frequency used during implementation
Modes are defined as a list of # specify the operating voltages used in the design
PowerDomain@nominal_condition create_nominal_condition -name low -voltage 0.8
create_nominal_condition -name medium -voltage 1.0
The nominal condition can be used create_nominal_condition -name high -voltage 1.2
Define voltage levels for power, ground and bias
Libraries specific to those voltage # Create power domains
Operating conditions to use create_power_domain -name PD1 default \
Click here to learn more about nominal Conditions -active_state_conditions {low@c1 med@c2 high@c3}
create_power_domain -name PD2 -instances instance_B \
-active_state_conditions {low@c1 high@!c1}
How are power modes used?
Used to drive and check level shifter insertion # associate the nominal conditions with the power domains
RTL-Compiler, SOCE and CLP create_power_mode -name high_perf -domain_conditions
{PD1@high PD2@high } default
RTL-Compiler, SOCE use these for timing, synthesis create_power_mode -name mid_perf -domain_conditions
and optimization {PD1@med PD2@high } -default
Self-document the valid power states for the design. create_power_mode -name idle -domain_conditions
{PD1@low PD2@low } -default
110 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
DVFS and Power Mode Transitions
The simulator tracks the voltage level of each domains in one of two
ways:
Active state Conditions
The active state condition defines when a specific voltage is to be
applied to a domain
Create_power_domain name PD1 \
active_state_conditions {NC1@ctrl1 NC2@ctrl2}
When ctrl1 switches to active, the domain will begin to transition to the
voltage defined in the nominal_condition NC1
Create_mode_transitions
The create mode transition defines when the design will switch between
modes
Each domain will get the voltage level specified by the mode it is
transitioning into.
111 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
About Active State Conditions
112 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Create_mode_transitions
Create_mode_transition can be used to
define the legal set of transitions
between power modes
MA
Mode Transition Provide:
Coverage collection can verify that all
possible transitions have occurred
Error checking to ensure legal transition MC MB
and sequences of transitions
In the example, a transition from MA to MB
would flag an error
Prevents transient mode coverage
Different transition times on each domain
can make it appear that more modes
where executed. create_mode_transition from MA to MB start_condition mab
create_mode_transition from MB to MC start_condition mbc
Control of power mode transitions create_mode_transition from MCto MA start_condition mca
The start_condition defines when the create_mode_transition from MCto MB start_condition mcb
domain will start to transition
The end of the transition is one of:
All power domains have finished
their voltage transition
-end_condition has been triggered
Typically these are used mutually
exclusively.
113 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
DVFS Influence on the Design Flow
114 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
DVFS Design Considerations
Trade-off analysis
Requires understanding of real world applications
How long will the design be in specific modes of operation
What is the power consumed by each mode
Need effective power estimation tools with correlation to synth & P&R
Latency between mode transitions
can fifos, etc keep up if demand for performance goes up quickly.
What are the full costs of implementing
115 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
DVFS Example
FreqCntl
The top design operates at 0.8V
TDSP_CORE
116 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
DVFS example: Library CPF
set_cpf_version 1.1
#################################################
# Technology part of the CPF
#################################################
set libdir ../LIBS
set lib_0v8_wc " $libdir/timing/lib0d8_wc.lib
set lib_1v0_wc " $libdir/timing//lib1d0_wc.lib \
# define the library sets
define_library_set -name ao_0v8 -libraries "$lib_0v8_wc"
define_library_set -name ao_1v0 -libraries "$lib_1v0_wc "
# define the level shifters
define_level_shifter_cell -cells LVL*HLD* \
-input_voltage_range 0.792:1.0:0.099 \
-output_voltage_range 0.792:1.0:0.099 \
-direction down \
-output_power_pin VDD -ground VSS \
-valid_location to
117 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
DVFS example: Design CPF
#################################################
# Design part of the CPF
#################################################
set_design dtmf_recvr_core
set_time_unit ms
set_hierarchy_separator "/"
set constraintDir ../mmmc
Include library.cpf
118 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
DVFS example: Implementation CPF
#####################################################
# Additional Information for Logic Synthesis
#####################################################
# associate library sets with nominal conditions
update_nominal_condition -name high_ao -library_set ao_wc_0v99
update_nominal_condition -name low_ao -library_set ao_wc_0v792
update_nominal_condition -name low_tdsp -library_set tdsp_wc_0v792
# specify timing constraints
update_power_mode -name full \
-sdc_files ${constraintDir}/dtmf_recvr_core_gate.sdc
update_power_mode -name slow \
-sdc_files ${constraintDir}/dtmf_recvr_slow_gate.sdc
# Additional Information for Physical Implementation
#####################################################
# declare power and ground nets
create_power_nets -nets VDD -voltage {0.792:0.99:0.198}
create_power_nets -nets VDD_TDSP -voltage {0.8:1.0:0.20}
create_ground_nets -nets VSS
# add implementation info for power domains
update_power_domain -name AO -primary_power_net VDD -primary_ground_net VSS
update_power_domain -name TDSPCore -primary_power_net VDD_TDSP \
-primary_ground_net VSS
end_design
119 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Design Flow
120 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Detailed view of the Low Power Flow
Power Intent
Architect
RTL TB
Power Exploration and Verification
w/o iso.cell, SRPG, including PSO Functional validation
CPF LS, Power Switch. patterns. Functional PSO, SRPG and isolation verification
Initial CPF consistency check
Conformal LowAnalysis
Power 1. Structural check
w/o Formal Power
(formal structural power analysis)
Impl.
IES/vManager/Palladium/ISX
Structural Checking -
Synthesis
RTL Compiler
Netlist w/ iso.cell, SRPG, RTL Power Estimation
LS Power domain/mode aware synthesis
Insert ISO, LS and SRPG
CLP
Design
Encounter
for Test
CPF
Synth 1. Power domain aware test synthesis
SoC
Implementation
Encounter 2. ATPG with power modes to model for low power
structures and reduce power during test
3. Scan chain reordering & insertion of ISO/LS into
Netlist w/ iso.cell, SRPG,
LS, Power Switch DFT nets
w/ TimingTiming
Encounter Sign-Off
System
impl. Physical Implementation + Verification
info
CPF IR drop/ power Sign-Off
VoltageStorm Power domain/mode aware P&R
final Incremental ISO, LS and SRPG insertion
GDSII Instantiate & optimize power switches
122 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Chip Planning and Exploration
Exec + System
Cadence Low Power Solution Marketing Designer
HW Design
Verification Engineers
Chip Planning & Engineers
Architectural Exploration
Frontend Design
and Optimization
Verification Chip Planning &
Planning Architecture Exploration
Closed Loop Verification
Goals
Define the optimal low power architecture that meets the product
requirements and system performance goals
Ensure that architecture can be implemented in a given technology
Ensure that architecture can be verified throughout the flow
Methodology
Chip Estimate
Rapid chip level exploration of technology libraries, IP selection, power
architectures
C-to-silicon
Explore multiple architectures of the same High-level design
descriptions
ESL/TLM level design and exploration
Verification Planning
Ensure that the architecture is able to be verified in a reasonable time
Drive the development of the verification environment
124 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Architecture Exploration
Cadence InCyte Chip Estimator: Chip Level Exploration & Planning
Estimation Results
Design Specification Die Area
Blocks, gate counts (Bounding, Utilization)
Clocks, constraints
Power
Memory, IP, I/Os
(Dynamic, Static)
Performance
(Achievable Speeds)
IP Catalog Data
Early Floorplan
(Visualization)
Customizable Reports
(Datasheet, Charts)
Capture
Perform
Rapid what-if
your
estimation,
design
analysis
visualize
specification
results
EDA Data
Evaluategate
Blocks,
Accurate specification
results
counts,
within
clock
changes
seconds
speeds
quickly (LEF/DEF, CPF, SDC,
and easily
Select
Detailedtechnology
datasheet,node
reports,
and and
process
chip
Verilog, IP-XACT)
visualization
Quantify thememories,
global chipandimpact of Technology
Choose IP, I/O options Models
local
Exportblock changes
results to IC implementation
flow
125 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Chip Planning for Low Power
Explore Low Power Techniques
Architectural power what-if analysis
Quantify impact of strategies such as Vt
blending, clock gating, clock scaling, voltage
scaling, block power down and more.
Sensitivity analysis for switching activities
Overhead of advanced low power techniques
Bus Read
Operation
Bus Write
Operation
Bus Read
Operation
Bus
Ctrl
Bus Write
Operation not practical to manually
Constraint latency for generated logic to 16 or 32 or 8 clock cycles
D
Q
w
w
w
w
w
w
w
w
w
w
w
w
r
r
r
r
r
r
r
r
r
r
r
r
w
w
w
w
w
w
w
w
w
w
w
w
r
r
r
r
r
r
r
r
r
r
r
r
D
D
D
D
Q
requires 8 reads
requires 8 reads
& 8 writes
& 8 writes
2 reads per read
1 read per read
cycle
cycle
D
2 writes per
Q
Work
CtoSilcon
Work
1 or 2 write ports
Array
1 or 2 read ports 1 write port
Array 1 or 2 read ports
Allows the same code to be
used for multiple tradeoffs
Serial vs parallel implementation of oops Automates the generation of
Pipeline depth multiple architectures
Memory mArch.
Bus interface
127 2009 Cadence Design Systems, Inc. All rights reserved.
Verification Planning for Low Power
Outline
Why is planning important for Low Power
What are the common verification tasks
What is verification closure
128 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Why is Planning & Metric Driven Verification
Important for Low-Power Designs?
129
Planning Required???
Without planning number of scenarios
grows exponentially w/o Planning
s
Scenario
Large % of scenarios verified in each Planning
mode
Is it really necessary?
Only good planning can say
Coverage/metrics required to measure
quality Modes
131 September 12, 2011 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
What Should be Covered in the Plan?
1.2V 0.8V Interaction with
Lib Lib
Chip Chip analog components
Power SW 1.0V
Lib
RTL CPF SDC
management
from
Dynamic
CPU/SW/HW 0.8v/1.0v
VS voltage domain
CPU A C
Standby mode
Multiple modes: and transitions
LS Iso
Mode AC B Power 1.2v Shutoff LS
PM1 0.8 1.2 Management Power off and
SR SR
PM2 0.8 Off
D power on
B
Iso
PM3 1.0 1.2 sequences
PM4 1.0 standby
PCM
Domain interactions
When domain X is voltage Y, domain Z should be...
Sequences of domain events ( domain X transition before domain Y)
When domain Y is off, ensure the following system level transactions
still work.
133
Domain/Unit Level Planning
States
Domain Level planning reduces complexity High
Prove domain actions work for at least one mode first
Low
Validate across multiple modes and scenarios as
needed to meet system level coverage goals Standby
Automated Metrics Off
Ensure that each domain has executed all of its possible
states and transitions
Coverage of each domain state, and transition From To
Assertions ensuring proper state transitions High Low
Assertions and coverage of individual control signals
High Standby
Per mode Checks & Coverage
High Off
Define requirements prior to entering mode
Low High
FSM state, external conditions, etc
only powerdown if the FIFO is empty Low Standby
Requirements during a mode Standby High
Clocks, resets gated? Standby Low
Control signals stable?
Off Low
Domain state crossed with specific actions
Did I test transaction X with domain Y turned off?
134
vPlan
CPF
Verification Closure File
Plan
Defines what verification closure is
and how to measure
Power modes and scenarios, features
per mode A
Instrument A
Advanced Power Aware Testbench
Coverage & assertions to cover : C
Power modes + sequences A C
Behavior during each mode C
Power Control logic
interface between domains
Execute IFV ISX
Formal IES
Conformal
Low Power
Power Aware Simulation, emulation
Measure, Report, Analyze
Functional + Assertions coverage
LP debug
Verification Closure
When All planned features and
goals are met
135 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Automatically generated coverage and
verification plan
Power Domains
coverage of:
shutoff expr
Isolation,
State Retention
Power
Modes
Mode
Transition
136 September 12, 2011 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Intent Creation and Checking
Cadence Low Power Solution
Initial CPF based on LP
Chip Planning & Chip estimate design Exploration
Chip Estimate spec
Architectural Exploration
Power Intent
Creation & Checking
GUI driven CPF entry and
refinement Power Intent Architect
LP Functional Verification
Frontend Design
and Optimization
Extensive CPF + design Conformal LP
Closed Loop Verification checks to ensure complete
and correct LP specifications
Digital Implementation
137 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Intent Creation
Capture the power intent
CPF is designed to allow for rapid exploration of power architectures
At this early stage of CPF development, only a small subset of LP data is
required
Other specification languages require detailed technology and power and ground
networks in order to even begin analysis
The CPF flow enables a layered approach to enable earlier and easier exploration of
low power architectures.
138 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Intent GUI Accelerates design entry
Form and Flow driven entry
Design/Library aware
Guided entry
Minimize mistakes and effort
to learn Power Intent
languages
Library Setup
Read Liberty / Verilog files
Liberty or CPF power info
Create or fix power info
Macro Setup
Read Liberty / Verilog files
Read CPF power info
Create or fix power info
Design Setup
Read VHL / Verilog files
Read CPF power info
Create or fix power info
Power Intent Checks
Library, QC, or Structural
139
What Power Intent is Required
Note: These links are one-way, they will not return to this slide
140 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
About the CPF based flow
CPF is designed for rapid low power exploration and design
Early design tasks can be started quickly with a small low power specification
As the design matures additional constructs are added, and more technology and
implementation specific information is added into the golden CPF
Each step of the flow uses the latest most detail CPF to ensure that implementation
and verification always have the same view of the power architecture
The same Golden LP Specification is used in all tools and flows
Time
141 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power intent Architect Intro
142 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Intent Architect GUI
Tool Setup
General Options
Low Power Options
Library Setup
Read Liberty / Verilog files
Liberty or CPF power info
Create or fix power info
Macro Setup
Read Liberty / Verilog files
Read CPF power info
Create or fix power info
Design Setup
Read VHL / Verilog files
Read CPF power info
Create or fix power info
Power Intent Checks
Library, QC, or Structural
Export
Write power info in CPF form
Library, Macro, or Design
143
Power Intent Entry Recommendations
New LP users
Use Power Intent Architect
The guided flow and GUI driven nature makes it easier to enter
the intent without being an expert on the CPF syntax
Advanced LP users
The choice of GUI or text based entry is a personal preference
GUI based can be less error prone, since the options and design
objects can be selected instead of typed.
PIA GUI has advantages for:
I/O pad specification
Specifying a large number of macros
Creations of library CPF
144 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Conformal Low Power
Power Intent CPF Signoff RTL+CPF Sign-Off
Library
Consistency
for
Checks
Simulation
LIB, LEF, CPF
CPF specification can have errors
Syntax, semantic, design object,
inconsistent power intent, and incomplete Power
power intent errors Simulation RTL Intent
Library
150+ checks including
Four key CPF signoff stages
Design object checks RTL+CPF Sign-Off
for
Library CPF checks (Check consistency
Synthesis
between CPF, Liberty, and LEF)
Synthesis
CPF specification inconsistencies
(Example isolation rule specifies
inconsistent physical location)
CPF specification completeness checks
(Example missing isolation rule definition Netlist
between two power domains) Netlist+CPF
CPF Integration checks Sign-Off
for PnR
Benefits
Place & Route
Identify all CPF errors as early as
possible
Help Author reach a clean CPF as fast as
possible to drive simulation, Logic
Synthesis, and PnR PnR netlist
146 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Conformal LP-Verify Checks
RTL Power
Spec Checks
Gate Netlist
Checks
P&R Netlist
Checks
147
LP Functional Verification Chip
Libraries
Spec
Cadence Low Power Solution
Chip Planning + Estimation
Chip Planning &
Architectural Exploration
Switching
Verif RTL CPF Activity
Power Intent
Env
Creation & Checking
Power Intent Entry
LP Functional Verification
CPF Checking
RTL + CPF
Frontend Design
and Optimization
Design verification
Testbench Automation
Power Mgmt
Gatelevel Simulation
Closed Loop Verification
Formal Analysis
SW Acceleration &
Power verification & Signoff Emulation
Verification Coverage
148 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Architecture and Initial Verification
Chip
Libraries CPF checking
Spec
Ensures that input to simulation is
correct and complete
Chip Planning + Estimation
Verification
Switching Low Power Verification Overview
Verif RTL CPF Activity
Env Components of LP verification
How does low power simulation
Power Intent Entry work?
CPF Checking What should be simulated
RTL + CPF
Design verification
Testbench Automation
Power Mgmt
Gatelevel Simulation
SW
Formal Analysis
RTL Simulation
Acceleration &
Emulation
Verification Coverage
149 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Verification Tasks Use The Correct tool for
each verification task
Verify Power Architecture
Is the power intent accurate and complete
Example: Level shifter and isolation requirements
Does the design behavior correctly in all power modes IES + Palladium
Does it behave through all power mode transitions
Can the design power up correctly
Model the low power architecture
150 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Intent Fully Integrated Into
Functional Verification Benefits
Design Intent
Common power specification across all tools
vPlan
RTL CPF Voltage aware verification
Supports advanced LP architectures
PSO, DVFS, standby, MSV
Design verification Improved productivity
No impact to existing verification
Testbench Automation
Verif Mgmt
Gatelevel Simulation methodology
Formal Analysis No golden design file changes
No PLI or custom library development
RTL Simulation
Native implementation
No degradation of runtime
Acceleration &
Emulation Takes advantage of elaboration
optimizations
Verification Coverage Improved Reuse
Same RTL can have different power
architectures
Bottom line: Reduced Risk Enhanced quality
What you design = What you verify
Better predictability
Power issues found early
151 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Components of LP Verification Flow
Gatelevel Simulation
Formal Analysis
IFV + Conformal LP
152 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Verification Methodology for Low Power
Start with existing Verification Methodology
Including Plan-to-closure methodology, OVM, Plan and Metric driven verification,
HW/SW cosimulation.
Extend for Low Power
Planning to include low power modes, control and features
Planning is critical for low power as it can greatly increase the number of operation
modes of the design.
Include IES generated Assertions for Low power control logic
Include IES generated coverage of low power modes and control
Leverage native modeling of low power intent from CPF in the DUT
ALWAYS RUN LP AWARE SIMULATIONS
Extend Testbench environment
Power aware sequence generation
Models, scoreboards may need to be updated to reflect low power behavior
Use Low power system tasks or OVM-LP to link Testbench environment to the DUT low
power behavior
Golden CPF
Always run verification with latest most complete CPF
Even if modifications where specific to backend, always ensure that what is simulated
matches what is implemented.
153 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Guideline: Always Run LP-Aware Simulation
The Low Power verification methodology has two main recommendations
Run Conformal LP early and often
Run all simulations power aware
The Cadence LP simulation is fast enough to enable LP simulation all the time
These corner cases will be caught because the will be simulated with power
Cadence incorporates highly optimized, native Low Power modeling
Typically in a full regression run we see only a small <3% increase in runtime
Most of this is elaboration increase of 15-25% due to adding LP logic that does not exist in the
RTL (it is specified in the CPF)
For designs with extensive power shutoff we have seen improvements of 10-25%
This is due to fewer simulation events during power shutoff
Other tools use PLI or API interfaces to handle LP, these are considerably slower hence
they only recommend limited LP simulations.
154 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Architecture Exploration
- Palladium Flow
Performance Analysis
Provide system level testing with software for real-time co-simulation.
ISX can provide coverage of software related to low power
Profiling of power management
155 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Palladium Dynamic Power Analysis (DPA) Flow
DPA
(leveraging RTL Compiler Power Estimation)
RTL/Gates
Technology
Libraries
DPA Key Benefits
System-level power analysis for large SoC (with software)
High Throughput
No emulation capacity overhead
Palladium III Cycle Accurate
High accuracy leverage RC power analysis
Calculate peak and average power over any time window
156 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
LP Verification Environment Using OVM
Multi-Channel Coverage
Environment stimulates Model OVC MODEL
and monitors the DUT
Low Power Manager SoC DUT
HPM
PCM1
configured based on CPF
PD1
LP Model
Monitor
Sys
Consists of OVM Pwr
PCM2
Seq-er
Monitor PD2
Sequencer
Interface to simulator LP
state SW AXI PCI-X
Extensible by user for OVC OVC OVC
stimuli generation and
advanced checking Multi-Channel Checking
157 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CDNS Low Power Simulation
158 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IUS Power Aware Simulation
Isolation, state retention, and power gating cells do not exist in RTL
IUS models these cells automatically based on CPF
No changes to RTL are required
Isolation forces known value when enabled
State retention saves and restores state based on control signals
Power shutoff introduces xs when shutoff, and restore to random
values or Xs when powered up for synthesizable VHDL/Verilog
(System Verilog Modports & Interfaces)
Native simulation, not PLI based
Very little impact on simulation performance, unlike PLI solutions
Replaces ad-hoc and home grown solutions
Does not require customized PLI or testbenches in order to model the
shutoff behavior
Full Low Power Verification Solution
Simvision has support for low power debug
Automatic Assertion Generation for power control signals
Voltage Ramping, Power Mode support and Voltage Based Corruption
supported.
159 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Aware Simulation
Whats Done for PSO?
-Read CPF information
-Isolation requirements
-SRPG regs Power down
control signals
-Power domains and modes
-Associated control signals Internal regs go
to X
- Simulator tracks power mode, domain voltages, voltage ramps
and domain states.
- Simulator implicitly provides PSO behavior when required
-At power down
-State loss => Force X to variables
-State retention => Read and Store State
-Isolation => Force ports to isolation values
-At power Up
-Release variables
-State restore => Write back saved SRPG values
-Remove Isolation=> Release ports
- Generates Assertions for power control sequences
- Generate Coverage of power modes and control signals
- Extensive LP Debug and analysis
160 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IUS Power Aware Simulation
Power Down Cycle Isolate, Save State, Power shutoff
Annotation of signals with power information in waveforms
Save State
Isolate
Power Shutoff
Isolated Ports
Shutoff
signals
161 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Mixed-Signal Low Power support
Support for multiple-voltage power domains
Power Smart connect module carries the effect of power shut-off, power
active state conditions, power modes and transitions onto analog blocks
Simulator identifies the CPF influence on analog blocks
Automatically Inserts Power-Smart Connect modules
Carries the effect onto analog blocks
The effect is programmable by the user
Power Smart Connect Module
- Auto-inserted by the tool
pso_data PD1 - Tracks Digital Driver
- Performs value conversion
B
A iso
D Q based on power domain PD1 state
D Q
iso_disable - No special setup/controls
required!
Spice block
162 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Verification Guidelines
Always run LP aware simulation
Some vendors recommend running only targeted runs with LP simulation
THIS IS VERY RISKY It can miss errors in the LP control logic that may cause
unexpected power transitions in what was designed to be a non-LP simulation.
In IES, LP simulation adds very little overhead for performance or memory, there is no
reason to assume this risk.
Keep behavioral code out of Power Shutoff blocks
Behavioral constructs have no defined corruption semantics and can cause
unpredictable behavior or errors in simulation
Testbench level CPF can be used to create always_on domains for behavior
sections (like RAMS or IP blocks)
Click here for some examples
Understand VHDL LP simulation restrictions and options
VHDL enumerated types and integers cannot corrupt to Xs
Run Conformal LP pre-simulation
Detect problems early and repair before launching large sets of simulations
Protect the inputs to behavioral code using isolation or gating
Many behavioral models of IP blocks were not designed for low power.
They react badly and can even crash when the inputs to the model go to Xs.
163 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Common Options for Low Power Simulation
-lps_verify
IES generates a set of standard assertions and coverage items based off the CPF file.
Saves verification engineer time and effort, and is always in sync with the CPF
-lps_verbose {1 | 2 | 3}
Provides more detailed logs of low power data
-lps_stime <time>
The lps_stime disables low power simulation until the specified time
Typically used to get past the time 0 initialization of low power control signals
Ex: shutoff_expression, save/restore controls, isolation enables
Can also be used to avoid the automatic assertions firing during power on reset
Recommendation:
Use the smallest time possible for the stime
-lps_mvs, lps_pmode, lps_pmcheck_only
Specify how the simulator will treat power modes and multivoltage designs
-lps_mvs enables tracking of voltage levels
-lps_pmode : enables tracking of power modes in the design, it uses the both the
create_mode_transition command and active state conditions to drive a mode transition.
-lps_pmcheck_only : Similar to lps_pmode, but does only users the active_state_conditions
to drive mode changes. If create_mode_transitions are defined, they are only used for
additional checking..
164 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Auto Generated Assertions and Coverage for LP
What is generated
Coverage
Coverage of power modes, transitions
Toggle coverage of power control signals
Assertions
Check for X on power control signals
Check Sequences of power control signals (ex. isolate before shutoff, save before restore)
Check LP signal properties (ex. Always isolated when shutoff, save stable during PSO)
Verification Plan
Grouping coverage and assertion results*
How is it generated
-lps_verify on the IES command line
Vmanager LP interface*
Why Generate
CPF changes frequently, each change would require changes to the assertions
Exact set of modes and valid transitions
Which domains can be shutoff
The exact control signals used for a domain
Guaranteed consistency with CPF
Manual assertions can get out of sync with hardware
*Note: functionality in the Vmanager interface is being moved to IES over the next few releases, this
provides a simpler more complete interface
165 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Controlling Assertions During Power shutoff
User defined assertions are not always valid during power shutoff
IP blocks not designed for low power
Checking logic in a shutoff domain against Xs
Sequential checks may not expect long delays due to PSO
166 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Logic Netlist - Gate Level Simulation
167 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
LowPowerSim Flow
RTL Versus Gate level simulation
Design type Isolation Retention State Loss
RTL CPF CPF CPF
Gate netlist ISO cells SRPG cells CPF
(LP cells inserted)
RTL and gate User decides
168 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Front-end Design and Optimization
Cadence Low Power Solution
RTL CPF
Chip Planning & Libraries
Architectural Exploration Verif
Power Intent Entry
Env
CPF Checking
Power Intent RTL + CPF
Creation & Checking
Functional Verification
Activity
Logical
Netlist
Digital Implementation
Conformal LP
Structural + Equivalency
Power verification & Signoff
169 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Flow Front end Design + Synth
CPF checking pre synthesis
Ensures that input to synthesis is correct and
RTL CPF complete
Libraries
Ensure that library data is complete and
Verif consistent
Power Intent Entry
Env Synthesis
CPF Checking Power aware synthesis
RTL + CPF
Inference of LP logic
Connection of LP control signals for state
LP Synthesis + DFT retention and isolation
Verification Power Architecture Exploration
Flow Synthesis
Power Analysis + Estimation
Switching Power Analysis CPF name mapping flow
Functional Verification
Activity
(Very specific tests)
Gate Simulation
DFT
Design for Test
In Parallel
Conformal LP
Logical Equivalency checking on CPF+ input RTL vs
Netlist synthesized output + CPF
LP Design checks
Conformal LP
Structural + Equivalency Limited gate-level simulations
Small set of tests to verify LP insertion and timing
Name mapping flow
170 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF in an RC Flow
read_cpf -library
check_cpf CLP
reload_cpf; commit_cpf
Netlist, SDC
PnR
September
January 31,12, 2011 Cadence
2010 Cadence Methodology
Methodology Guide
Guide 2011
2011 Cadence
Cadence Design Systems, Inc. All rights reserved
172
Design Systems, Inc. All rights reserved
RC Low Power
Read CPF to get technology libraries
CPF Defines the set of libraries to use and which cells in the library are low
power
Check CPF
Pre-synthesis call CLP to ensure input CPF is correct
After synthesis call CLP to ensure that LP logic was correctly inserted
Automated process issued by single command in RC
Generates all scripts necessary and executes CLP
Synthesis
Insert and optimize state retention, level shifters and isolation cells
Multi-mode, multi-VT synthesis
Modes defined by CPF power modes
Optimize all modes and design constraints concurrently
CPF also provides
Links to switching activity files for dynamic power analysis
Optimization constraints for Low Power
Works with existing RC - LP features
Clock gating, operand isolation, advanced dynamic and leakage power optimizations
Re-read/commit CPF
This final step is used to ensure any logic added by test insertion have complete
isolation and level shifting
Analysis
RTL and gate level power analysis and reporting
173 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF Integration and CPF Quality-Check
If CPF is hierarchical (domain_mapping, group_modes) then CPF
integrator has to be run prior to synthesis
Command to run CPF Integrator: integrate_cpf
CPFQuality-Check.
Run Quality check prior to Synthesis
rc:/>set_attr clp_treat_errors_as_warnings {CPF_LIB* CPF_ISO13} /
rc:/>check_cpf
Common Warnings
CPF_ISO1 : No isolation rule specified for power domain crossing
CPF_ISO13 : Isolation rule unnecessary between domains
It is not legal to specify an isolation rule for a crossing between two domains that
are always at the same state (OFF or ON) in every power mode. Review the
detail/verbose message for isolation rule name, from and to domain names, and
analyze the conditions of these domains in all power modes. The power modes
might be incomplete or incorrect or the isolation rule might need to be removed.
CPF_LS6 : Level shifter cell not defined through define_level_shifter_cell command
More then 60 quality-check rules
http://dsmpubs.cadence.com/icd_pubs_website/doc_development_conformal.sht
ml LEC_LowPower_Ref.pdf
September
January 31,12, 2011 Cadence
2010 Cadence Methodology
Methodology Guide
Guide 2011
2011 Cadence
Cadence Design Systems, Inc. All rights reserved
174
Design Systems, Inc. All rights reserved
read_cpf -library
Run Parser and CPF linter
define_library_set : library_domain creation and .lib parsing (set
default LD)
Watch out and act on following
Try to have consistent libcells all over the library-domains
LBR-38 inconsistent nominal operating-condition
LBR-34 Pins used in next-state functions must have setup timing arc.
Otherwise the libcell will be treated as timing-model
LBR-75 Detected a combinational timing arc in a sequential cell
define_*_cell cpf_commands processed
Operating_condition is also set from this default library-domain
September
January 31,12, 2011 Cadence
2010 Cadence Methodology
Methodology Guide
Guide 2011
2011 Cadence
Cadence Design Systems, Inc. All rights reserved
175
Design Systems, Inc. All rights reserved
read_cpf
Reads the Power intent from the CPF file
Level shifters
isolation cells
power modes
Power domains
Associates domain with proper library based on default power mode
Power domain creation and association with library as per default
mode
rc:/>report power_domain -mode
Power Domain PM1 PM2 PM3
PD1(*) 1.2 V 1.2 V 1.2 V
PD2 0.8 0.7 OFF
PD3 0.7 OFF OFF
September
January 31,12, 2011 Cadence
2010 Cadence Methodology
Methodology Guide
Guide 2011
2011 Cadence
Cadence Design Systems, Inc. All rights reserved
176
Design Systems, Inc. All rights reserved
Synthesize to_map no_incr
State-Retention flop/latch mapping
State Retention Synthesis Status
================================
Category Flops Latches Percentage
-------------------------------------------------------------------------------
Total instances 1627 1 100.0
Excluded from State Retention 1343 1 82.6
- Will not convert 1343 1 82.6
- Preserved 0 0 0.0
- No map flag 1343 1 82.6
- Could not convert 0 0 0.0
- Scan type 0 0 0.0
- No suitable cells 0 0 0.0
State Retention instances 284 0 17.4
---------------------------------------------------------------------
September
January 31,12, 2011 Cadence
2010 Cadence Methodology
Methodology Guide
Guide 2011
2011 Cadence
Cadence Design Systems, Inc. All rights reserved
177
Design Systems, Inc. All rights reserved
commit_cpf
Flow
Removes existing Isolation and level-shifter cells
Applies the Isolation and level-shifter rules on appropriate pins
rc:/>get_attr pins [find / -isolation_rule ISO1]
rc:/>get_attr cpf_selected_pins [find / -isolation_rule ISO1]
Insert ISO and LS on the basis of location
Notes:
If ISO and LS rules both present on a crossing and location is also
same RC tries to insert Combo (ISO+LS)
If combo not found , separate ISO and LS will be inserted
Level-shifter insertion happens post ISO-insertion
If require LS will be inserted on enable of Combo/ISO-cell
Run reload_cpf before commit_cpf if there is any new PD crossing possible
September
January 31,12, 2011 Cadence
2010 Cadence Methodology
Methodology Guide
Guide 2011
2011 Cadence
Cadence Design Systems, Inc. All rights reserved
178
Design Systems, Inc. All rights reserved
commit_cpf cont..
PD1 PD2
1b1 1b1
commit_cpf
1b0 1b0
September
January 31,12, 2011 Cadence
2010 Cadence Methodology
Methodology Guide
Guide 2011
2011 Cadence
Cadence Design Systems, Inc. All rights reserved
180
Design Systems, Inc. All rights reserved
CPF in an RC Flow
Isolation
C
Average power calculated using signal B
probability of shutoff signal
Support for state-retention cell modeling
during shutoff
Dynamic voltage-frequency scaling
Combine multi-supply with multi-mode
Explore power-timing interaction to arrive at Too slow Too hot?
right balance, pre-implementation
Physical interconnect awareness Scenario 1 Scenario 2 Scenario n
Superthread Superthread Superthread
Continuous refinement flow
Early estimation Script Script Script
Report Report Report
Quick mapping CPF CPF CPF
Flow to production synthesis with
physical
183 January
31, 2010 Design
2009, Cadence Cadence Methodology
Systems, Guidereserved
Inc. All rights 2011 Cadence Design Systems, Inc. All rights reserved
worldwide.
RTL & Gate Power Estimation Flow
3rd Party
With Encounter RTL Compiler Simulator
VHDL Incisive
Verilog Simulation
System- Incisive
Verilog Palladium
RTL and/or Netlist
Constraints SAIF
SDC
Library Encounter RTL Compiler VCD
.lib
TCF
- static vs dynamic
50
40
30
20
10
- cell vs net 0
Clock Net Cell
Emulation
D Q D Q D Q
D Q D Q D Q
Use PLE for the most accurate wire loading. You can scale the
model slightly to add pessimism if desired.
(scale_of_cap_per_unit_length and scale_of_res_per_unit_length)
Use accurate clock frequencies in your SDC since they are used to
calculate switching activities. Use path_adjust if you want to
overconstrain synthesis.
Annotate switching activities on primary inputs and sequential
outputs. This can be generated from an RTL simulation.
Fast conditions generally consume a lot more power than slow
conditions - analyze power using fast libraries.
But, it is necessary to synthesis for timing using slow operating
conditions. RC has a solution
Current Capabilities
MSV Aware
Detects power/library domains
Builds separate RTL Power models for each domain
Clock Gating Aware
Takes into account the effect of Clock Gating
Honors all clock gating attributes
Super-threaded
Improves runtime
Same QOR
190 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
RTL Power Analysis (RTLPE) Flow
191 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
RTLPE Sample Output
Starting building RTL power analysis models ...
Preprocessing the netlist for building RTL power models ...
Building RTL power models for domain
/designs/p2002_nexus_top/instances_hier/sc_nex3 ...
25% completed ...
50% completed ...
75% completed ...
100% completed ...
Building RTL power models for top-level design /designs/p2002_nexus_top ...
25% completed ...
50% completed ...
75% completed ...
100% completed ...
Building power models for clock gating logic ...
Done building models for power analysis.
Leakage Dynamic Total
Instance Cells Power(nW) Power(nW) Power(nW)
------------------------------------------------------------------------------------------------------
arm11p_platform_128k 402219 2927535.239 39423132.772 42350668.011
192 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Drill Down Into Top Blocks
After block is targeted, potential course of actions:
Try different constraints/settings
Is timing too overconstrained? Try path_adjust instead
Change max_leakage, max_dynamic, effort level, etc.
Re-allocate power budgets
Re-explore architecture
Apply clock gating?
Explore RTL structures:
20: always @(state) -----------------------------------------------
21: case (curr_state) File Row RTL Switching Leakage
22: 4b001: next_state = 4b001; Power Power
23: 4b001: next_state = 4b010; -----------------------------------------------
24: 4b010: next_state = 4b011; state.v 32 if (rst).. <=0 25321.64 4692.33
25: 4b011: next_state = 4b100; state.v 35 curr_state <= 67098.17 1099.56
26: 4b100: next_state = 4b101; state.v 25 next.. = 4b100 10792.98 6897.12
27: 4b101: next_state = 4b110; state.v 29 next.. = 4b000 9458.34 7124.48
28: 4b110: next_state = 4b111; .
29: 4b111: next_state = 4b000; .
30: .
31: always @ (posedege clk or posedge rst)
32: if (rst) curr_state <= 0;
33: else Re-encode state machine?
34: if (en)
35: curr_state <= next_state;
193 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Design For Test
194 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Tests Advanced Power Management Techniques
Managing Power During Test ,Testing Low Power Designs
Insert Power-Aware DFT Power Aware DFT Reduce Power Power-Aware ATPG for
Structures and Modeling during test managing scan and
Configure Power-Aware capture switching activity
Scan Chains PD1 Power Modes processed
PD2
Power Modes reflected as and analyzed separately
Test Modes MBIST scheduling allows
Power Domains and Scan PTAM for runtime adjustment to
Structures Verified manage power
Setup Test
Reading of CPF
Used within the RC environment to address Power
Run
Report
DFTScan_Power
rules checker
Aware DFT features
Scan Gating
Locates high fan-out flops for testpoint insertion insert_dft mbist
Testpoint will block shift toggles into functional logic
compress_scan_chains
-power_aware
196 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF Driven Design-For-Test (DFT)
Power Aware Scan Chain Construction
Broadcast Decompressor
Power Domains Identified
Minimized Power Domain Crossing
Scan Chains Targeted to Power Domains Automatically B
Power Aware Compression Insertion A
XOR Compressor
Chip
Power Manager Block
Power Test Access Mechanism (PTAM)
PSE Stabilizes Power Control Interface
P1 Power
ISO Switchable Enable testing of the Power Manager
P2 Controller
Power
P3 Domain Process power design structures
PGE
Enable Power Mode Selection for Test
PTAM
Interface PTAM
PTE
197 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Encounter Test Low Power Flow
Build Test Module
Reading of CPF
CPF definitions structured for Encounter Test
CPF Build
Prepare
Fault
CPFModel
Data
Power Modes
Power modes mapped to Test modes
Power controls verified for stability Build Test Modes
Power switches state
Isolation state
Retention state Verify Test Modes
Scan Chains
Validated for each power mode configuration Create ATPG Patterns
ATPG
Switching control managed (scan & capture) Analyze Switching
Write Patterns
Targeted test generation for Power Components
Fault Reporting
Finished
Power Component-Aware Fault Reporting
Analysis
Identification of potential high switching patterns
(both during scan shift and capture)
198 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Testing CPF Identified Power Components
PD0 PD1
SI1 1 0
X 0 1 1 1 1 SO1
retention flop
CPF Library Definitions standard flop
199 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Managing ATPG Activity Level
For Scan Shift
Maxscanswitching keyword for Encounter Tests ATPG
This is done by controlling the level of random fill data
Provides a means to manage activity level during scan shift
For Capture
Maxcaptureswitching keyword for Encounter Tests ATPG
Utilizes functional clock gating
Manages clock activity during capture portion of test pattern
Toggle
write_toggle_gram
write_toggle_gram
High
Count
Switching
202 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Implementation Verification
203 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Closed Loop Verification
Cadence Low Power Solution
Synthesi
Design P&R
s
Chip Planning &
Architectural Exploration RTL Netlist Netlist
Power Intent
Sign-Off
Sign-Off
Sign-Off Verification Verification
Creation & Checking design checks design checks
and LP EC and LP EC
NCsim
LP Functional Verification
Frontend Design
and Optimization CPF
Process
Power verification & Signoff Every Step is compared against previous step
Every step uses original CPF
Every Step verified against LP design rules
204 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Conformal LP
205 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CDNS Closed Loop Methodology
Power Intent
Simulation verifies golden RTL + Architect
TB
golden CPF RTL
Ensures that design intent is correct w/o iso.cell, SRPG, including PSO
patterns.
Ensures that power intent is correct CPF LS, Power Switch.
Initial
Conformal LowAnalysis
Power
Implementation builds the design w/o Formal Power
(formal structural power analysis)
Impl.
Based on power intent and design
IES/vManager/Palladium/ISX
Functional Verification
Structural Checking -
Synthesis
RTL Compiler
Cadence tools enable automation
Netlist w/ iso.cell, SRPG,
and correct by construction LS
implementation
CLP
Design
Encounter
for Test
CPF
Conformal CLP verifies Synth
Implementation against golden SoC
Implementation
Encounter
power and design intent
Power aware Equivalency Check Netlist w/ iso.cell, SRPG,
LS, Power Switch
Formal structural check of power w/
structures TimingTiming
Encounter Sign-Off
System
impl.
Electrical check of power intent info
CPF IR drop/ power Sign-Off
VoltageStorm
Closed Loop final
Golden Power intent verified
against all implementation
GDSII
transformations
206 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Closed Loop LP Verification Methodology
207 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Conformal LP Design Checks
208 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Comprehensive Design Checks for
LP Designs
Power Intent Profile Physical Netlist
CPF
Level shifters
Design Object Checks
Power Intent Profiling RTL Placement/Location
Library Checks
Power connectivity
Spec. consistency
Low Power Checks Isolation cells
RTL/Logical Netlist Low Power Assertions Placement/type
Level shifters Power connectivity
Placement Functional simulation
Isolation function
Location State retention cells
Logic Synthesis & DFT
Connectivity Gate netlist Placement
Isolation cells Low Power Checks Power connectivity
Placement Retention function
Isolation type Logic simulation
Power and Ground Switch
Isolation function Power/Ground
Physical implementation
State retention cells Physical netlist Connectivity
Placement Low Power Checks Enable Control Polarity
Transistor net.
Retention function Miscellaneous
LEF.
Transistor Netlist
Miscellaneous Shorts b/n VDD/VSS
Floating nets / pins Transistor Stacking Always-on buffers
Un-buffered Input
Control Polarity Macro Power Associations
209 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Equivalence Checking
Goal: Implementation Functional Verification Keeps design
Golden
Power Intent
RTL vs. Gate
Performs functional insertion CPF consistency checking RTL
of isolation and state retention
Functional simulation
registers into RTL design
database for EC purposes
Logic Synthesis & DFT
Gate netlist
Checks retention register
mapping LP Equivalence Checking
210 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Conformal LP
211 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Real Problem Found by LP Checks:
Unprotected Off->On Domain Crossings Due To Test
Points
Do:
Protected always insert
low power
cells after all
Logic iso Logic other netlist
modifications
set
clr
Q structural
checks early
and often
clk
iso_n Unprotected
212
212 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Examples of CLP Structural and Formal Proofs
Isolation in Receiving Domain
Structurally prove:
En1, En2, and Iso1 are always driven
Formally prove:
En1 = 0 & En2 = 1 Iso1 = 1
213 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Examples of CLP Structural and Formal Proofs
State Retention Check
SRPG
PwrEn1
PwrEn1 VDD VRET Q
Power RTCLK
Controller
D
RET SRPG
V1 RET
V2 RTCLK
D
Dont care
Q
X
RET
Sleep Wake
Structural Check
Checks that RET signal is powered; VRET tied to continuous Power
Checks that VDD and D pins connect to the same power domain
Functional Checks
Assert when (RETi || RETh) (RTCLK is in off-condition)
214 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Conformal LP
215 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Checklist for using Conformal LP
216 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Checklist for using Conformal LP
217 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Checklist for using Conformal LP
218 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Checklist for using Conformal LP
220 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Digital Implementation
Cadence Low Power Solution
221 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power flow with implementation
Creating the Power intent
What is CPF is required for implementation?
RTL CPF
All steps in flow use updated CPF
Libraries Including all previously run verification
Verif Power Intent Entry EDI Physical Implementation
Env
CPF Checking Floorplaning & Power Planning
RTL + CPF Placement & routing
Power aware optimizations, buffering, etc
Conformal LP
In Parallel
Timing/SI Signoff
Physical Verification
GDSII Timing analysis and signoff
IR drop/power Signoff
Voltage storm IR drop/power signoff
222 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Preparing your design for physical
implementation
Libraries
Do I have all the EDA tool views of the low power library cells?
Power switches, level shifters, SRPG registers, isolation cells etc.
Die Size
Have I included overhead for low power structures in my
physical implementation allotted area?
Power switches, separate power nets, SRPG secondary power pin
routing etc
223 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Implementation Flow (Block-Level
Implementation) optDesign can optimize nets
using always-on buffers
Optional:
MSV prototyping
Scan
Design Import Routing
Definition
POST ROUTE
Define Pre CTS Clock Aware Post Route
POST CTS
Add Metal Fill
PRE CTS
SIGNOFF
Floorplan Setup Fixing Scan Re-Ordering Setup/Hold Fixing
INIT
Update MMMC
Environment Timing Timing Timing Timing
Met? Met? Met? Met?
224 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Read and implement CPF in EDI Flow
226 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Disjoint Power Domain Flow
Disjoint PD: One single and non-default power domain can be
floorplanned into two or more disjoint fences/islands physically
Support Type:
Domain members can be hierarchical instances
(hinsts) and fixed blocks. The hinsts need to be
sibling or non-parent-children relation. Domain
members need to be defined in the CPF explicitly. B+C
Each disjoint region can be rectilinear. (region2)
Disjoint PD
Disjoint regions can not be overlapped.
Assign each hinst to one and only one of the
regions.
Example:
members: A, B, C and block1
A region1
B and C region2 A
Add the box of block1 to the domain floorplan (region1)
Note:
All the command with -powerDomain should support
the disjoint power domain.
For the addPowerSwitch, please use -area and - block1
incremental since we want to add the power
switches into different logic modules for disjoint PD
227 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Floorplan Recommendations
Suggested PD fence floorplan:
Try best to create the rectangular or simple rectilinear shapes with mini PD
boundary edges. This will minimize the crossing-PD route patterns and help
ISO/LS placement.
BAD GOOD
PD
PD
BAD GOOD
228 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Floorplanning Recommendations (Contd)
PD1 PD1
PD2
PD2
PD3 PD3
BAD GOOD
229 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Floorplanning Recommendations (Contd)
Suggested PD fence floorplan:
Try best to avoid too many narrow channels between PDs to avoid
congestion
230 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Switch Insertion
Power switch prototype
Estimate how many power switches
addPowerSwitch
Support column and ring Style
Support different power domain shapes
specific area for column
Specific shape for ring
Place power switch
Column type: checkerBoard, skipRows, power grid
Ring type: pattern control
Chain enables (control rush current, IR drop to other block)
BackToBack
connectBottomSWenablePins
loopBackAtEnd
parallelEnable
Spine chain
Make global connection for the added power switches
Commit level shifter rule for power switch enable nets
Power switch enable net should be always-on
For detailed information, please read the PSO Methodology in
Application Notes
231 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IPO Using Always-on Buffer (Contd)
232
Always-on
January 31, 2010
buf
Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IPO Using Always-on Buffer (contd)
Features Supported in CPF flow
Define always-on buffers in CPF
Make sure always-on buffer are NOT set to dont_use
Automatically connect the secondary power pin to the primary power net
of the secondary domain if always-on buffer is inserted in switchable
domain and there are receivers in the switchable domain
Automatically connect the secondary power pin to the primary power net
of the drivers power domain for feedthrough buffering
Route the secondary power pin to the power net before signal route step
Run CLP to check the secondary power connection
The feature works for both setup and hold IPO in preCTS, postCTS and
postRoute stages
Manually adding Always on Buffers
addBufferForFeedthrough -net <netname>
[-powerDomain domainName]
-power (net:pin) gorund (net:pin)
233 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IPO Using Always-on Buffer (contd)
LP IPO is now more powerful with always-on buffer
IPO can insert an always-on buffer in the net between isolation/level
shifter and power domain boundary when the isolation/level shifter is not
placed close to power domain boundary near the driver/receiver (see an
example in the next slide)
234 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Complete full-chip analysis with Encounter Power System
Signoff-driven implementation
Fully integrated signoff engines
Two-part approach:
236 September 12, 2011 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Flow Topics
Macro Modeling
Domain Mapping
IP Reuse Example
237 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Hierarchical Design Flows
Bottom-Up Hierarchical integration
Hard Macro
An IP block is being integrated as a hard macro with internal power intent
The intent is already present, so we need to describe the internal power
architecture to integrate at the top level
Use Macro Models
Hierarchical IP Domain Merging
An IP block comes has a CPF to describe the power intent. This IP block
will be merged into the top level design
The CPF Integrator is used to optimize the CPF for this flow.
238 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Hard Macro Flow
RTL CPF
Lib/
Lef Power Intent Entry
Hard Macro
Design CPF Libraries
Macro CPF Integration
Gatelevel Simulation
2. Plugs into Top-down flow
Conformal LP
discussed earlier Formal Analysis Structural + Equivalency
3. Simulation model is
passed to verification env RTL Simulation Physical
Implementation
4. CPF is passed into CPF P&R Netlist
Integrator and merged Acceleration & Conformal LP
Emulation
into CPF used by all tools Structural + Equivalency
5. Lib/Lef are used by Verification Coverage Timing/SI Signoff
synthesis and place and
route. IR drop/power Signoff GDSII
Verif
Env
239 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Hard Macro Flow
240 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Bottom up Hierarchical flow
RTL
SDC
241 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Bottom-up Hierarchical Flow
RTL CPF
RTL
Power Intent Entry
Block Design Libraries
CPF
Flow Macro CPF Integration
CPF Checking
RTL + CPF
LP Synthesis + DFT
1. Block Level design Logical Netlist
Testbench Automation
Power Mgmt
flow
Gatelevel Simulation
Conformal LP
2. CPF is passed into Formal Analysis Structural + Equivalency
CPF Integrator and RTL Simulation Physical
merged into CPF Implementation
P&R Netlist
used by all tools Acceleration & Conformal LP
Emulation Structural + Equivalency
3. RTL for block is
Verification Coverage Timing/SI Signoff
used in top-level
runs IR drop/power Signoff GDSII
Verif
Env
242 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Bottom Up Flow
243 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Top Down Partitioning Flow Overview
CPF-enabled Partitioning Flow is built on top of the EDI regular
hierarchical flow.
Only available in EDI not for RTL level design
partition the chip into several block-level designs and one top-level design
Generate CPFs for each block and top-level design during savePartition
implement blocks and top independently in CPF (low power) flow
Assemble the block and top-level designs
244 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF-Enabled Hierarchical Flow
Design Load top-level
TOP IMPLEMENTATION
Initialization CPF
Pre-CTS
Flow
Post-CTS
Load chip-level Flow
CPF Post-Route
Flow
JTAG / Cell
VIRTUAL PROTOTYPING
Design Import
DESIGN INITIALIZATION
BLOCK IMPLEMENTATION
Partition Design Signoff Extraction
Partitioning Initialization Timing Analysis
Definition
Pre-CTS
Flow Timing
Met?
Post-CTS
Flow
Post-Route
Flow
Signoff
Load block-level Model
CPF Generation
Timing
Met?
245 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Partition
Load Chip-level CPF to capture the low power intents
Support the following floorplans between partition and power domain
Partition is equal to power domain
Partition is smaller than power domain
Partition is larger than power domain
Perform power domain aware feedthrough insertion
Use regular buffer for the partition which is in always-on domain
Use always-on buffer for the partition in switchable domain
Perform MMMC timing budget
Generate viewdefinition.tcl which includes MMMC timing budget,
MMMC setups and power domain library binding for each blocks
viewdefinition.tcl is sourced during design import
Block and top level CPFs do not need to have view definition
Generate Block-level CPFs and top-level CPF in savePartition step
Assign Power domain attribute to each partition boundary pin
Keep or push down necessary CPF rules at top or into block (iso, ls,
power switch and state retention)
246 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Flow Topics
Macro Modeling
Domain Mapping
IP Reuse Example
247 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Macro Models
248 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Macro Model Examples
249 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Macro Model
250 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
When to use Macro Models
251 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Macro Model Example
VDD
D1
Multiple power ports (VDD, VPP)
iso1
Switches Different types of domains
iso2 Un-
switched Internally Domain with retention
Isolation
ret (AON) Switched
pwr (PSO)
D4 Domain without retention
State Inputs isolated (D3)
D2 Retention
Inputs not isolated (D2)
Isolation
Outputs isolated (D4)
Outputs not isolated (D5)
Isolation
D3
Externally
D5
Internal crossing with isolation
NC Switched
(EXT) Feed-through (F1, F2)
F1
Floating port (NC)
F2 VSS VPP
252 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Top Level CPF
VDD
set_design top
Isolation
ret Switched
(AON) D4
create_power_domain name PDRed \ pwr
State
shutoff_condition pso \ D2 Retention
Switches
-default_isolation_condition I1/iso1 \ Isolation
Internally
Internally
-base_domains PDBlue Switched
Switched
-instances
Isolation
(PDRed) D3 Externally
State Switched
NC (EXT) D5
update_power_domain name PDRed \ Retention
F1
-primary_power_net VDD_SW
-primary_ground_net VSS F2 VSS VPP
end_design
253 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Domain Mapping
VDD
set_design top
create_power_domain name PDBlue default
VDD
update_power_domain name PDBlue \
D1
-primary_power_net VDD \ Un- iso1
switched Un- Switches
-primary_ground_net VSS iso2 Always
switched
(PDBlue)
Isolation
On
(AON) Internally
ret
create_power_domain name PDRed \ pwr
Switched D4
State
shutoff_condition pso \ D2 Retention
Switches
-default_isolation_condition I1/iso1 \
Internally
-base_domains PDBlue
Switched
Isolation
-instances (PDRed)
Externally
D3 Externally
Switched D5
State NC Switched
(EXT)
update_power_domain name PDRed \ Retention F1
-primary_power_net VDD_SW
F2 VSS VPP
-primary_ground_net VSS
254 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
How the macro model information is used at top
level implementation? connect power
VDD
no isolation needed: the driver is already
isolated
Isolation
ret
domain can be off while the receiver is on, (AON) Switched
D4
pwr
need to have an isolation rule at top level for State
isolation insertion Switches D2 Retention
Isolation
Internally
Internally
Internal Isolation: Any isolation rules that are
Switched
Switched
between internal domains are ignored. The
Isolation
(PDRed) D3 Externally
behavioral mode needs to model these Switched
State NC (EXT) D5
Retention
F1
No isolation needed: pin D3 is isolated
F2 VSS VPP
internally and the crossing is not a domain
crossing because domain PDRed merged
with domain EXT
VSS
No isolation needed: NC is a floating pin
No isolation needed: F1 and F2 are internal
feed-through. At top, the driver and receiver connect ground
255 January 31, 2010
of the net are in the same domain
Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Macro Model Guidelines
Make sure all input and output pins are assigned to the
correct domain
An input pin assigned to a domain means the logic driven by
the input pin inside the macro cell takes the power supply from
this domain
An output pin assigned to a domain means the logic driving the
output pin inside the macro cell takes the power supply from
this domain
If a domain contains registers defined in the behavioral
model, declare the registers in the domain definition using
instances option
Do not make an internal switchable domain as the default
domain for the macro model.
Choose an un-switched domain or an external switchable
domain as the default domain of the macro model
To avoid power shutoff behavior applied to unexpected behavioral
code during simulation
256 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Level Shifters Within Macro Cell
Declare port O
Declare port I belonging to the
belonging to the power domain
power domain corresponding to
corresponding to VDD_EXT
VDD_EXT I
Core
O
level shifters
257 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Flow Topics
Macro Modeling
Domain Mapping
IP Reuse Example
258 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Domain Mapping
259 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Example: Before Integration
X1 X2
I1 I2 I1 I2
Iso Rule
Iso Rule
Always External Always External
On Switchable On Switchable
Top Switch
Always
On Internal
Switched
X1 X2
I1 I2 I1 I2
Iso Rule
Always Always Always Internal
On On On Switched
Block1 Block1
261 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Hierarchical CPF Integration
262 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Flow Topics
Macro Modeling
Domain Mapping
IP Reuse Example
263 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IP Reuse Example
264 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Reusable IP Example IP description
myIP
externally Specify virtual ports: port save and
Switched restore do not exist in RTL
State
Retention
Specify parameters: declare parameter
one_ctrl with default value 0.
set_design myIP -ports { save restore} \
-parameters { {one_ctrl 0}}
create_power_domain name PD default \ externally switchable domain
-external_controlled_shutoff
if { [get_parameter one_ctrl] == 0 } {
create_state_retention_rule name sr\
Use parameters: use the parameter
instances foo*\ like a string variable
-save_level save restore_level restore
} else {
create_state_retention_rule name sr \
instances foo* \
-restore_edge restore
}
end_design
265 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Reusable IP Example IP Usage
configure the IP to specify the top level use the IP in a
use single control driver for the virtual switchable domain
retention (overwrite the ports
Instantiate IP CPF model
default parameter value)
include myIP.cpf ;#load in the CPF model for IP
I1 set_design top
top create_power_domain name PDBlue default
myIP1 create_power_domain name PDRed \
internal shutoff_condition pcm/pso base_domains PDBlue
set_instance I1/myIP1 design myIP \
switchable -domain_mapping { {PD PDRed}} \
pso myIP2 -port_mapping { {restore pcm/restore}} \
PCM -parameter_mapping { {one_control 1}}
restore
set_instance myIP2 design myIP \
domain_mapping { {PD PDBlue}}
always-on
end_design
266 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Equivalent Flat CPF
include myIP.cpf
set_design top Top Level Flattened CPF
create_power_domain name PDBlue default set_design top
create_power_domain name PDRed \
shutoff_condition pcm/pso base_domains PDBlue
set_instance I1/myIP1 design myIP \ create_power_domain \
-domain_mapping { {PD PDRed}} \
name PDRed \
-port_mapping { {restore pcm/restore}} \ domain mapping
-parameter_mapping { {one_ctrl 1}} shutoff_condition pcm/pso \
set_instance myIP2 design myIP \ instance I1/myIP1
domain_mapping { {PD PDBlue}}
end_design
domain mapping
create_power_domain \
Top Level CPF name PDBlue default \
-instance myIP2
top I1 I1
top
myIP1 myIP1
internal
switchable
pso myIP2
PCM pso myIP2
restore PCM
restore
always-on always-on
268 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Flow Topics
Macro Modeling
Domain Mapping
IP Reuse Example
269 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
How to configure Naming Styles to avoid
Issues
Problem Statement:
The CPF file is consumed by multiple tools. It creates a unique
requirement that the same source needs to apply to both
simulation and implementation tools internal databases
Synthesis and Equivalency checking tools has many options for
how to create the names for different objects:
Register naming
Hierarchy separator
Generate naming style
Parameterized designs
Simulation based tools adhere to a strict interpretation of the RTL
language reference manuals(LRM)
Solution
Configure each tool to use a consistent naming style
270 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Naming Style why is this an issue now?
CPF +
RTL
In the past, RTL simulation and synthesis
had very little interaction
Only the RTL was shared, no need for Switching
consistent naming Activity
RLT
Low Power Sim
RC
Common power intent as input to both sets of
tools Netlist
Names in the CPF must be matched to names
in the tools database Gate
CLP
Needs to be consistent as possible Sim
Power analysis flow passes switching activity SDF
between tools and successful name mapping Backannotation
is required to get good results
Common differences
Generate loops
VHDL records
Array indexes
271 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Guidelines
Use LRM naming style in all tools
Today most implementation tools default to non-LRM compliant
naming styles
The simulation tools are strict about LRM
The easiest way to be compatible is to standardize on LRM
What about cases where the backend flow requires a
specific naming style?
Use Change names to modify the naming style just prior to
output of a netlist
Traditionally many users would use the synthesis tools input
naming style to create the names correctly up front
Moving this step to the output ensures that the CPF can be read in
correctly, without the need for CPF to support all possible name
changes
Use the CPF name mapping flow if required.
272 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Recommended Naming Style Settings
CPF Naming
Hierarchy separate can be either . or /
set_hierarchary_separator .
set_hierarchary_separator /
Field/record separator used needs to be .
Ex: create_state_retention rule instances {a/b/c.field1} .
RTL Compiler naming
set_attr hdl_generate_separator / /
set_attribute hdl_record_naming_style "%s.%s" /
set_attribute ungroup_separator /
Set_array_naming_style [%d]
Conformal Naming
set naming rule "%L/%s" "%L[%d]/%s" "%s" -instance
set naming rule "/" -hierarchical_separator
set naming rule "." "" -field_delimiter
set naming rule [" ]" -array_delimiter
273 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Flow Topics
Macro Modeling
Domain Mapping
IP Reuse Example
274 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF name mapping flow
Flow Description
Golden CPF read into RC
All information of name change is maintained and written to a name mapping file
by RTL Compiler
Other tools read the name mapping file and recognize the changes to names
when reading the golden CPF
275 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF name mapping flow
CPF quality check
Conformal Low Power
276 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF name mapping flow
e.g. output from RC
read_cpf -library test.cpf
A name mapping file
read_netlist test.v
read_cpf test.cpf
277 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Name Mapper Flow
278 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Limitations
RC
NMF tracks only name change due to
mv
change_name
ungroup
NMF does not track name change due to
Verilog(parameter)/VHDL(generic)
Group (edit netlist or during elab)
Bit blasting
Retiming
Multi-bit flop inferencing
change_link
encrypt
IUS
Current release does not support hierarchical flow with name changes.
Example of unsupported design:
Design has multiple instances at the top level, and each instance has a name
mapper file, or
The top level has its own name mapping file
279 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Guidelines
TCL Tips
280 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF Coding Guidelines
282 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Revision Control
The CPF file must be under revision control
The same CPF is used for the entire flow
Multiple groups/users will add their flow specific content to the file
Without revision control it is easy for changes to be missed or
overwritten between groups
Recommend CLP as check-in criteria
Users should ensure any changes to the CPF are clean before check-in
Recommend periodic review of check-ins and clear ownership
We have seen cases where one group deletes lines of code that are not
needed for its tool but are required for others
Physical design team changes power modes without informing RTL
team
RTL team changes domain definitions and impacts backend teams
physical design
Separate files for different tasks/ownership will assist in this process
Front end vs library vs implementation CPF
283 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Testbench CPF File
Creating a testbench CPF allows the DUT CPF file easily be used in
the verification environment
Allows multiple instances of the DUT in the verification environment
Handles the different instance paths between implementation and
Verification
DUT top but in verification env, the instance may be
testbench.main.top
Testbench CPF
Instantiates the common design CPF
set_cpf_version 1.1
set_design testbench.system.top testbench
set_instance dut_inst
source dut.cpf
The -testbench option relaxes the requirements for the specification of
a default power domain and default power modes
It was designed specifically to simplify the use of the common design CPF in
the simulation environment.
Use Environment variables if necessary
284 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Using Environment variables for CPF paths
The CPF can be written such that environment variables are used to
provide proper paths
This allows the CPF to be used in verification and in implementation
Note: using the testbench CPF style is recommended for most cases
Note: Be very careful about the use of environment variables. Do not
use them to specify different power intent. (like state retention, isolation,
etc) Improper usage can result in simulation not verifying the same
logic as the hardware, resulting in chip failures
Guidelines
Avoid overly general wild cards
they can match more than expected and cause errors that are difficult to find
Wildcards are supported in leaf level hierarchy by all the tools
A/B/C* and A/B/C*D are supported
Note: Please check the KPNS document for known limitations on wildcard
CPF wildcard matching does not support matching the hierarchy separator
a/b/c* will match a/b/c1 but not a/b/c/d
Wildcards can not be used in control expressions
-shutoff_condition, -isolation_condition, -save_edge/-restore_edge, etc.
286 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Understanding Rule Precedence in CPF
Specific rules have precedence over generic Rules
Click here for definition of generic vs specific
A more specific rule has precedence of a less
A rule with both from and to has precedence over one only having
to or from
Lower level hierarchy rules have higher priority
Lower level rule always will overwrite any top-level rules on the same
object
Lower level rules only apply to logic within that lower level hierarchy
and are never propagated up to other logic.
Given rules of the same priority
The last rule wins
Known Problems:
Please refer to the KPNS for known limitations on Rule Precedence.
Rules this applies to:
Create_state_retention_rule, create_isolation_rule
Create_level_shifter_rule, create_power_switch_rule
287 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Generic vs Specific rules (from CPF reference
manual)
288 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF Coding
Control Conditions
289 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Array Naming Remember to escape bus
indexes {a[0]}
290 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Array Naming Style
291 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Wild cards and Arrays
Instance name, module name and port name described in CPF are
design objects.
These often use [ ] as indexes into arrays.
RTL case,
reg [5:4][3:2] c;
reg c1;
Matching multiple Registers (both c1 and c array)
create_state_retention_rule name ret instances c*
As shown in a example above, wildcard can be matched to bus
delimiter.
Matching entire array c
create_state_retention_rule name ret instance c
Matching by first array index (only c[5][3] and c[5][2])
create_state_retention_rule name ret instance c[5]
Matching by second array index (only c[5][3] and c[4][3])
create_state_retention_rule name ret instance c[*][3]
292 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Handling an Array of Records in VHDL + CPF
The default naming style is different for RC, CLP vs IES for arrays of
records
RC/CLP use : path/data[0][field][0]
IES uses: path/data[0].field[0]
Example code:
type myData_Type is
record
PADDR: Std_Logic_Vector(PAMAX-1 downto 0);
PWDATA: Std_Logic_Vector(PDMAX-1 downto 0);
end record;
entity apbmst is
port (
data : out myData_Type(0 to 3);
);
end;
293 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Handling Special Characters in CPF
The RTL or netlist may have TCL special characters in hierarchy and
instance names
Types of characters:
List specifiers: , { }
Tcl processing: $, [ ]
Escaped names in the RTL
The RTL allows special characters in the instance and net names when they are
escaped with a \
Escaped names from ungrouping logic during synthesis
When a hierarchy is ungrouped the hierarchy separator character becomes part of the
instance name and does not actually mean a separate level of hierarchy
\top.xy.z is a cell at the top level hierarchy
top.xy.Qis a hierarchical path
In the CPF, there are two methods to escape these special characters
Recommendation: Use { }
Any name inside of the braces will be escaped, its easy to read
Alternative: Using the \
Create_isolation_rule name ISO1 pins { top\[x\].xy.z}
Note: the TCL \ is different then Verilog.
The TCL version only effects the next character.
Verilog version will escape all characters from that point forward.
294 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Hierarchy Separator Character
Recommendation:
Use same hierarchy separator character for all CPF files
The hierarchy separator is scope sensitive, but it is often
confusing to debug designs that change the hierarchy
separator often
295 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Using Include and Source to load multiple CPF
CPF provides two method for loading additional CPF files
Source
The standard TCL method for loading files
Searches for include files relative to the current working directory
Include
A cpf extension to the TCL source modeled after the include in verilog
Search for the included file relative to the current CPF file
Ie. If file a/b/top.cpf include bottom.cpf, it will search in the same directory as the top(a/b )
for bottom.cpf
Recommendations
Use Include to make the CPF more portable
Source often requires the top level CPF to know the location in the file system of the other CPF files.
Typically needs the use of environment variables to make portable
296 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Guidelines
TCL Tips
297 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
TCL Tips
-isolation_condition iso
Matching { and }
A common TCL error is to have unmatched curly braces
The error is sometimes difficult to debug
Several existing tools and editors have a TCL mode that can be used to highlight
the beginning or end of a pair of braces.
298 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Using Variables in TCL
Environment Variables
$env(ENV_VARIABLE_NAME)
Check existence of environment variable
If [info exists env(MY_ENV_VAR)] { puts exists}
Using Variables in lists
Use
Set tmp $var1/b $var1/c
Note: {$var1/b $var1/c} is not the same. The curly braces escape
the $ character, so these will not be expanded.
Note: If you need to use [] as well, then escape these characters
Ex: set tmp $var/b\[1\] $var/b\[2\]
299 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Guidelines
TCL Tips
300 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
RTL Coding Guidelines
301 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
RTL Coding Guidelines
RTL Hierarchy
302 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
RTL Coding Guidelines
Clock Gating
Power Shutoff
Gate clocks for all power shutoff regions
Gating should start prior to isolation
This ensures the internal logic has the expected state before shutoff
Gating saves power
The clock line consumes a large % of total dynamic power. Even if the power is off, the clock
drivers would see the load
Dynamic Voltage
Gate clocks during voltage transitions
This is not a strict requirement, but it can ensure that no data is lost during the transition
Standby Mode
Gate all clocks for standby domains
This is obvious as a standby domain would lose all of its state if the clock were not gated.
State Retention Cells
Many libraries require that the clock to state retention cells be held to a specific value during
power shutoff.
While we try to avoid technology specific information in the RTL, this is a case that it may be
required.
303 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
RTL Coding
Naming Conventions
304 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Initial Block Replay
305 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
RTL Coding
Control signals and Test
NOTE:
Encounter Test is fully power aware and designs a power test access
mechanism to ensure that these control signals are stable during power shutoff.
306 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
RTL Coding Style
Language
System Verilog
System Verilog interfaces and modports at power domain boundaries are
supported
All other system verilog constructs and data structures cannot be part of power
down domains
VHDL
Integers, enumerated types, real cannot be corrupted to xs
In IUS 8.2, these corrupt to their DEFAULT value
The default is often the reset state, and in some cases can cause the corruption
to essentially go undetected
In IUS 9.2 and later the corruption is more advanced
Using ranges for integers helps ensure a valid value during corruption
This is particularly important for integers used as an index into an array
SystemC
System C constructs cannot directly touch power shutoff domains. For System C
testbench please use a buffer to isolate the system C from the shutoff.
AMS
Only digital components are supported as part of power shutoff. Verilog or VHDL
AMS components will not be placed in power shutoff domains.
307 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Avoid large delays in initial block
Workaround
Disable the initial block on power down
reg pdown;
initial
$lps_link_power_domain_powerdown(pdown);
308 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
LP Behavioral Modeling Examples/guidelines
309 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
ROM Simple Example: //Top verilog
Module Top ()
Desired behavior: ROM ROM1 ()
Entire ROM corrupts when PD_SW powers off .
Endmodule
On power up, the ROM contents should be
restored to original values
// Sample ROM behavioral Model
Solution: Module ROM (Addr, CEb, Din)
Define the ROM to be part of PD_SW power ///Port and variable declarations omitted
domain
PSO modeling will automatically model corruption always @(Addr or CEb or Din)
when PD_SW powers off begin
Use initial_block_replay to reload the contents if (!CEb)
of the ROM at power up begin // read cycle
Specifies that an initial block in the RTL needs to Dout_internal <= ArrayReg[Addr];
be replayed on power up end
The initial block is loads the contents of the ROM else if (CEb)
begin
Dout_internal <= 32'b0;
end
end
310 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF Modeling of a FLASH Memory
311 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Flash Memory Example
Verilog code to save/restore flash
set_macro_model FLASH
Define a simple macro model
# Definition of power domains to include boundary ports and state for the FLASH memory
registers
create_power_domain -name PD_FLASH default
-external_controlled_shutoff
# replay the initial block in the FLASH that initializes the data
set_sim_control -target rom_init -action power_up_replay -modules FLASH
-controlling_domain xFLASH/PD_FLASH
312 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Flash Memory Example
Verilog code to save/restore flash
Module xFLASH ()
..
// RTL for flash memory not included.
reg [31:0] ArrayReg [0:1023]; /// Memory Array Get this modules enclosing
. power domain
// additional code to store the contents of the FLASH memory before shutting down
reg [1:512*8] pd_reg="";
reg link_pd_arrayreg;
initial
begin Register for power shutoff
$lps_get_power_domain (pd_reg); // this returns the power domain name
$display("Power domain of ArrayReg is: %0s",pd_reg);
events for this modules
$lps_link_power_domain_powerdown(link_pd_arrayreg, pd_reg); domain
end
integer i;
always @(posedge link_pd_arrayreg) On Power shutoff save the
begin
data_file_tag = $fopen("../testbench/data_file","w"); contents of the Flash to
$display ($stime,": Saving contents of ArrayReg in file"); memory
for (i=0; i<1024;i=i+1) begin
$fwrite(data_file_tag,"%h\n",ArrayReg[i]);
end
$fclose(data_file_tag);
end
initial
begin: rom_init Use initial_block_replay in
// read in the FLASH data file
$display ($stime,": Initializing FLASH core"); CPF to load the memory on
$readmemh ( "../testbench/data_file", xFLASH.ArrayReg); power up.
end
313 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Low Power Guidelines
TCL Tips
314 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF Language Details
Library + Tech
315 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Library CPF
Vendor provided library CPF
Ideally vendor provide a technology CPF file
Advantages: maintained and verified by ASIC vendor
Conversion from Liberty
In some cases, the vendor has placed the low power attributes in the liberty
format
Conformal Low Power has a utility to translate that liberty information into CPF
read library <> -liberty -lp
write power intent Library.cpf -cpf lib
Creating a Library CPF using Power Intent Architect (PIA)
PIA provides a very intuitive GUI driven method for creating the library CPF
Reads Liberty format and guides the user to correct syntax and settings
Include some slides to show how, and why this is useful
Manual Creation
A CPF file can be created by hand to describe the low power cells.
A person familiar with the library can typically do this with little effort
Conformal LP can be used to check the library and CPF are consistent
316 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Nominal Conditions create_nominal_condition
Create_nominal_condition
Voltage: Defines the voltages used in this design
Used to specify allowed voltages per domain (modes) and defining analysis views
State : Assigns a domains state for the voltage: (more info)
On normal operating voltage
Off domain is considered shutoff
Standby domain is operating at the minimum voltage that it can maintain state, but not calculate new values
Specify any bias on the voltage
Update_nominal_condition
Associate a library set to the nominal condition
Used by implementation and analysis tools to link in proper libraries
# Command: create_nominal_condition
# Define the set of voltages to use and define the domain state
create_nominal_condition -name high -voltage 1.3 -state on
create_nominal_condition -name V11 -voltage 0.7 state standby
create_nominal_condition -name shutoff -voltage 0.0 state off
# Command: define_always_on_cell
define_always_on_cell
#
Define_level_shifter_cell Define_always_on_cell cells {AON_1 AON_2} always_on_pins {A}
define_power_switch_cell
# Command: define_level_shifter_cell
#
Define_level_shifter_cell cells {AON_1 AON_2}
MSV/DVFS
Power Shutoff
318 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Associating libraries with a Domain and voltage
# Command: create_nominal_condition
# Define the set of voltages to use and define the domain state
Define nominal
create_nominal_condition -name high -voltage 1.1 -state on
create_nominal_condition -name low -voltage 0.7 state standby(get better example)
Conditions +
voltages
# Command: Update nominal Condition
# Associate library set to use for a specific nominal condition Link the libraries
update_nominal_condition name highlibrary_set v11_lib_set to nominal
update_nominal_condition name low library_set v07_lib_set
conditions
# Command: Create_power_mode
# Associate a domain with a nominal condition Link the Domains
Create_power_mode name M1 nominal_conditions {PDA@high PDB@low} to nominal
conditions
319 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF Language Details
Library + Tech
320 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
update Isolation_rule/update_level_shifter_rule
update_isolation_rule and update_level_shifter_rule
The placement of the isolation cell can be controlled using this command
location
Specifies where in the hierarchy the isolation cells should be inserted
-within_hierarchy instance
Allow isolation cell to be placed in a specific hierarchy level
Create_isolation_rule name ISO1 from PD_orange
Update_isolation_rule name ISO1 location from within_hierarchy Top
Location From
Top Within_hierarchy Top
InstA
322 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Operating Corners and Analysis Views
Operating Corner # Command: Create Operating Corner
Defines the corners of interest #Define the operating corners used by timing analysis and
optimization
Voltage, process, temp create_operating_corner -name high_max -voltage 1.3 -library_set lib_1.3
create_operating_corner -name low_max -voltage 1.1 -library_set lib_1.1
Library association
Analysis View
A view specifies an operating
corner for each power domain
Used for Multi-mode, Multi- # Define analysis views for multi-mode/multi corner
# Command: create_analysis_view
Corner analysis and create_analysis_view -name AVdefault_WC -mode PMdefault
optimization in -domain_corners { PDdvfs@PDdvfs1_wc PDpll@PDdvfs1_wc
323 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF Language Details
Library + Tech
324 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF Philosophy on Power Network
Explore & iterate
at domain level
CPF is Power Domain Oriented CPF
The foundation of the LP architecture is the Power
325 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Base domain
In the example:
PSO
PD_MID is the base domain for PD_PSO
PD_TOP is the base domain for PD_MID Domain
Create_power_domain name PD_PSO \
base_domains {PD_MID} .
326 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Secondary domain
VDD_2
Definition: Many low power cells have two voltage
supplies feeding them. The secondary domain
defines from where the voltage for the second VDD_1
power supply is derived.
Usage: PD_TOP
Level Shifters, state retention PSE_1
Always on and isolation cells may also define
Typically specified with -secondary_domain
on the create_*_rule commands
PD_PSO
PD_V2
In the example:
SR
State Retention Element (SR) LS
PD_PSO for the main part of the latch
PD_TOP as secondary domain for the retention
portion
Create_state_retention_rule name SR1
secondary domain PD_T0P
Level Shifter(LS)
Primary domain is PD_PSO (where it is placed)
Secondary Domain is PD_V2
327 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Network Connectivity for Non-PSO Domains
LS
LS
Placed in from Domain, primary power Placed in to Domain, primary power
is FROM_VDD is TO_VDD
328 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Switch Network For Power Shutoff
329 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Net Connectivity
Update Power domain
# Command: Update power_domain
Associates a power domain # Connect power domain to power nets
with a specific set of power and update_power_domain -name PD_A \
ground nets. -primary_power_net vdda25 \
-primary_ground_net vssa
Update_power_switch_rule
update_power_domain -name PD_uart \
Provides additional constraints
-primary_power_net VDDuart\
and connectivity for a power -primary_ground_net VSSsoclib_1.1
switch rule
Constraints:
Peak_ir_drop, # Update power switch rule with constraints
average_ir_drop, # Command: update_power_switch
Connectivity update_power_switch_rule -name pwr_smc_rule \
-peak_ir_drop_limit 0 -average_ir_drop_limit 0
Bias net information
Acknowledge and enable update_power_switch_rule -name pwr_rom_rule \
signals used for daisy chain -peak_ir_drop_limit 0 -average_ir_drop_limit 0
and mother daughter type
power switch networks
See power network for more
details
330 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Network Connectivity for Power Shutoff
Basic Power Switch
Define Power domains
Create_power_domain name PD_VDD
VDD
Create_power_domain name PD_SW shutoff_condition {!PSE}
-base_domain PD_VDD PSE
Create Power/Ground nets
create_power_nets, create_ground_nets:
create_power_nets -nets VDD -voltage 1.08
create_power_nets -nets VDD_SW -voltage 1.08 ISO
-external_shutoff_condition { !PSE } VDD_SW
create_power_nets -nets vssa -voltage 0.0
Associate power and ground nets to each domain SR
The primary power of all cells in the domain are connected to the associated
power and ground net
Update_power_domain
update_power_domain -name PD_VDD -primary_power_net VDD
PD_SW PD_VDD
-primary_ground_net vssa
update_power_domain -name PD_SW -primary_power_net VDD_SW
-primary_ground_net vssa
Define Power Switch rule
Defines where power switches are required
Create_power_switch_rule name SW1
domain PD_SW external_power_net VDD
Default Handling of Special Cells
State retention has 2 sets of power pins
Primary power is connected to the domain VDD_SW because they are in PD_SW
Secondary power used by the save latch and is connected to VDD because
PD_VDD is the base_domain of PD_SW,
Isolation outside of PD_SW will typically have a single power supply connected
to its domains main power( in this case VDD)
331 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Power Network Connectivity for Power Shutoff
Low Power Cells
State Retention
The default behavior on the previous slide is used by the vast majority of our
customers, but CPF provides the flexibility to change it.
To override the default behavior for the state retention also use the
secondary_domains flag
Create_state_retention_rule name SR1 secondary_domain {PD_VDD}
332 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF Language Details
Library + Tech
333 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Additional CPF Language Details
334 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Create Power Domain Info
335 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Create_level_shifter_rule
Update_level_shifter_rule
336 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Define_isolation_cell
Defines which
domain the cell can be
Defines a library cell as an isolation cell placed in.
This information is used primarily for Most often its the to
implementation tools domain of the
-always_on_pins is used by simulation create_isolation_rule
Most Common Options:
define_isolation_cell Some cells
-cells cell_list automatically isolate
[-valid_location { from | to | on | off}] whenever the primary
{ -enable pin | power is turned off
-no_enable {high|low|hold} }
- -power power_pin \ Most isolation cells have
-power_switchable an enable pin to define
switchable_power_pin when the cell is isolated
Used to define
always_on style isolation
cell.
337 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Define_isolation_cell (Additional Options)
338 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Define_state_retention_cell
define_state_retention_cell
-cells cell_list [-cell_type string]
{-restore_function expression | -save_function
expression
[-restore_check expression] [-save_check expression]
339 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Define_state_retention_cell (additional options)
340 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
AON Cells
Defines cells that are considered always_on
They are cells in a power shutoff region that are not connected to the output of
the power switch
They are not truly always on, as their power supply can be switched at higher
levels of hierarchy
Usage
Implementation tools connect the proper power and ground to the cell, and can
only replace it with other always on cells (not other non-LP cells in the library)
LP checking
341 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Always_on_pins
Always_on_components
Always_on_pins
Always on pins definitions are used for simulation of instantiated low
power cells. (either gate-level netlist or instantiated at RTL)
The always on pins model the fact that these cells are always on and
do not corrupt the way normal cells in a power shutoff would corrupt
Examples are: enable pin for isolation, save/restore for state retention.
The low power behavior of these cells is expected to be in the verilog
simulation model for the cell
Always on components
Provide a method to simulate instantiated state retention cells
The components (registers, UDP) defined will not corrupt during low
power simulation
Typically the SR cell is modeled as having a latch that is listed as
always on.
The rest of the SR cell will be follow normal LP corruption semantics
342 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Create_mode_transitions - Notes
343 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Domain States
344 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Tips and Techniques
How to model Hard macro with power intent
Macro Modeling ( details in macro modeling section)
I/O pads
Voltage_regulator
Level Shifters and Combination Isolation/level shifting cells
Roms, Flash Memory (details in RTL coding style section)
Note on Printed Copy: The details for some of the topics above are in different sections of this document and are
not copied here. In presentation mode the links provided will jump to the proper sections
345 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
I/O Pad Cells
Use macro models to define complex Pads Special low power features
346 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
I/O Pad Cell Definition Example
set_macro_model IPad
create_power_domain name core boundary_ports Y
create_power_domain name pad boundary_ports A
VDP VDC update_power_domain name core
A IPad Y
primary_power_net VDC primary_ground_net VSS
VSS
update_power_domain name pad
primary_power_net VDP primary_ground_net VSS
end_macro_model
set_macro_model OPad
create_power_domain name core boundary_ports A
create_power_domain name pad boundary_ports Y
VDC VDP update_power_domain name core
A OPad Y primary_power_net VDC primary_ground_net VSS
VSS update_power_domain name pad
primary_power_net VDP primary_ground_net VSS
end_macro_model
347 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
I/O Pad Cell Integration into Design Example
VHI
x1 xC x3
Domain Mapping VDP VDP
A IPad Y A OPad Y
Depends on how power and Chip VSS VDC
VSS VDC
ground will be connected Core
VDP VDP
Does not depend on driving A Y
Area A Y
IPad OPad
or receiving domains x2
VSS VDC VSS VDC
x4
Switch
VLO
GND
create_power_domain name Lo default
create_power_domain name Core instances xC shutoff_condition OFF
create_power_domain name Hi boundary_ports { list of data I/O }
update_power_domain name Lo primary_power_net VLO primary_ground_net GND
update_power_domain name Core - primary_power_net VSW primary_ground_net GND
update_power_domain name Hi primary_power_net VHI primary_ground_net GND
set_instance x1 domain_mapping { { core Lo } { pad Hi } model IPad
set_instance x2 domain_mapping { { core Lo } { pad Hi } model IPad
set_instance x3 domain_mapping { { core Lo } { pad Hi } model OPad
set_instance x4 domain_mapping { { core Lo } { pad Hi } model OPad
348 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
TIP: Use the PIA GUI to hook up I/O pads
GUI Form allows quicker
entry of IO Pads and their
power/ground mappings
GUI Allows you to define
groups of pins and use buses
One quick GUI form can
replace hundreds of lines of
CPF
Most designs only require a
handful of pad rules to cover all
the I/O
CLP can write out CPF
command equivalents for
use in the rest of the design
flow
349 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Tips and Techniques
How to model Hard macro with power intent
Macro Modeling ( details in macro modeling section)
I/O pads
Voltage_regulator
Level Shifters and Combination Isolation/level shifting cells
Roms, Flash Memory (details in RTL coding style section)
Note on Printed Copy: The details for some of the topics above are in different sections of this document and are
not copied here. In presentation mode the links provided will jump to the proper sections
350 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Voltage Regulators
351 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Describing Voltage Regulators
352 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Describing Voltage Regulators x1 = REG
VHI VDD
VLO Chip
VREG Core
EnReg Area
2. Define a macro model PSO
VSS
set_macro_model REG
VSS
# Create a power domain for each voltage supply
create_power_domain name PD_VDDboundary_ports EnReg -default
create_power_domain name PD_VREG shutoff_condition !EnReg
external_controlled_shutoff
# Link the power domain to the power nets/input pins
update_power_domain name PD_VDD- primary_power_net VDD primary_ground_net VSS
update_power_domain name PD_VREG -primary_power_net VREG primary_ground_net
VSS
# Create nominal conditions to represent the allowed voltage levels
create_nominal_condition -name NC_OFF-voltage 0.0
create_nominal_condition -name NC_LOW-voltage 1.2
create_nominal_condition -name NC_HIGH -voltage 3.3
# Create power modes to define the allowed combinations of voltages
create_power_mode -name M1 -domain_conditions {PD_VDD@NC_HIGH PD_VREG@NC_OFF}
create_power_mode -name M2 -domain_conditions {PD_VDD@NC_HIGH PD_VREG@NC_LOW}
353
end_macro_model
January 31, 2010
Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Voltage Regulator Example x1 = REG
VHI VDD
VTOP Chip
VREG Core
EnReg Area
PSO
VSS
2. Instantiate the Regulator
VSS
# Create a top level power domain for each voltage supply
create_power_domain name TOP_VDD_boundary_ports EnReg -default
create_power_domain name TOP_VREG shutoff_condition !x1/EnReg
external_controlled_shutoff
# Link the power domain to the power nets/input pins
update_power_domain name TOP_VDD- primary_power_net VHI primary_ground_net VSS
update_power_domain name TOP_VTOP -primary_power_net VTOP primary_ground_net
VSS
# Instantiate the voltage regulator
set_instance xReg model REG domain_mapping {{PD_VDD TOP_VDD } { PD_VREG
TOP_VREG}}
# Create nominal conditions to represent the allowed voltage levels
create_nominal_condition -name NC_OFF-voltage 0.0
create_nominal_condition -name NC_LOW-voltage 1.2
create_nominal_condition -name NC_HIGH -voltage 3.3
# Create power modes to define the allowed combinations of voltages
354 January 31, 2010
Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
create_power_mode -name T1 -domain_conditions {TOP_VDD@NC_HIGH TOP_VREG@NC_OFF}
Notes on voltage Regulator
355 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Simulation modeling of voltage regulator
The model described above works for a simple static relationship of
voltage and Power shutoff
The input and output voltages are always the same
This model simulates with no special additions
Regulators can also have multiple voltages as output, or select
between several voltages
CPF models multiple voltage levels in two ways
Active state conditions define a condition when a specified voltage level is
applied to domain
Create_power_domain active_state_conditions {v10@cond1 v12@cond2}
Power modes and power mode transitions
The active state conditions are most common and can easily model most voltage
regulators
Analog or complex voltage regulators may require special modeling
A wreal analog model can be used to determine the voltage
Create a wrapper that uses the output of the analog model to set the
active_state_condition used in the CPF
Contact Cadence for more details on how to implement this flow
356 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Tips and Techniques
How to model Hard macro with power intent
Macro Modeling ( details in macro modeling section)
I/O pads
Voltage_regulator
Level Shifters and Combination Isolation/level shifting cells
Roms, Flash Memory (details in RTL coding style section)
Note on Printed Copy: The details for some of the topics above are in different sections of this document and are
not copied here. In presentation mode the links provided will jump to the proper sections
357 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Enabled Level Shifter VS ISO/LS Combo Cell
358 September 12, 2011 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Comparison of Typical Combo Cell vs Enabled LS
Combo Isolate/Level Shifter Enabled Level Shifter
Isolation:
Combo Cell isolates on its input
Enabled LS isolates on its output the logic up to the actual level
shifting is unprotected
Level Shifter
Enabled LS: LS portion is powered off when not enabled.
Combo Cell: LS portion is always enabled
Enable pins related power
Combo Cell: Enables power is from the VDD_IN (source side)
Enabled LS: Enables power is from the VDD_OUT (destination side)
359 September 12, 2011 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Modeling A Isolation-Level Shifter Combo Cell
A combo cell isolates or protects the input when the driving logic is powered down
and generates an output isolation value at the same voltage as the output supply of
the cell.
Typically the enable pin is related to the input supplies of the cell.
This type of cell is not very common. The most common combo cells are the isolation cells
with high to low shifting capabilities.
To model a combo cell you need two commands. For example:
define_level_shifter_cell -cells LVLLHCD*
-input_voltage_range 0.792:0.99:0.099 \
-output_voltage_range 0.792:0.99:0.099 \
-output_voltage_input_pin ENABLE \
-input_power_pin VDD_IN \
-output_power_pin VDD_OUT \
-direction up \
-ground GND \
-valid_location to
define_isolation_cell -cells LVLLHCD* \
-power VDD_OUT \
-ground GND \
-enable ENABLE \
-valid_location to
Note: In this case, you cannot use the -enable option in the define_level_shifter_cell
definition.
360 September 12, 2011 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Modeling an Enabled Level Shifter
Note: The driver of the level shifter data pin is not protected. For such a cell to be used for isolation
purposes its input power pin should be connected to the primary(unswitched) power net of the driving
domain.
361 September 12, 2011 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Tip Use the PIA GUI to simplify entry
Simple Form
Driven entry
No need to learn
all the underlying
syntax
Faster entry
Less error prone
Seeded with
information from
library (pin
names, etc)
362 September 12, 2011 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Tips and Techniques
How to model Hard macro with power intent
Macro Modeling ( details in macro modeling section)
I/O pads
Voltage_regulator
Level Shifters and Combination Isolation/level shifting cells
Roms, Flash Memory (details in RTL coding style section)
Note on Printed Copy: The details for some of the topics above are in different sections of this document and are
not copied here. In presentation mode the links provided will jump to the proper sections
365 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Using Equivalent Control Pins to Control Rush Current
366 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
CPF coding style option 2
E1
367 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Tips and Techniques
How to model Hard macro with power intent
Macro Modeling ( details in macro modeling section)
I/O pads
Voltage_regulator
Level Shifters and Combination Isolation/level shifting cells
Roms, Flash Memory (details in RTL coding style section)
Note on Printed Copy: The details for some of the topics above are in different sections of this document and are
not copied here. In presentation mode the links provided will jump to the proper sections
368 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Handling Designs with Instantiated LP cells
369 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Handling designs with Isolation Cells
Instantiated
Hand instantiated isolation logic is automatically handling in most tools
Most tools can identify existing LP cells and no special actions are required by the user
If the existing isolation cell matches the isolation rules then no new cell is inserted
The isolation condition, isolation_ouput, and isolation_target must all match
RTL compiler, Encounter and CLP all behave the same.
IES
IES is not a synthesis too and does not have the same understanding of the LP cells or
ability to verify that an instantiated LP cell matches the CPF definition
If all the isolation cells for a design have been inserted then:
IES has the ability to turn off isolation insertion on the entire design
use the lps_iso_off flag
Define the low power cells using the define_isolation_cell always_on_pin
Define the always on portion of the isolation, this ensures the isolation cell is not corrupted
during power shutoff.
If only a portion of the design has isolation cells inserted
IES does not have the ability to turn off isolation on a domain or module basis
This is a planned improvement
Workaround
ensure that the isolation logic is described with create_isolation_rule in the CPF
Allow IES to model the isolation rules
The simulator will insert virtual isolation cells and will essentially double isolate the cells
in question
Use CLP to check consistency between the RTL instantiation and the CPF Description
If CLP check is clean, then the double isolation will have no impact on the functional
verification.
370 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Handling designs with State retention cells
Instantiated
If the instantiated state retention cell is properly defined as a state retention
cell
Then RC, Encounter, and CLP will not attempt to replace the existing logic
CLP will check to ensure that the instantiated cell matches all applicable state
retention rules
371 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Handling designs with Level shifter cells
Instantiated
372 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Designs with Always on Cells
373 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Tips and Techniques
How to model Hard macro with power intent
Macro Modeling ( details in macro modeling section)
I/O pads
Voltage_regulator
Level Shifters and Combination Isolation/level shifting cells
Roms, Flash Memory (details in RTL coding style section)
Note on Printed Copy: The details for some of the topics above are in different sections of this document and are
not copied here. In presentation mode the links provided will jump to the proper sections
374 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Understanding Isolation with Tie-hi/Tie-low Cells
Will isolation cells be placed on signals driven by ON
tie-hi/tie-low cells?
OFF
Isolation is typically required Tie
The tie cells are part of the power shutoff domain
When power is turned off to the domain, the tie cells
also lose power Tie
Isolation is needed to protect the boundary
If the isolation value is the same as the constant value, then the
two methods are functionally equivalent
The destination would see the same value regardless of whether the
domain was powered off
The destination does not care if the input is a 1b1 because of isolation or ON
because it is the constant itself
OFF
Recommended Methodology 1b1
Use Conformal Low power to detect any cases where the Isolation
value differ from the constant value
If any differences occur, then
Change the CPF so that the constants match the isolation value
Use the following:
RC flags: set_attr lp_isolate_domain_crossing_constants true 1b0
/designs/*
CLP flag: lowpower option -no_local_constants
376 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Tips and Techniques
How to model Hard macro with power intent
Macro Modeling ( details in macro modeling section)
I/O pads
Voltage_regulator
Level Shifters and Combination Isolation/level shifting cells
Roms, Flash Memory (details in RTL coding style section)
Note on Printed Copy: The details for some of the topics above are in different sections of this document and are
not copied here. In presentation mode the links provided will jump to the proper sections
377 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Equivalency check of power switch insertion
378 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Info on Virtual Isolation Insertion
379 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Tips and Techniques
How to model Hard macro with power intent
Macro Modeling ( details in macro modeling section)
I/O pads
Voltage_regulator
Level Shifters and Combination Isolation/level shifting cells
Roms, Flash Memory (details in RTL coding style section)
Note on Printed Copy: The details for some of the topics above are in different sections of this document and are
not copied here. In presentation mode the links provided will jump to the proper sections
380 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Appendix A: CPF Support Matrix
381 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
General CPF Command Support
EDI Encounter
382 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IUS IUS
Ver CLP PD RC ET EDI Comments
Verilog VHDL
assert_illegal_domain_configurations 1.1
-name string N/A U U U N/A N/A N/A
-domain_conditions domain_condition_list N/A U U U N/A N/A N/A
-group_modes group_modes_list N/A U U N/A N/A N/A N/A
-domain_conditions domain_condition_list N/A U U N/A N/A N/A N/A
-group_modes group_mode_list N/A U U N/A N/A N/A N/A
create_analysis_view
-name string 1.1 N/A N/A N/A N/A N/A N/A S
-mode mode 1.1 N/A N/A N/A N/A N/A N/A S
-domain_corners domain_corner_list 1.1 N/A N/A N/A N/A N/A N/A S
-group_views group_view_list 1.1 N/A N/A N/A N/A N/A N/A S
-user_attributes string_list 1.1 N/A N/A N/A N/A N/A N/A S
create_assertion_control
-name string 1.1 N/A 6.2 6.2 N/A N/A N/A N/A
-assertions assertion_list 1.1 N/A 6.2 6.2 N/A N/A N/A N/A
-domains power_domain_list 1.1 N/A 6.2 6.2 N/A N/A N/A N/A
-shutoff_condition expression 1.1 N/A 6.2 6.2 N/A N/A N/A N/A
-type {reset | suspend} 1.1 N/A 6.2 6.2 N/A N/A N/A N/A
-exclude assertion_list 1.1 N/A U U N/A N/A N/A N/A
create_bias_net 1.1
-net net S N/A N/A N/A N/A N/A S
-driver pin NP N/A N/A N/A N/A N/A N/A
EDI - query by
-user_attributes string_list NP N/A N/A N/A N/A N/A S
"getCPFUserAttributes"
-peak_ir_drop_limit float N/A N/A N/A N/A N/A N/A N/A
-average_ir_drop_limit float N/A N/A N/A N/A N/A N/A N/A
383 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IUS IUS ED
Ver CLP PD RC ET Comments
Verilog VHDL I
create_global_connection 1.1
-net net N/A N/A N/A N/A N/A N/A S
-pins pin_list N/A N/A N/A N/A N/A N/A S
-domain domain N/A N/A N/A N/A N/A N/A S
-instances instance_list N/A N/A N/A N/A N/A N/A S
create_ground_nets 1.1
-nets net_list S N/A N/A N/A N/A N/A S
-voltage {float | voltage_range} S N/A N/A N/A N/A N/A S
-external_shutoff_condition expression S N/A N/A N/A N/A N/A S
-internal S N/A N/A N/A N/A N/A S
-user_attributes string_list N/A N/A N/A N/A N/A N/A S EDI - query by "getCPFUserAttributes"
-peak_ir_drop_limit float N/A N/A N/A N/A N/A N/A S
-average_ir_drop_limit float N/A N/A N/A N/A N/A N/A S
create_isolation_rule 1.1
-name string S S S S S S S
-isolation_condition expression S S S S S S S
8.2up
-no_condition NP 8.2 S N/A U 8.1
d
-pins pin_list S S S S S S S
-from power_domain_list S S S S S S S
-to power_domain_list S S S S S S S
-exclude pin_list S S U S S S S
-isolation_target {from|to} S U U N/A S S S
-isolation_output { high | low | hold | tristate} S P P (S) S S S tristate is U yet(Tools List : RC)
-secondary_domain power_domain S 8.2s8 8.2s8 S N/A U S
384 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IUS IUS
Ver CLP PD RC ET EDI Comments
Verilog VHDL
Create_level_shifter_rule 1.1
-name string S U U N/A S S S
-pins pin_list S U U N/A S N/A S
-from power_domain_list S U U N/A S N/A S
-to power_domain_list S U U N/A S N/A S
-exclude pin_list S U U N/A S N/A S
create_mode_transition 1.1
-name string N/A 8.2s8 8.2s8 Planed N/A N/A N/A
-from power_mode N/A 8.2s8 8.2s8 Planed N/A N/A N/A
-to power_mode N/A 8.2s8 8.2s8 Planed N/A N/A N/A
-state_condition expression N/A 8.2s8 8.2s8 NP N/A N/A N/A
-end_condition expression N/A 8.2s8 8.2s8 NP N/A N/A N/A
-cycles [integer:]integer N/A U U N/A N/A N/A N/A
-clock_pin clock_pin N/A U U N/A N/A N/A N/A
-latency [float:]float N/A 8.2s8 8.2s8 N/A N/A N/A N/A
create_nominal_condition 1.1
-name string S 8.2s8 8.2s8 S S S S
-voltage float S 8.2s8 8.2s8 S S S S
-ground_voltage float S NP NP NP S N/A S
-state {on | off | standby} NP 8.2s8 8.2s8 S N/A N/A N/A
-pmos_bias_voltage float NP N/A N/A NP N/A N/A N/A
-nmos_bias_voltage float NP N/A N/A NP N/A N/A N/A
create_operating_corner 1.1
-name string N/A N/A N/A N/A N/A N/A S
-voltage float N/A N/A N/A N/A N/A N/A S
-ground_voltage float N/A N/A N/A N/A N/A N/A S
-pmos_bias_voltage float N/A N/A N/A N/A N/A N/A N/A
-nmos_bias_voltage float N/A N/A N/A N/A N/A N/A N/A
-process float N/A N/A N/A N/A N/A N/A S
-temperature float N/A N/A N/A N/A N/A N/A S
-library_set library_set N/A N/A N/A N/A N/A N/A S
385 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IUS IUS
Ver CLP PD RC ET EDI Comments
Verilog VHDL
create_power_domain
-name power_domain 1.1 S S S S S S S
-instances instance_list 1.1 S S S S S S S
-boundary_ports pin_list 1.1 S 8.2 8.2s8 S S S S
-default 1.1 S S S S S S S
-shutoff_condition expression 1.1 S S S S S S S
-external_controlled_shutoff 1.1 S 8.2 8.2s8 S S S S
-default_isolation_condition expression 1.1 NP 9.2 9.2 S S S S
-default_restore_edge expression 1.1 NP 8.1 8.1 S S U S
-default_save_edge expression 1.1 NP 8.1 8.1 S S U S
-default_restore_level expression 1.1 NP 8.1 8.1 N/A S U N/A
-default_save_level expression 1.1 NP 8.1 8.1 N/A S U N/A
-power_up_states {high|low|random} 1.1 N/A NP NP S N/A U N/A
-active_state_conditions
1.1 NP 8.2s8 8.2 s8 S N/A N/A N/A
active_state_condition_list
-base_domains domain_list 1.1 only S 8.1 8.1 S U U S
create_power_mode 1.1
-name string S 8.2s8 8.2s8 S S S S
-default S 8.2s8 8.2s8 S S S S
-domain_conditions domain_condition_list S 8.2s8 8.2s8 S S S S
-group_modes group_mode_list S 9.2 9.2 NP N/A U S
create_power_nets 1.1
-nets net_list S N/A N/A N/A N/A N/A S
-voltage {float | voltage_range} S N/A N/A N/A N/A N/A S
-external_shutoff_condition expression S N/A N/A N/A N/A N/A S
-internal S N/A N/A N/A N/A N/A S
-user_attributes string_list N/A N/A N/A N/A N/A N/A S EDI - query by "getCPFUserAttributes"
-peak_ir_drop_limit float N/A N/A N/A N/A N/A N/A S
-average_ir_drop_limit float N/A N/A N/A N/A N/A N/A S
386 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IUS IUS
Ver CLP PD RC ET EDI Comments
Verilog VHDL
create_power_switch_rule 1.1
-name string S N/A N/A N/A N/A S S
-domain power_domain S N/A N/A N/A N/A S S
-external_power_net net S N/A N/A N/A N/A N/A S
-external_ground_net net S N/A N/A N/A N/A N/A S
create_state_retention_rule
-name string 1.1 S S S S S S S
-domain power_domain 1.1 S S S S S S S
-instances instance_list 1.1 S S S S S S S
8.2s1
-exclude instance_list 1.1 S 8.2s16 S S N/A S
6
-restore_edge expression 1.1 S 8.1 8.1 S S U S
-save_edge expression 1.1 S 8.1 8.1 S S U S
-restore_precondition expression 1.1 NP 8.1 8.2 S N/A N/A N/A
-save_precondition expression 1.1 NP 8.1 8.2 S N/A N/A N/A
-target_type {flop|latch|both} 1.1 S U U S S N/A S
-secondary_domain domain 1.1 S 8.1 8.1 S N/A U S
define_library_set 1.1
-name library_set S N/A N/A N/A S N/A S
-libraries list S N/A N/A N/A S N/A S
-user_attributes string_list N/A N/A N/A N/A N/A N/A S
end_design 1.1 S S S S S S S
end_macro_model 1.1 S 8.2 8.2 U S S S
end_power_mode_control_group 1.1 NP 9.2 9.2 NP N/A U S
get_parameter 1.1 NP NP NP NP N/A U
identify_always_on_driver 1.1
-pins pin_list N/A NP NP N/A S S S
-no_propagation N/A NP NP N/A S S S
387 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IUS IUS
Ver CLP PD RC ET EDI Comments
Verilog VHDL
identify_power_logic 1.1
-type isolation N/A N/A N/A N/A S N/A S EDI - only "isolation" is allowed for -type
-instances instance_list N/A N/A N/A N/A S N/A S
-module name N/A N/A N/A N/A S N/A S
identify_secondary_domain 1.1
-secondary_domain domain N/A 8.1 8.1 N/A N/A N/A S
-instances instance_list N/A 8.1 8.1 N/A N/A N/A S
-cells cell_list N/A 8.1 8.1 N/A N/A N/A S
-domain power_domain N/A 8.1 8.1 N/A N/A N/A S
-from power_domain N/A 8.1 8.1 N/A N/A N/A S
-to power_domain N/A 8.1 8.1 N/A N/A N/A S
include 1.1 S S S U S N/A S
set_array_naming_style 1.1 S NP NP N/A S N/A S
set_cpf_version 1.1 S S S S S S S
set_design 1.1
-ports port_list S S S S S S S
-honor_boundary_port_domain N/A N/A N/A S N/A N/A S
-parameters parameter_value_list N/A N/A N/A NP N/A U S
set_equivalent_control_pins 1.1
-master pin S N/A N/A N/A N/A U S
-pins pin_list S N/A N/A N/A N/A U S
-domain domain S N/A N/A N/A N/A U S
-rules rule_list S N/A N/A N/A N/A U S
set_floating_ports 1.1 S NP NP N/A S N/A N/A
set_hierarchy_separator 1.1 S S S S S S S
388 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IUS IUS
Ver CLP PD RC ET EDI Comments
Verilog VHDL
set_input_voltage_tolerance 1.1
-ports port_list S U U N/A N/A N/A N/A
-bias [float:]float S U U N/A N/A N/A N/A CLP :Ranges is unS
set_instance
-design design 1.1 S S S NP S S S
-model macro_model 1.1 S S S NP S S S
-port_mapping port_mapping_list 1.1 S 6.2 6.2 NP S S S
-domain_mapping domain_mapping_list 1.1 S 8.2 8.2 NP S S S
-parameter_mapping parameter_mapping_list 1.1 S N/A N/A NP N/A U S
set_macro_model 1.1 S 8.2 8.2 NP S S S
set_power_mode_control_group 1.1
-name group NP 9.2 9.2 NP N/A U S
-domains domain_list NP 9.2 9.2 NP N/A U S
-groups group_list NP 9.2 9.2 NP N/A U N/A
set_power_target 1.1
-leakage float N/A N/A N/A N/A S N/A N/A
-dynamic float N/A N/A N/A N/A S N/A N/A
set_power_unit 1.1 N/A N/A N/A N/A S N/A S
set_register_naming_style 1.1 S NP NP N/A S U S
set_switching_activity 1.1 N/A
-all NP NP N/A S N/A S
-pins pin_list NP NP N/A S N/A S
-instances instance_list NP NP N/A S N/A S
-hierarchical NP NP N/A S N/A S
-probability float NP NP N/A S N/A S
-toggle_rate float NP NP N/A S N/A S
-clock_pins pin_list NP NP N/A N/A N/A N/A
-toggle_percentage float NP NP N/A N/A N/A N/A
389 -mode mode
January 31, 2010 Cadence Methodology Guide 2011 CadenceNP NP
Design Systems, N/AAll rights
Inc. N/A reserved
N/A S
IUS IUS
Ver CLP PD RC ET EDI Comments
Verilog VHDL
set_time_unit 1.1 N/A 8.2s8 8.2s8 N/A S N/A S
set_wire_feedthrough_ports 1.1 S NP NP N/A S N/A S
upd_isolation_rules 1.1
-names rule_list S U U N/A S S S
-location {from | to} S U U N/A S S S
-within_hierarchy instance U N/A N/A N/A S N/A S
-cells cell_list S N/A N/A N/A S S S
-prefix string S N/A N/A N/A S S S
-open_source_pins_only S N/A N/A N/A N/A N/A S
upd_level_shifter_rules 1.1
-names rule_list S U U N/A S S S
-location {from | to} S U U N/A S N/A S
-within_hierarchy instance NP P P N/A S N/A S
-cells cell_list S U U N/A S S S
-prefix string S U U N/A S S S
upd_nominal_condition 1.1
-name condition N/A N/A N/A N/A S N/A S
-library_set library_set N/A N/A N/A N/A S N/A S
upd_power_domain
-name domain 1.1 S 8.2s8 8.2 s8 N/A N/A N/A S
-primary_power_net net 1.1 S N/A N/A N/A N/A N/A S
-primary_ground_net net 1.1 S N/A N/A N/A N/A N/A S
-equivalent_power_nets list_of_power_nets 1.1 S NP NP N/A N/A N/A S
-equivalent_ground_nets list_of_ground_nets 1.1 S NP NP N/A N/A N/A S
-pmos_bias_net net 1.1 S N/A N/A N/A N/A N/A N/A
-nmos_bias_net net 1.1 S N/A N/A N/A N/A N/A N/A
EDI - query by
-user_attributes string_list 1.1 N/A NP NP N/A N/A N/A S
"getCPFUserAttributes"
-transition_slope [float:]float 1.1 N/A 8.2s8 8.2 s8 N/A N/A N/A N/A
-transition_latency {from_nom latency_list} 1.1 N/A U U N/A N/A N/A N/A
-transition_cycles {from_nom cycle_list clock_pin} 1.1 N/A U U N/A N/A N/A N/A
390 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IUS IUS
Ver CLP PD RC ET EDI Comments
Verilog VHDL
upd_power_mode
-name mode 1.1 N/A N/A N/A N/A S N/A S
-activity_file file 1.1 N/A N/A N/A N/A S N/A N/A
-activity_file_weight weight 1.1 N/A N/A N/A N/A S N/A N/A
-sdc_files sdc_file_list 1.1 N/A N/A N/A N/A S N/A S
-setup_sdc_files sdc_file_list 1.1 N/A NP NP N/A N/A N/A N/A
-hold_sdc_files sdc_file_list 1.1 N/A NP NP N/A N/A N/A N/A
-peak_ir_drop_limit domain_voltage_list 1.1 N/A N/A N/A N/A N/A N/A S
-average_ir_drop_limit domain_voltage_list 1.1 N/A N/A N/A N/A n/A N/A S
-leakage_power_limit float 1.1 N/A N/A N/A N/A N/A N/A N/A
-dynamic_power_limit float 1.1 N/A N/A N/A N/A N/A N/A N/A
upd_power_switch_rule
-name string 1.1 S N/A N/A N/A N/A S S
-enable_condition_1 expression 1.1 S N/A N/A N/A N/A S S
-enable_condition_2 expression 1.1 S N/A N/A N/A N/A S S
-acknowledge_receiver expression 1.1only S N/A N/A N/A N/A N/A S
-acknowledge_receiver_1 expression 1.1 S NP NP N/A N/A N/A S
-acknowledge_receiver_2 expression 1.1 S NP NP N/A N/A N/A S
-cells cell_list 1.1 S N/A N/A N/A N/A N/A S
-gate_bias_net power_net 1.1 U N/A N/A N/A N/A N/A N/A
-prefix string 1.1 S N/A N/A N/A N/A N/A S
-peak_ir_drop_limit float 1.1 N/A N/A N/A N/A N/A N/A S
-average_ir_drop_limit float 1.1 N/A N/A N/A N/A N/A N/A S
upd_state_retention_rules 1.1
-names rule_list S N/A N/A N/A S S S RC-not complete S
-cell_type string S N/A N/A N/A S S S
RC: -cells options have some limitations
-cells cell_list S N/A N/A N/A S S S
when multiple cells are given
-set_reset_control S N/A N/A N/A N/A N/A N/A
391 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Library Related
Legend
P Planned
S Supported
U Unsupported
NP Not Planned
N/A Not Applicable
392 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IUS IUS
Ver CLP PD RC ET EDI Comments
Verilog VHDL
define_always_on_cell 1.1
-cells cell_list S S NP N/A S S S
-library_set library_set N/A N/A N/A N/A S S S
-power_switchable LEF_power_pin S N/A N/A N/A N/A N/A S
-ground_switchable LEF_ground_pin S N/A N/A N/A N/A N/A S
-power LEF_power_pin S N/A N/A N/A N/A N/A S
-ground LEF_ground_pin S N/A N/A N/A N/A N/A S
define_isolation_cell 1.1
-cells cell_list S S NP N/A S S S
-library_set library_set N/A S NP N/A S S S
-always_on_pins pin_list S S NP N/A S S S
-power_switchable LEF_power_pin S N/A N/A N/A N/A N/A S
-ground_switchable LEF_ground_pin S N/A N/A N/A N/A N/A S
-power LEF_power_pin S N/A N/A N/A N/A N/A S
-ground LEF_ground_pin S N/A N/A N/A N/A N/A S
-valid_location { from | to | on | off} S U U N/A S N/A S
-enable pin S S NP N/A S S S
-no_enable {high|low|hold} S U NP N/A N/A N/A 8.1
-non_dedicated S NP NP N/A N/A N/A S
393 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IUS IUS
Ver CLP PD RC ET EDI Comments
Verilog VHDL
define_level_shifter_cell 1.1
-cells cell_list S U U N/A S S S
-library_set library_set N/A U U N/A S S S
-always_on_pins pin_list N/A U U N/A S S S
-input_voltage_range {voltage |
S U U N/A S N/A S
voltage_range}
-output_voltage_range {voltage |
S U U N/A S N/A S
voltage_range}
-ground_input_voltage_range {voltage |
S U U N/A S N/A
voltage_range}
8.1
-ground_output_voltage_range {voltage |
S U U N/A S N/A
voltage_range}
-direction {up|down|bidir} S U U N/A S S S
-input_power_pin LEF_power_pin S N/A N/A N/A N/A N/A S
-output_power_pin LEF_power_pin S N/A N/A N/A N/A N/A S
-input_ground_pin LEF_ground_pin S N/A N/A N/A N/A N/A S
-output_ground_pin LEF_ground_pin S N/A N/A N/A N/A N/A S
-ground LEF_ground_pin S N/A N/A N/A N/A N/A S
-power LEF_power_pin S N/A N/A N/A N/A N/A S EDI - these are for ground shifting
-enable pin S U NP N/A S U S
RC - valid_location either S from
-valid_location {to | from | either} N/A U NP N/A S N/A S
9.1.200 onwards.
394 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IUS IUS
Ver CLP PD RC ET EDI Comments
Verilog VHDL
define_open_source_input_pin 1.1
-cells cell_list S NP NP N/A N/A N/A S
-pin pin S NP NP N/A N/A N/A S
-library_set library_set N/A NP NP N/A N/A N/A S
define_power_clamp_cell 1.1
-cells cell_list S N/A N/A N/A N/A N/A N/A
-data pin S N/A N/A N/A N/A N/A N/A
-power pin S N/A N/A N/A N/A N/A N/A
-ground pin S N/A N/A N/A N/A N/A N/A
-library_set library_set N/A N/A N/A N/A N/A N/A N/A
define_power_switch_cell
-cells cell_list 1.1 S N/A N/A N/A N/A N/A S
-library_set library_set 1.1 N/A N/A N/A N/A N/A N/A S
-stage_1_enable expression 1.1 S N/A N/A N/A N/A N/A S
-stage_1_output expression 1.1 S N/A N/A N/A N/A N/A S
-stage_2_enable expression 1.1 S N/A N/A N/A N/A N/A S
-stage_2_output expression 1.1 S N/A N/A N/A N/A N/A S
-type {footer|header} 1.1 S N/A N/A N/A N/A N/A S
-enable_pin_bias [float:]float 1.1 S N/A N/A N/A N/A N/A N/A
-gate_bias_pin LEF_power_pin 1.1 U N/A N/A N/A N/A N/A N/A
-power_switchable LEF_power_pin 1.1 S N/A N/A N/A N/A N/A S
-power LEF_power_pin 1.1 S N/A N/A N/A N/A N/A S
-ground_switchable LEF_ground_pin 1.1 S N/A N/A N/A N/A N/A S
-ground LEF_ground_pin 1.1 S N/A N/A N/A N/A N/A S
-on_resistance float 1.1only N/A N/A N/A N/A N/A N/A S
-stage_1_on_resistance float 1.1 N/A N/A N/A N/A N/A N/A S
-stage_2_on_resistance float 1.1 N/A N/A N/A N/A N/A N/A S
-stage_1_saturation_current float 1.1 N/A N/A N/A N/A N/A N/A S
-stage_2_saturation_current float 1.1 N/A N/A N/A N/A N/A N/A S
EDI - these are used by
-leakage_current float 1.1 N/A N/A N/A N/A N/A N/A S
addPowerSwitch
395 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
IUS IUS
Ver CLP PD RC ET EDI Comments
Verilog VHDL
define_related_power_pins 1.1
-data_pins pin_list S N/A N/A N/A N/A N/A S
-cells cell_list S N/A N/A N/A N/A N/A S
-library_set library_set N/A N/A N/A N/A N/A N/A S
-power LEF_power_pin S N/A N/A N/A N/A N/A S
-ground LEF_ground_pin S N/A N/A N/A N/A N/A S
define_state_retention_cell 1.1
-cells cell_list S S NP N/A S S S
-library_set library_set N/A N/A NP N/A S S S
-cell_type string S S NP N/A S N/A S
-always_on_pins pin_list S S NP N/A S S S
-clock_pin pin S S NP N/A S S S
-restore_function expression S S NP N/A S S S
-save_function expression S S NP N/A S S S
-restore_check expression NP U NP N/A N/A S S
-save_check expression NP U NP N/A N/A S S
-always_on_componets component_list NP S NP N/A N/A N/A N/A
-power_switchable LEF_power_pin S N/A NP N/A N/A N/A S
-ground_switchable LEF_ground_pin S N/A NP N/A N/A N/A S
-power LEF_power_pin S N/A NP N/A N/A N/A S
-ground LEF_ground_pin S N/A NP N/A N/A N/A S
396 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved
Whats new in V1.1
Improved navigation
Moved most custom shows to normal hyperlinks
Added back button to return to main topic
Updates
Updated LP flow section and organization
New
Added Name Map flow limitations
Added verification planning section
Added voltage regulator discussion
Added level shifter vs combo isolation cell discussion
PIA usage and examples
New naming style consistency section
397 January 31, 2010 Cadence Methodology Guide 2011 Cadence Design Systems, Inc. All rights reserved