UPF For Low Power 2014
UPF For Low Power 2014
UPF For Low Power 2014
John Biggs
Erich Marschner
Sushma Honnavara-Prasad
David Cheng
Shreedhar Ramachandra
Jon Worthington
Nagu Dhanwada
Welcome and Introductions
Erich Marschner
Verification Architect
Mentor Graphics
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 2
Tutorial #2
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 3
Takeaways
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 4
Presenters
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 5
Other Contributors
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 6
Agenda
Welcome & Introductions Hard IP Modeling with Liberty
– Erich Marschner and Verilog
– Sushma Honnavara-Prasad
Low Power Design and
Verification Challenges Power Management Cell
– Erich Marschner Commands and Power Models
– David Cheng
Introduction to UPF
– John Biggs Low Power Design Methodology
for IP Providers
UPF Basic Concepts and
– John Biggs
Terminology
– Shreedhar Ramachandra SoC-Level Design and
Verification Challenges
UPF Semantics and Usage
– Sushma Honnavara-Prasad
– Erich Marschner
Adopting UPF
– Sushma Honnavara-Prasad
BREAK
– Shreedhar Ramachandra
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 7
Low Power Design and
Verification Challenges*
Erich Marschner
Verification Architect
Mentor Graphics
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 8
Low Power Design Challenges
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 9
SoC Low Power Design Challenges
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 10
Three Phases of a Power Aware Flow
– TLM
– Firmware
Design
Design (RTL and IP) Design & Analysis & Verification
– RTL module integration optimization and test
design/selection
– IP selection and
Chip integration Implementation
Analysis & Verification &
Implementation Optimization
closure test
– Synthesis
– Physical design
Using UPF for Low Power Design and Verification © 2014 IBM 3 March 2014 11
Power Analysis is Required Throughout*
* But with varying criteria:
TPC/IPC performance
Architecture
Greatest power
savings opportunity
Floorplan
(design exploration)
Power minimization
faster analysis, models
(arch. verif.)
can afford lower
accuracy / detail
RTL
reliability analysis
Tech. map
Timing, noise,
Automated / Manual
power reduction Design
closure
Need
higher accuracy, can Place & route
afford longer run times
Signoff
Using UPF for Low Power Design and Verification © 2014 IBM 3 March 2014 12
No Single Metric Handles Everything
Battery Life
–Total chip power over long time period
Package Inductance
–Total chip power over short time period
Reliability / Electromigration
–Very local power over a very long time period
Static IR Drop
–Local power over moderate time period
Decap / Transient IR drop
–Local power over very short time periods
Using UPF for Low Power Design and Verification © 2014 IBM 3 March 2014 13
Power-Awareness Needed in Each Phase
Design Phase Low Power Design Activities
ESL Design
• Explore architectures and algorithms for power efficiency
• Map functions to sw and/or IP blocks for power efficiency
Design & Analysis &
• Choose voltages and frequencies
Validation
mapping optimization • Evaluate power consumption for each operational mode
• Generate budgets for power, performance, area
RTL Design
• Generate RTL to match system-level model
• Select IP blocks
Design & Analysis & Verification
• Analyze and optimize power at module and chip levels
integration optimization & Test • Analyze power implications of test features
• Check power against budget for various modes
Using UPF for Low Power Design and Verification © 2014 IBM 3 March 2014 14
Power Analysis Flow at ESL
Simulator
SystemC
Trace/Execution driven
Transaction Level Models
Trace/Execution driven Cycle Power Models
Random Stimulus Accurate Models
Generators
Power Calculation
Power
Optimization and Refinement
Reports
Using UPF for Low Power Design and Verification © 2014 IBM 3 March 2014 15
Power Analysis Flow at RTL
Simulator
VHDL/Verilog
RTL Description
Power Models
Random Stimulus
Generators
Power Calculation
Power
Optimization and Refinement
Reports
Power Implementation
Intent Level
Using UPF for Low Power Design and Verification © 2014 IBM 3 March 2014 16
System-to-Silicon
Power Aware Design Flow
RTL Design
Power
Design & Analysis & Verification
Models Integration optimization & Test
Implementation
Optimization Verification
Analysis
& Closure & Test
Using UPF for Low Power Design and Verification © 2014 IBM 3 March 2014 17
Where Are the Models?
No standard today
gate level models
Design & Analysis & Validatio
– RTL tasks rely upon gate level mapping optimization n
RTL Design
What about IP blocks?
Power
– Behavioral models are available Models Design & Analysis & Verificatio
for ESL & RTL, but without power Integration optimization n & Test
Implementation
We have a problem
– Gate level models can be used Optimization
Analysis
Verificatio
& Closure n & Test
for IP power simulations, but
simulation time and resources
are prohibitive
Using UPF for Low Power Design and Verification © 2014 IBM 3 March 2014 18
Must Handle Different Kinds of Models
Function
Algorithmic Spec
parameters
(SystemC)
Untimed Protocol
Transaction
Level
(SystemC) Timed Protocol
Using UPF for Low Power Design and Verification © 2014 IBM 3 March 2014 19
Modeling Paradigms and Use Scenarios
Using UPF for Low Power Design and Verification © 2014 IBM 3 March 2014 20
Modeling Paradigms and Use Scenarios
FIFO
Models clocking in detail, i.e all clocks ticking.
Interface Pin & Cycle Accurate Model full pin and cycle timing at block interfaces.
Behaves as RTL but optimized internally for speed.
Using UPF for Low Power Design and Verification © 2014 IBM 3 March 2014 21
Modeling Paradigms and Use Scenarios
RTL Model
RTL Model
Clock1
Clock2
Model used for implementation via RTL synthesis.
Completely cycle accurate (external and internal).
FIFO
Logic between clock ticks is simulated.
Inter-Block Pin & Cycle Accurate
Using UPF for Low Power Design and Verification © 2014 IBM 3 March 2014 22
SoC Low Power Verification Challenges
Modeling issues
– Are all the low power features
correctly represented?
Capacity issues
– Number of domains
– Size of the chip
Complexity issues
– Chip-level power state complexity
– Complex interactions between blocks
Coverage issue
– Power state coverage
– System level use cases Source: Synopsys 2012 global user survey
– H/W-S/W co-verification
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 23
So Where Does UPF Fit In?
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 24
Introduction to UPF
John Biggs
Senior Principal Engineer
ARM
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 25
What is UPF?
Power Intent
File(s)
HDL/
RTL
An Evolving Standard
And HDLs
– SystemVerilog, Verilog, VHDL P&R
For Verification
– Simulation or Emulation
– Static/Formal Verification Power Intent
File(s)
And for Implementation Verilog
(Netlist)
– Synthesis, DFT, P&R, etc.
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 26
Components of UPF
Power Domain:
– Groups of elements which share a common set of power
supply requirements
Isolation Strategies
– How the interface to a power domain should be isolated
when its primary power supply is removed
Retention Strategies
– What registered state in a power domain should be
retained when its primary power supply is removed
Repeater Strategies
– How domain ports should be bufffered
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 27
P1801: IEEE-SA Entity Based Work Group
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 28
IEEE 1801 (UPF) timeline
2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 29
Key:
- Accellera UPF-1.0 (2007)
- set_retention
- set_retention_control
Power States: - set_isolation
- add_port_state - set_isolation_control
- create_pst - set_level_shifter
- add_pst_state
Implementation:
- map_retention_cell
- map_isolation_cell
- map_level_shifter_cell
- map_power_switch_cell
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 30
Key:
- Accellera UPF-1.0 (2007)
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 31
Key:
- Accellera UPF-1.0 (2007)
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 32
The IEEE 1801-2013 Standard
Motivation
– Address known issues with 1801-2009
• Improve the clarity and consistency
– Syntax clarifications, semantic clarifications
• Some restrictions, some additions
– Include limited number of critical enhancements
• Improved support for macro cell modeling
• Attribution library pins/cells with low power meta data
Additional contributions:
– Cadence: Library Cell Modeling Guide Using CPF
– Cadence: Hierarchical Power Intent Modeling Guide Using CPF
– Si2: Common Power Format Specification, Version 2.0
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 33
The IEEE 1801-2013 Standard
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 34
35
UPF Basic Concepts
and Terminology*
Shreedhar Ramachandra
Staff Engineer
Synopsys
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 36
Functional Intent vs. Power Intent
What is the difference?
Functional intent specifies Power intent specifies
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 37
How Power Intent Affects
Implementation
The power intent will
have an impact on the
implementation of the
design.
– Domains may need
separate
floorplans/regions.
– Cells may need
special power routing.
This section will
introduce power
intent concepts in UPF
and how they relate
to implementation.
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 38
Power Domains
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 39
UPF - Power Domains Domain names are created
in the new scope (P2)
Domain names are created
in the current scope (Sub)
Sub
create_power_domain
set_scope Sub P1 PwrCtl P2
create_power_domain PD_Sub \
-include_scope
M1 M2 M1 M2
create_power_domain PD_Proc1 \
-elements {P1}
create_power_domain PD_Proc1Mem \ Sub/PD_Sub
Sub
-elements {P1/M1 P1/M2} PwrCtl
set_scope P2
Sub/PD_Proc1 PD_Proc2
create_power_domain PD_Proc2 \
-include_scope P1 P2
create_power_domain PD_Proc2Mem \
-elements {P2/M1 P2/M2}
M1 M2 M1 M2
Sub/PD_Proc1Mem PD_Proc2Mem
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 40
Power Supply Network
Digital2
VDDSS1
Analog
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 41
UPF Power Supply Networks
- Supply Sets Supply Nets Supply Set Functions
power
A group of related supply nets PD.primary
ground
power
Functions represent nets Main ground
nwell
– which can be defined later pwell
deepnwell
Electrically complete model deeppwell
– power, ground, etc.
create_power_domain PD \
Predefined supply sets -supply {primary} \ (predefined)
-supply {backup} (user-defined)
– for domains
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 42
How Logical Supply Networks Relate
to Real World Connections
The functions in a supply set will translate into real
supply net connections.
– Often a domain’s ‘primary’ function will be
implemented as the rails within a floorplan region,
VDD and VSS in this example.
create_supply_set top_ss\
-function {power VDD} \
-function {ground VSS}
associate_supply_set top_ss\
-handle PD.primary
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 43
Power Management Techniques
Power Gating
Multi-voltage
Bias Voltage
Dynamic Voltage and Frequency Scaling
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 44
Power Gating
Power reduction technique
to save leakage power by
VDD shutting off, or powering
down, unnecessary logic
on/off Sleepin Sleepout
Requires consideration of
isolating and state
VSS retention.
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 45
Multi-Voltage
0.8
Power savings Design Top
V
voltage 0.8
for power savings Macro V
1.2 0.8
Macro V Macro V
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 46
Bias Voltage
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 47
Dynamic Voltage and Frequency
Scaling
0.8
Power Saving Technique to V
0.6
change the voltage and/or Design Top V
clock frequency while the chip 0.6
0.8
is running to save power FSM V 0.8
Block2 V
0.6
V
1.2
Block1 V
0.8
V 0.8
Macro V
0.6
V
1.2 0.8
Macro V
0.8
Macro V
0.6
V V
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 48
Power Management Architecture
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 49
Power States and Transitions
Using UPF for Low Power Design and Verification 3 March 2014 50
UPF Power States
UPF uses ‘add_power_state’ Proc1/PD_Proc P M
to define the states of
supplies.
Proc1
P1
add_power_state PD_Mem \
-state RUN {-logic_expr {primary ==
ON_08}} \ P
-state OFF {-logic_expr {primary == OFF}} M1 M2
Proc1/PD_Mem
add_power_state PD_Proc \
-state Normal { \
-logic_expr {primary == ON_10 && \
memory == ON_08 && \
PD_Mem == RUN} } \
PD_PROC primary memory PD_MEM
-state Sleep { \
-logic_expr {primary == OFF && \ Normal ON_10 ON_08 RUN
memory == ON_08 && \
PD_Mem == RUN} } \ Sleep OFF ON_08 RUN
-state Hibernate { \
-logic_expr {primary == OFF && \ Hibernate OFF OFF OFF
memory == OFF && \
PD_Mem == OFF} }
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 51
Supply Switching/Power Gating
vdd
Supplies can be switched off to
save power when they are not
needed. This can be done off or on enable
chip.
On-chip switching can be
implemented by number of vdds
methods including fine/course
grain switch cells. vss
UPF will allow a switch construct to
be declared to represent the
switching state of the supplies.
The supplies, their states and
controlling signals are all defined
however how it is implemented is
not specified.
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 52
UPF - Power Gating
Proc1/PD_Proc P M
nPWR
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 53
Coarse Grain Switch Implementation
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 54
Isolation Cells
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 55
UPF Isolation Strategies
Proc1/PD_Proc P M
set_isolation ISO_Proc \
Proc1
P1
-domain PD_Proc \
-applies_to outputs \ nPWR
-clamp_value 0 \
P
-isolation_signal mISO \
-isolation_sense low \ M1 M2
use_interface_cell ISOX1 \
-domain PD_Mem \
-strategy ISOMem \ PD_PROC primary memory PD_MEM
-lib_cells {TechISOX1}
Normal ON_10 ON_08 RUN
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 56
Level Shifters
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 57
LS
-location self
P
LS
LS
M1 M2
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 58
State Retention
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 59
RR
UPF Retention Strategies
Proc1/PD_Proc P M
SRb
set_retention RET1 \
RR
Proc1
P1
-domain PD_Proc \
-save_signal {SRb posedge} \ nPWR
-domain PD_Proc \
-lib_cells {TechRRX4}
PD_PROC primary memory PD_MEM
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 60
Multi-Voltage Special Cell Requirement
Power
Level Isolation Retention Always-
Switches
Shifters Cells Registers on Logic
(MTCMOS)
0.9V Multiple
0.7V 0.9V
Voltage (MV)
Domains
Multi-Supply
OFF
with Shutdown
0.9V
No State
0.9V 0.9V
Retention
OFF Multi-Voltage
with
0.9V
0.7V 0.9V
Shutdown
OFF
Multi-Voltage
with Shutdown
SR
0.9V
& State
0.7V 0.9V Retention
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 61
UPF Semantics and Usage
Erich Marschner
Verification Architect
Mentor Graphics
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 62
A Deeper Look at UPF Power Intent
Logic Hierarchy
Power Domains
Power Domain Supplies
Supply Sets
Supply Connections
Power Related Attributes
Power States and Transitions
Power Domain State Retention
Power Domain Interface Management
Supply Network Construction
Supply Equivalence
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 63
Logic Hierarchy
Design Hierarchy
– A hierarchical description in HDL
Logic Hierarchy
– An abstraction of the design hierarchy (instances only)
Scope
– An instance in the logic hierarchy
Design Top
– The topmost scope/instance in the logic hierarchy to which a
given UPF file applies
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 64
Logic Hierarchy
Logic Hierarchy
– Instances only P1 PwrCtl P2
– UPF objects
• Created in instance scopes M1 M2 M1 M2
• Referenced with hierarchical
names
Mapping to Floorplan
– May or may not reflect
implementation
• Depends upon the user and tools
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 65
Navigation
set_design_top DUT TB
set_design_top TB/Sub
Sub SB
set_scope
set_scope .
P1 PwrCtl P2
set_scope P1/M1
set_scope ..
set_scope M2 M1 M2 M1 M2
set_scope /P2
Note:
These are all instance names
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 66
Logic Hierarchy
module
instance
Highconn Top
of a port
Lowconn functional
of a port element
A B
C D E F
macro
instance
M1 M2 M3 M4 M5 M6 M7 M8
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 67
Power Domains
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 68
Partitioning the Logic Hierarchy - 1
create_power_domain PD1 -elements {.} …
PD1
Top
A B
C D E F
M1 M2 M3 M4 M5 M6 M7 M8
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 69
Partitioning the Logic Hierarchy - 2
create_power_domain PD2 -elements {A} …
PD1
PD1 Top
Lower
Boundary
PD2
PD2 A B
Upper
Boundary
C D E F
M1 M2 M3 M4 M5 M6 M7 M8
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 70
Partitioning the Logic Hierarchy - 3
create_power_domain PD3 -elements {B} …
PD1
Top
PD2 PD3
A B
C D E F
M1 M2 M3 M4 M5 M6 M7 M8
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 71
Partitioning the Logic Hierarchy - 4
create_power_domain PD4 -elements {A/D B/E} -atomic …
PD1
Top
PD2
Upper
Boundary PD2 PD3
A B
PD2
Lower
Boundary PD4
C D E F
M1 M2 M3 M4 M5 M6 M7 M8
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 72
Partitioning the Logic Hierarchy - 5
create_composite_domain PD23 -subdomains {PD2 PD3} …
PD1
Top
PD23
Upper
Boundary PD2
(PD2) (PD3)
PD3
A B
PD23
PD23
Lower
Boundary PD4
C D E F
M1 M2 M3 M4 M5 M6 M7 M8
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 73
Power Domain Boundaries
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 74
Domain Supplies
Primary supply
– Provides the main power, ground supplies for cells in the domain
– Can also provide additional supplies (nwell, pwell, …)
Default retention supply
– Provides a default supply for saving the state of registers
Default isolation supply
– Provides a default supply for input or output isolation
Additional user-defined supplies
– Can be defined for particular needs (e.g., hard macros)
Available supplies
– Can be used by tools to power buffers used in implementation
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 75
Power Domain Supply Sets
create_power_domain PD1 -supply
… {AO} …
P R I AO
Primary, PD1
Retention, Top User-
Isolation Defined
Supplies Supply
PD2
(PD2) PD3
(PD3)
A B
PD23
PD4
C D E F
M1 M2 M3 M4 M5 M6 M7 M8
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 76
Supply Sets
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 77
Supply Sets Supply Nets Supply Set Functions
power
PD.primary ground
A group of related supply nets
power
Functions represent nets Main ground
nwell
– which can be defined later
pwell
deepnwell
Electrically complete model deeppwell
– power, ground, etc.
create_power_domain PD \
Predefined supply sets -supply {primary} \ (predefined)
-supply {backup} (user-defined)
– for domains
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 78
Associating Supply Sets 1
associate_supply_set PD1.primary -handle PD2.primary
P R I AO
PD1
Supply Top
Set
Association
P
PD2
(PD2) PD3
(PD3)
A B
PD23
PD4
C D E F
M1 M2 M3 M4 M5 M6 M7 M8
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 79
Associating Supply Sets 2
associate_supply_set PD1.AO -handle PD3.AO
P R I AO
PD1
Top Supply
Set
Association
P AO
PD2
(PD2) PD3
(PD3)
A B
PD23
PD4
C D E F
M1 M2 M3 M4 M5 M6 M7 M8
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 80
Supply Connections
Implicit connections
– Primary supply is implicitly connected to std cells
Automatic connections
– Supplies can be connected to cell pins based on pg_type
Explicit connections
– Supplies can be connected explicitly to a given pin
Precedence rules apply
– Explicit overrides Automatic overrides Implicit
Supply states determine cell behavior
– Cells function when supply is on,
– Cells outputs are corrupted when supply is off
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 81
Implicit Supply Connections
…
P R I AO
PD1
Top
P AO
PD2
(PD2) PD3
(PD3)
A B
PD23
Implicit
Connections:
power, ground PD4
only C D E F
M1 M2 M3 M4 M5 M6 M7 M8
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 82
PG Types
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 83
Automatic Supply Connections
connect_supply_set PD3.AO -elements {B/F/M7 B/F/M8}
P R I AO
PD1
Top
P AO
PD2
(PD2) PD3
(PD3)
A B
PD23
Automatic
Connections
PD4 based on
C D E F pg_type
M1 M2 M3 M4 M5 M6 M7 M8
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 84
PG Type-Driven Connections
Automatic connection
connect_supply_set PD3.AO -elements {B/F/M7 B/F/M8} \
-connect {power primary_power} \
-connect {ground primary_ground}
Implicit connection
– Equivalent to
connect_supply_set PD2.primary -elements {.} \
-connect {power primary_power} \
-connect {ground primary_ground}
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 85
Explicit Supply Connections
connect_supply_net PD3.AO.power -ports {B/F/M7/VDDB …}
P R I AO
PD1
Top
P AO
PD2
(PD2) PD3
(PD3)
A B
PD23
Explicit
Connection
PD4 to specific
C D E F ports
M1 M2 M3 M4 M5 M6 M7 M8
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 86
Power Attributes
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 87
Predefined UPF Attributes
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 88
Attribute Definitions
UPF HDL
set_port_attributes -ports Out1 \ SystemVerilog or Verilog-2005
-attribute \
{UPF_related_power_port "VDD" (* UPF_related_power_port = "VDD",
UPF_related_ground_port = "VSS" *)
set_port_attributes -ports Out1 \
-attribute \ output Out1;
{UPF_related_ground_port "VSS“
VHDL
attribute UPF_related_power_port of
set_port_attributes -ports Out1 \ Out1: signal is "VDD";
-related_power_port "VDD" \
-related_ground_port "VSS" attribute UPF_related_ground_port of
Out1: signal is "VSS";
Liberty
– related_power_pin, related_ground_pin
– pg_type, related_bias_pins, is_macro_cell, etc.
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 89
UPF Attribute Usage
VSS VSS
receiver supply IN1 OUT1 driver supply
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 90
UPF Attribute Usage
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 91
UPF Attribute Usage
feedthrough
IN1 OUT1
unconnected
IN3 OUT3
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 92
UPF Attribute Usage
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 93
Hard Macro Supplies
receiver supply F driver supply
primary_power backup_power
Periphery
receiver supply driver supply
Core
power: (VDDB) power: (VDDB)
ground: (VSS) Data InM7 M8
Data Out ground: (VSS)
data
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 94
Supply Power States
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 95
Supply Set Power State Definition
Simple
add_power_state PD1.primary -supply \
-state {ON -logic_expr {PwrOn} -simstate NORMAL} \
-state {OFF -logic_expr {!PwrOn} -simstate CORRUPT}
More Complex
add_power_state PD1.primary -supply \
-state {RUN -logic_expr {PwrOn && !Sleep && Mains} \
-simstate NORMAL} \
-state {LOW -logic_expr {PwrOn && !Sleep && Battery} \
-simstate NORMAL} \
-state {SLP -logic_expr {PwrOn && Sleep} \
-simstate CORRUPT_ON_CHANGE} \
-state {OFF -logic_expr {!PwrOn} \
-simstate CORRUPT}
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 96
Simstates - Precedence and Meaning
lower NORMAL
– Combinational logic functions normally
– Sequential logic functions normally
NORMAL – Both operate with characterized timing
CORRUPT_STATE_ON_CHANGE
– Combinational logic functions normally
CORRUPT_STATE_ON_CHANGE – Sequential state/outputs maintained as long as
outputs are stable
CORRUPT_STATE_ON_ACTIVITY
– Combinational logic functions normally
CORRUPT_STATE_ON_ACTIVITY – Sequential state/outputs maintained as long as
inputs are stable
CORRUPT_ON_CHANGE
CORRUPT_ON_CHANGE – Combinational outputs maintained as long as
outputs are stable
– Sequential state/outputs corrupted
CORRUPT_ON_ACTIVITY
CORRUPT_ON_ACTIVITY – Combinational outputs maintained as long as
inputs are stable
– Sequential state/outputs corrupted
CORRUPT CORRUPT
– Combinational outputs corrupted
– Sequential state/outputs corrupted
higher
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 97
Domain Power States
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 98
Domain Power State Definition
Examples Examples
add_power_state PD_TOP -domain \ add_power_state PD_Mem -domain \
-state {Normal \ -state {UP \
-logic_expr \ -logic_expr {primary == ON}} \
{primary == ON && \ -state {RET \
backup == ON && \ -logic_expr {retention == ON}} \
PD_mem == UP} } \ -state {DOWN \
-state {Sleep \ -logic_expr {retention == OFF}}
-logic_expr \
{primary == OFF && \
backup == ON && \
PD_TOP .primary .backup PD_MEM
PD_mem == UP} } \
-state {Off\ Normal ON ON UP
-logic_expr \
{primary == OFF && \ Sleep OFF ON RET
backup == OFF && \
Off OFF OFF DOWN
PD_Mem == DOWN} }
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 99
Power Management Strategies
Retention strategies
– Identify registers to retain, controls/conditions, and supplies
– Must satisfy any retention constraints (clamp value attributes)
Repeater strategies
– Identify ports to be buffered and their supplies
– Input and output ports can be buffered
Isolation strategies
– Define how to isolate ports where required - control, supplies
– Actual isolation insertion is driven by source/sink power states
Level shifter strategies
– Define how to level-shift ports where required - supplies
– Actual level shifter insertion is driven by threshold analysis
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 100
Retention Strategies
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 101
Isolation Strategies
Specifying Ports
– Using -elements and -exclude_elements
– Using filters: -applies_to, -diff_supply_only, -sink, -source
Precedence Rules
– More specific rules take precedence over more generic rules
Specifying Location
– Using locations self, parent, other, and fanout
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 102
Specifying Ports
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 103
What Happens if Multiple Strategies?
A 0 1 2 3 4 5 B 0 1 2 3 4 5
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 104
Precedence Rules for Strategies
lower
higher
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 105
Interface Cell Locations
Self
– The domain for which the strategy is defined
Parent
– The domain “above” the self domain
Other
– The domains “above” and “below” the self domain
Fanout
– The domain in which the receiving logic is contained
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 106
Isolation Cell Locations
set_isolation ISO1 -domain PD2 -location …
-location other
P R I AO -diff_supply_only
Output Isolation PD1
Top
might inhibit
-location parent insertion of
Output Isolation this cell
P AO
-location self PD2
(PD2) PD3
(PD3)
Input Isolation A B -location fanout
PD23 Output Isolation
-location self (-sink PD4)
Output Isolation
PD4 -location fanout
C D E F Output Isolation
-location other (-sink PD3.AO)
Output Isolation
M1 M2 M3 M4 M5 M6 M7 M8
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 107
Other Isolation Cell Parameters
Clamp Value
– specified with
-clamp_value < 0 | 1 | any | Z | latch >
Control
– specified with
-isolation_signal <signal name>
-isolation_sense <high | low>
Supply
– specified with
-isolation_supply <supply set name>
– if not specified, uses default_isolation supply of location
• can be a single-rail cell if containing domain is always on when enabled
• otherwise typically requires a dual-rail cell
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 108
Strategy Execution Order
PD_Proc PD_Mem
Logic
Logic
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 109
Strategy Interactions
Level
Retention Repeater Isolation
Shifter
Retention -- affects affects affects
affected
Repeater -- affects affects
by
affected affected
Isolation -- affects
by by
Level affected affected affected
--
Shifter by by by
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 110
Supply Ports/Nets
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 111
“Power” (Supply) Switches
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 112
Power Switches
Examples
create_power_switch Simple \ Input and Output
-output_supply_port {vout} \ Supply
-input_supply_port {vin} \ Ports
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 113
Supply Network Construction
Commands
VDD1 VDD2 VDD3 VSS create_supply_port …
create_supply_net …
connect_supply_net …
Pwr1 Pwr2 Pwr3 Gnd
create_power_switch …
connect_supply_net …
Pwr1sw Pwr23mx
create_supply_net \
-resolved …
connect_supply_net …
PwrRes
create_supply_set \
-update
Pri
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 114
Supply Equivalence
Supply Ports/Nets/Functions
– Electrically equivalent if same/connected/associated
– Functionally equivalent if
• they are electrically equivalent, or
• they are declared functionally equivalent
- example: outputs of two switches that have same input and control
Supply Sets
– Functionally equivalent if
• both have the same required functions, and
corresponding required functions are electrically equivalent; or
• both are associated with the same supply set; or
• they are declared functionally equivalent
- Declaration works for verification only;
must be explicitly connected for implementation
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 115
A Deeper Look at UPF Power Intent
Logic Hierarchy
Power Domains For more details, read the
IEEE 1801-2013 UPF spec,
Power Domain Supplies
especially
Supply Sets Clause 4, UPF Concepts
Supply Connections
Power Related Attributes
Power States and Transitions
Power Domain State Retention
Power Domain Interface Management
Supply Network Construction
Supply Equivalence
Using UPF for Low Power Design and Verification © 2014 Mentor Graphics 3 March 2014 116
BREAK
Using UPF for Low Power Design and Verification 3 March 2014 117
Hard IP Modeling with
Liberty and Verilog
Sushma Honnavara-Prasad
Principal Engineer
Broadcom
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 118
Leaf Cells vs Macros (IPs)
Leaf cell
– An instance that has no descendants, or an instance that has
the attribute UPF_is_leaf_cell associated with it.
– In a typical ASIC flow,
• Used to denote a standard cell/IO/Analog IP etc in the design
• Have simulation models/.libs associated with them
Macros
– Also called IPs, a piece of functionality optimized for
power/area/performance
• Soft macros – handed off as synthesizable HDL (technology
agnostic)
• Hard macros – handed off as LEF/GDS (technology specific)
- Also a leaf cell
– UPF_is_macro_cell attribute allows the model to be
recognized as part of lower boundary of the domain
containing the instance
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 119
Models Dealing with Power
Implementation models
• Liberty
• LEF etc.
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 120
Liberty Attributes and UPF
Supply Attributes
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 121
Liberty Attributes and UPF
.lib UPF Purpose
is_macro_cell UPF_is_macro_cell Identify a hard-macro
- UPF_is_leaf_cell Identify a leaf-cell (all cells in
.lib are considered leaf cells)
always_on define_always_on_cell Cells that can remain on while
the domain is off
antenna_diode_type define_diode_clamp Define/describe diode clamps
is_isolation_cell define_isolation_cell Define isolation cell
isolation_cell_enable_pin -enable Identifies isolation cell enable
always_on -always_on_pins Always on Pin attribute
is_level_shifter define_level_shifter_cell Define level shifter cells
level_shifter_enable_pin -enable Enabled level shifter control
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 122
Liberty Attributes and UPF
.lib UPF Purpose
switch_cell_type create_power_switch_cell Define a power-switch cell
user_pg_type gate_bias_pin Identifies supply pin associated
with gate input
retention_cell define_retention_cell Define a retention cell
retention_pin - Identifies the retention control(s)
save_action save_function Save pin function that enables
save action
restore_action restore_function Restore pin function that enables
restore action
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 123
Example: Embedded SRAM
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 124
Embedded SRAM: Liberty
cell (SRAM) {
is_macro_cell : true;
switch_cell_type : fine_grain;
pg_pin (VDD) {
pg_type: primary_power;
voltage_name: VDD;
direction: input;
}
pg_pin (VSS) {
pg_type: primary_ground;
voltage_name: VSS;
direction: input;
}
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 125
Embedded SRAM: Liberty
pg_pin (VDDSW) {
pg_type: internal_power;
voltage_name: VDDSW;
direction: internal;
pg_function: VDD;
switch_function: pwron_in;
}
pin (iso) {
related_power_pin : VDD;
related_ground_pin : VSS;
}
}
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 126
Embedded SRAM: Liberty
pin (pwron_in) {
related_power_pin : VDD;
related_ground_pin : VSS;
switch_pin: true;
}
pin (clk) {
related_power_pin : VDDSW;
related_ground_pin : VSS;
}
pin (cs) {
related_power_pin : VDDSW;
related_ground_pin : VSS;
}
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 127
Embedded SRAM: Liberty
pin (pwron_out) {
related_power_pin : VDD;
related_ground_pin : VSS;
function: pwron_in;
}
pin (dout[0]) {
related_power_pin : VDD;
related_ground_pin : VSS;
}
pin (dout[1]) {
related_power_pin : VDD;
related_ground_pin : VSS;
}
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 128
Embedded SRAM: Power Aware HDL
assign VDDSW = pwron_in && VDD;
assign supply_on = VDDSW && !VSS;
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 129
Power Model and Power
Management Cell Commands
David Cheng
Architect
Cadence Design Systems
Using UPF for Low Power Design and Verification © 2014 Cadence 3 March 2014 130
Power Model
Using UPF for Low Power Design and Verification © 2014 Cadence 3 March 2014 131
Commands for Power Model
Commands to define a power model containing other UPF
commands
begin_power_model power_model_name [-for model_list]
<UPF commands>
end_power_model
apply_power_model power_model_name
[-elements instance_list]
[-supply_map {
{lower_scope_handle upper_scope_supply_set}*
}]
Using UPF for Low Power Design and Verification © 2014 Cadence 3 March 2014 132
Same Example - Different Colors
VDD
For static tools:
pwron_in Power pwron_out
– Only describes the Switch
boundary (the red part) float
VDDSW
– Internal is a black box clk_out
– Similar to Liberty model dout[0]
ISO
clk
cs dout[1]
ISO
we Logic Memory
periphery Array
addr dout[15]
ISO
din
iso
Using UPF for Low Power Design and Verification © 2014 Cadence 3 March 2014 133
Possible Checks in Mind
iso
Using UPF for Low Power Design and Verification © 2014 Cadence 3 March 2014 134
Power Model Description
Blue: Liberty can also describe
Red: Liberty weaker
begin_power_model
create_power_domain PD1 \ VDD
–applies_to inputs \
cs
–receiver_supply SS_VDDSW ISO
dout[1]
we Logic Memory
set_port_attributes \ periphery Array
–ports {pwron_in iso} addr dout[15]
–receiver_supply SS_VDD din
ISO
set_port_attributes \
–elements . \
iso
–applies_to outputs \
–driver_supply SS_VDD
...
Using UPF for Low Power Design and Verification © 2014 Cadence 3 March 2014 135
Power Model Description
Blue: Liberty can also describe
Red: Liberty weaker
...
VDD
set_port_attributes \
–ports {float} pwron_in Power pwron_out
Switch
–unconnected
float
VDDSW
set_port_attributes \
clk_out
–ports {clk clk_out} \
dout[0]
–feedthrough ISO
clk
set_isolation -domain PD1 \
cs
–elements {dout} \ ISO
dout[1]
Using UPF for Low Power Design and Verification © 2014 Cadence 3 March 2014 136
Liberty Description
din
(isolation_enable_condition:
iso;)
} iso
Using UPF for Low Power Design and Verification © 2014 Cadence 3 March 2014 137
Possible Checks in Mind
Do I always assert iso
VDD
before I assert pwron_in?
– Now possible with Liberty’s pwron_in Power pwron_out
isolation_enable_condition Switch
float
VDDSW
Are my power states/
clk_out
modes consistent with the
dout[0]
block’s? ISO
clk
– Liberty has no PSTs
cs dout[1]
Is my logic compatible with ISO
we Logic Memory
the asserted clamp values? periphery Array
– Liberty has no “clamp_value” addr dout[15]
ISO
Are clk and clk_out treated din
the same?
– Liberty has no “feedthrough”
iso
No check needed for float
– Liberty has no “unconnected”
Using UPF for Low Power Design and Verification © 2014 Cadence 3 March 2014 138
Two Flavors of Dynamic Simulation for a Block
Power aware
HDL alone is enough
Often “hard macros”
(Review Sushma’s slide)
Power unaware
HDL + UPF
Often “soft macros”
E.g., an HDL block that goes through implementation and
is now “hardened”
Without power model, the UPF looks just like your regular
design
Using UPF for Low Power Design and Verification © 2014 Cadence 3 March 2014 139
Power Unaware HDL
assign VDDSW = pwron_in && VDD; Note: many details abstracted out,
assign supply_on = VDDSW && !VSS; e.g.:
always @ (addr or cs or...)
//Corrupt all the inputs associated
// with VDDSW when pwron_in is 0 if (we) { write } else { read }
assign clk_int = (supply_on)?clk: ‘x’; assign dout_int = ...
assign cs_int = (supply_on)?cs: ‘x’;
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 140
Power Model (for Dynamic Tools)
A power model is similar to the block’s design UPF, except a
clear boundary that prevents higher-scope UPF constructs from
“coming into” the block
Example: two supply ports
in a block are shorted at
higher scope
With the clear boundary
of a power model, the
VDD1 VDD2
simulation tool would
treat the two supplies
still as “different set_isolation ... –diff_supply_only
supplies”
Other examples exist
Using UPF for Low Power Design and Verification © 2014 Cadence 3 March 2014 141
Summary on Power Model
Using UPF for Low Power Design and Verification © 2014 Cadence 3 March 2014 142
Modeling Power Management Cells
Using UPF for Low Power Design and Verification © 2014 Cadence 3 March 2014 143
Example: State Retention Cells
Wake
Retention flops with both save and restore
Sleep
VDD
Retention define_retention_cell -cells SR1 \
Latch -save_function {Sleep high} \
VDD_SW Q
–restore_function {Wake high} \
D State -restore_check !Clk -save_check !Clk \
Clk
Register -power_switchable VDD_SW -power VDD \
-ground VSS
RESETN
Using UPF for Low Power Design and Verification © 2014 Cadence 3 March 2014 144
Relationship to Liberty
1801-2013 Annex H contains the current mapping
– Sushma covered with some examples earlier
1801 does not have to “wait” for Liberty if special
needs arise, e.g.:
VSW VDD
Isolation cell with two control pins
a
en Y define_isolation_cell -cells myiso \
iso -power_switchable VSW -power VDD -ground VSS \
-enable iso -aux_enables en -valid_location source
vss
2
define_isolation_cell -cells IsoLL \
-power_switchable VSW -power VDD -ground VSS \
2
2
-valid_location source \
-pin_groups {{in1 out1 en1} {in2 out2 en2} \
3
3
3
Using UPF for Low Power Design and Verification © 2014 Cadence 3 March 2014 145
Work with Strategies, Example:
VSW VDD
Cell definition
define_isolation_cell -cells isoandlow \
a -power_switchable VSW –power VDD -ground VSS \
en Y
-enable iso -aux_enables en
iso
Strategy specification
vss set_isolation iso1 –domain PD1 –location self \
-isolation_signal { iso_drvr en_drvr} \
-isolation_sense { high low } -clamp_value 0
Using UPF for Low Power Design and Verification © 2014 Cadence 3 March 2014 146
Summary on 1801-2013 Library Cell
Commands
Using UPF for Low Power Design and Verification © 2014 Cadence 3 March 2014 147
Low Power Design Methodology
for IP Providers
John Biggs
Senior Principal Engineer
ARM
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 148
ARM® Cortex®-A MPCore Example
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 149
Cortex-A MPCore Power Domains
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 150
Tip: Align Power Domains and Logic Hierarchy
E
Better to align power domains with logic TOP
hierarchy if at all possible
RED BLUE
create_power_domain RED –elements {RED}
create_power_domain BLUE –elements {BLUE}
A B C D
Failing that, use -diff_supply_only option
or the -source/-sink filters
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 151
Cortex-A MPCore Power States
PD_CPU PD_FPU
RUN RUN *
DEBUG * * * * RUN
OFF OFF OFF OFF OFF OFF
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 152
Successive Refinement of Power Intent
1 IP Creation 2 IP Configuration 3 IP Implementation
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 153
A Soft IP Provider Need Only Declare Four Things:
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 154
CPU Constraints
CPU
FPU
Put everything in PD_CPU
execpt PD_FPU
1. Atomic power domains
create_power_domain PD_CPU -elements {.} \
–exclude_elements “$FPU” -atomic
create_power_domain PD_FPU –elements “$FPU” –atomic
3. Isolation requirements
set_port_attributes -model cortex_cpu -applies_to outputs \
-exclude_ports “$CPU_CLAMP1” -clamp_value 0
set_port_attributes -model cortex_cpu –ports “$CPU_CLAMP1” -clamp_value 1
set_port_attributes -elements “$FPU” -applies_to outputs -clamp_value 0
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 155
CPU Constraints (cont…)
CPU
FPU
Define PD_FPU in terms
of its supply sets
4. Power State
add_power_state PD_FPU -domain \
-state {RUN -logic_expr {primary == ON \ PD_FPU primary retention
&& default_retention == ON }} \
-state {RET -logic_expr {primary == OFF \ RUN ON ON
&& default_retention == ON }} \
RET OFF ON
-state {OFF -logic_expr {primary == OFF \
&& default_retention == OFF }} OFF OFF OFF
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 156
DEBUG
Cluster Constraints
Put everything in CPU0 CPU1
PD_CLSTR
FPU0 FPU1
except PD_L2RAM
1. “Atomic” power domains and PD_DEBUG
L2RAM
create_power_domain PD_CLSTR -elements {.} \
–exclude_elements {“$L2RAM” “$DEBUG”} -atomic
create_power_domain PD_L2RAM –elements “$L2RAM” -atomic
create_power_domain PD_DEBUG –elements “$DEBUG” -atomic
2. Retention requirements
set_retention_elements RETN_LIST -elements {.} Retain “all or nothing”
3. Isolation requirements
set_port_attributes –model cortex_cluster -applies_to outputs \
-exclude_ports “$CLSTR_CLAMP1” -clamp_value 0
set_port_attributes –model cortex_cluster –ports “$CLSTR_CLAMP1” -clamp_value 1
set_port_attributes -elements $L2RAM -applies_to outputs \
-exclude_ports “$L2RAM_CLAMP1” -clamp_value 0
set_port_attributes -elements $L2RAM –ports “$L2RAM_CLAMP1” -clamp_value 1
set_port_attributes -elements $DEBUG –applies_to outputs -clamp_value 0
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 157
DEBUG
Cluster Constraints (cont…)
CPU0 CPU1
FPU0 FPU1
Define PD_L2RAM
in terms of its L2RAM
supply sets
4. Power Domain State
add_power_state PD_L2RAM -domain \
-state {RUN -logic_expr {primary == ON \ PD_L2RAM primary retention
&& default_retention == ON }}\
-state {RET -logic_expr {primary == OFF \ RUN ON ON
&& default_retention == ON }}\
RET OFF ON
-state {OFF -logic_expr {primary == OFF \
&& default_retention == OFF}} OFF OFF OFF
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 158
DEBUG
Cluster Constraints (cont…)
CPU0 CPU1
FPU0 FPU1
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 159
Successive Refinement of Power Intent
1 IP Creation 2 IP Configuration
RTL
+ Soft IP
Constraint
UPF
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 160
Flat vs Hierarchical
Isolation
set_isolation ISO -domain PD_CPU1
-isolation_signal PMU/nISO1
-location self
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 161
Flat vs Hierarchical
Load configured IP in to
context
set_scope /CLSTR
load_upf cpu_config.upf –scope CPU1
load_upf cpu_config.upf –scope CPU2 CPU1 CPU2
create_logic_port nISO1
create_logic_port nPWR1
connect_logic_net CPU1/ISO –port nPWR1
connect_logic_net CPU1/ISO –port nISO1
Connect up to PMU
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 162
CPU Configuration
CPU
FPU
PD_FPU not
Create power control ports required
create_logic_port nPWRUP_CPU -direction in
create_logic_port nISOLATE_CPU -direction in
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 163
CPU Configuration
CPU
FPU
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 164
DEBUG
Cluster Configuration
CPU0 CPU1
FPU0 FPU1
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 165
DEBUG
Cluster Configuration
CPU0 CPU1
FPU0 FPU1
Single pin
Create retention strategy for L2RAM retention
L2RAM
control
set_retention PD_L2RAM \
-save_signal {nRETAIN_L2RAM posedge} \
-restore_signal {nRETAIN_L2RAM negedge} \
-retention_condition {nRETAIN_L2RAM} \
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 166
DEBUG
Cluster Configuration
CPU0 CPU1
FPU0 FPU1
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 167
Successive Refinement of Power Intent
1 IP Creation 2 IP Configuration 3 IP Implementation
RTL RTL
Constraint
UPF
+ Soft IP Golden Source
Constraint
+
UPF Configuration
UPF
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 168
CPU Implementation
CPU
FPU
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 169
Cluster Implementation DEBUG
CPU0 CPU1
Create supply nets and update supply set FPU0 FPU1
functions
create_supply_net VDD L2RAM
create_supply_net VDD_CLSTR
create_supply_net VDD_L2RAM
create_supply_net VDD_DEBUG Use VDD_CLSTR
create_supply_net VSS
for primary power
create_supply_set PD_CLSTR.primary -update \
-function {power VDD_CLSTR} -function {ground VSS}
create_supply_set PD_CLSTR.default_isolation -update \
-function {power VDD} -function {ground VSS} Use VDD for
isolation power
create_supply_set PD_L2RAM.primary -update \
-function {power VDD_L2RAM} -function {ground VSS}
create_supply_set PD_L2RAM.default_isolation -update \
-function {power VDD} -function {ground VSS}
create_supply_set PD_L2RAM.default_retention -update \
Use VDD for
-function {power VDD} -function {ground VSS}
retention power
create_supply_set PD_DEBUG.primary -update \
-function {power VDD_CLSTR} -function {ground VSS}
create_supply_set PD_DEBUG.default_isolation -update \
-function {power VDD} -function {ground VSS}
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 170
Cluster Implementation
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 171
DEBUG
Cluster Implementation
CPU0 CPU1
FPU0 FPU1
Create switches to fulfill the power state
create_power_switch SW_CLSTR -domain PD_CLSTR \ L2RAM
-input_supply_port {sw_in VDD} \
-output_supply_port {sw_out VDD_CLSTR} \
-control_port {sw_ctl nPWRUP_CLSTR} \
-on_state {on_state sw_in !sw_ctl}} \
-off_state {off_state {sw_ctl}}
Switch drives VDD_CLSTR with VDD
create_power_switch SW_L2RAM -domain PD_L2RAM \ when nPWRUP_CLSTR is low
-input_supply_port {sw_in VDD} \
-output_supply_port {sw_out VDD_L2RAM} \
-control_port {sw_ctl nPWRUP_L2RAM} \
-on_state {on_state sw_in {!sw_ctl}} \
-off_state {off_state {sw_ctl}}
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 172
Successive Refinement of Power Intent
1 IP Creation 2 IP Configuration 3 IP Implementation
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 173
Hand Off as Hard Macro
No need to re-verify the low power implementation
– Just need to verify its low power integration in to the SoC
Hard Macro
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 174
Hand Off as Hard Macro
Improved support for Macro Cell modelling in IEEE1801-2013
begin_power_model CLSTR
create_power_domain PD_CLSTR -elements {.}
create_supply_set PD_CLSTR.primary –update -function {power VDD} -function {ground VSS}
add_power_state PD_CLSTR –domain
-state {RUN -logic_expr {primary == DEFAULT_NORMAL &&
(!nPWRUP_CPU0 || !nPWRUP_CPU1) && !nPWRUP_L2RAM && nRETAIN_L2RAM}}
-state {RET -logic_expr {primary == DEFAULT_NORMAL &&
( nPWRUP_CPU0 && nPWRUP_CPU1) && !nPWRUP_L2RAM && !nRETAIN_L2RAM}}
-state {DMT -logic_expr {primary == DEFAULT_NORMAL &&
( nPWRUP_CPU0 && nPWRUP_CPU1) && !nPWRUP_L2RAM && nRETAIN_L2RAM}}
-state {DBG -logic_expr {primary == DEFAULT_NORMAL && !nPWRUP_DGB}
-state {OFF -logic_expr {primary == DEFAULT_CORRUPT}
end_power_model
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 175
SoC-Level Design and
Verification
Sushma Honnavara-Prasad
Principal Engineer
Broadcom
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 176
SoC Power Intent Specification
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 177
Introduction
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 178
SoC UPF Outline
load_upf $env(UPF_PATH)/core/upf/core.upf –scope u_core
load_upf $env(UPF_PATH)/iopads/upf/iopads.upf –scope u_pads
if { $env(HIER_MODE) eq “TRUE” } {
load_upf $env(UPF_PATH)/hard_block/upf/hard_block.upf \
–scope u_hard_block
}
source $env(UPF_PATH)/top/upf/top_submodule_connections.upf
source $env(UPF_PATH)/top/upf/top_macro_connections.upf
source $env(UPF_PATH)/top/upf/top_port_attributes.upf
source $env(UPF_PATH)/top/upf/top_system_states.upf
source $env(UPF_PATH)/top/upf/top_strategies.upf
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 179
Top-Level Supply States
Supplies Type nom turbo offmode
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 180
Top-Level Power States
State ioss aonss var1ss var2ss var3ss var4ss
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 181
Top-Level Power States
State ioss aonss var1ss var2ss var3ss var4ss
on nom nom !off !off nom | turbo !off
var1off nom nom off - (any) nom | turbo !off
var2off nom nom !off off nom | turbo !off
var4off nom nom off - (any) nom | turbo off
alloff nom nom off off nom | turbo off
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 182
Top-Level Power Transitions
t2 ALLON
i1 Transition name next to arrow stands
for transition TO the state, eg: i1 is a
t1 i2 transition to ALLON state from
t3 i4 ALLOFF state
VAR1OFF ALLOFF
t3 t4
t4
t2 i3
t1 t2 t5
VAR2OFF VAR4OFF
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 183
SoC UPF Integration Tips
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 184
Summary
Design/UPF Partitioning
Modularization
Mixed language handling
IO modeling
Macro handling
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 185
Design/UPF Partitioning
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 186
Modularizing Top-Level UPF
source $env(UPF_PATH)/top/upf/top_power_ports.upf
source $env(UPF_PATH)/top/upf/top_power_nets.upf
source $env(UPF_PATH)/top/upf/top_macro_connections.upf
source $env(UPF_PATH)/top/upf/top_system_states.upf
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 187
Mixed Language Handling
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 188
IO Modeling
IO pad con
– Special structure involving multiple power supplies
– Need many connect_supply_net connections
– Special IO cells connected to analog constants need additional
domains (hierarchies)
set pad_inst_list [find_objects . -pattern “PADRING_*” \
-object_type model -transitive]
foreach pad_inst $pad_inst_list {
connect_supply_net pad_ring_VSS -ports “$pad_inst/VSSP”
}
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 189
Handling Macros
Macro connections
– Analog macros - all non-default connections need to specified
with connect_supply_net
– Analog model should include pg_pin
definitions/related_power_pin/ground_pin definitions
– Special care needs to be taken for macros with internal
supplies
• Does that need additional top level isolation/level-shifting
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 190
SoC Verification
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 191
Power Aware Simulation
Power-aware Bench,
UPF HDL
libraries (.v/.sv/.lib) Drivers
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 192
SoC Test-bench UPF
....
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 193
SoC Test-bench
module chip_tb;
....... Supply driver
(model off chip suplies)
`ifdef DEFINE_UPF_PKG
import UPF::*;
`endif
// Constant supplies VDD_1P8 AVSS VDD_VAR
initial
begin
supply_on(“VDD_1P8”, 1.8);
supply_on(“AVSS”, 0);
Chip
supply_off(“VDD_VAR”, 0);
.......
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 194
SoC Test-bench
// Dynamic supplies
always @ (posedge system_clk, negedge por)
begin
if(supply_requested)
begin
if(supply_value==0x1)
supply_on(“VDD_VAR”,0.8);
else if(supply_value==0x2)
supply_on(“VDD_VAR”,0.9);
else if(supply_value==0x3)
supply_on(“VDD_VAR”,1.0);
else
supply_on(“VDD_VAR”,0.7);
end
else Note: system_clk, por and supply_value
are signals in the test bench, not UPF
supply_off(“VDD_VAR”,0);
objects
end
end
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 195
Adopting UPF
Sushma Honnavara-Prasad
Principal Engineer
Broadcom
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 196
Recommendations for Adopting UPF
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 197
Recommendations for Adopting UPF
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 198
Recommendations for Adopting UPF
• If loading other UPF files or helper tcl files, avoid hard-coding the
Avoid hardcoding path. Try using a configurable env variable instead.
paths • Avoid hardcoding HDL hierarchical paths if possible by using
find_objects (allows use of same UPF in spite of hierarchy changes)
Using UPF for Low Power Design and Verification © 2014 Broadcom 3 March 2014 199
Adopting UPF*
Shreedhar Ramachandra
Staff Engineer
Synopsys
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 200
Recommendations for Adopting UPF
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 201
Recommendations for Adopting UPF
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 202
Recommendations for Adopting UPF
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 203
Tip: Align Power Domains and Logic Hierarchy
E
Better to align power domains with logic TOP
hierarchy if at all possible
RED BLUE
create_power_domain RED –elements {RED}
create_power_domain BLUE –elements {BLUE}
A B C D
Failing that, use -diff_supply_only option
or the -source/-sink filters
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 204
Where We Go From Here
John Biggs
Senior Principal Engineer
ARM
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 205
IEEE 1801 (UPF) timeline
2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 206
P1801 Work Group Plans
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 207
System Level Power Intent
Depends on perspective
– SW Centric: abstract, task, transaction/event based
– HW Centric: detailed, component, state/level based
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 208
System Energy Analysis & Optimization
Software Centric Analysis and Optimization:
Applications Software impacts on energy consumption – trend based analysis
Detecting and correcting energy bugs in software
System power management (RFTS/DVFS) optimization
System Power Management
Using UPF for Low Power Design and Verification © 2014 Synopsys 3 March 2014 209
System Level Power Subcommittee
Using UPF for Low Power Design and Verification © 2014 ARM Ltd 3 March 2014 210
Interested in working on UPF?
Join the working group!
Send email to [email protected]
http://standards.ieee.org/develop/wg/UPF.html
211