Tutorial LSI

Download as pdf or txt
Download as pdf or txt
You are on page 1of 64

A review of the IEEE P1801:

Standard for the Design and Verification of


Low Power Integrated Circuits
DesignCon 2009 Low Power Workshop

Dr. Gary Delp


[email protected]

Distinguished Engineer, LSI


VP & Technical Director, The SPIRIT Consortium
Vice Chair, IEEE P1801
Past architect, Si2 Low Power Coalition
P1801 Outline
• Motivation
– Key Messages
– The Standards Environment – Interoperability Panel
• Modifying the abstraction – the presence of power-based
corruption
– Power Domains
• What they are
• Combining Domains
– Protecting the boundaries
• Electrically – level-shifting strategies
• Logically – isolation strategies
– Preserving the State
• Retention strategies
– Component/System Based design
• Precedence based specification
• Simulating and Implementing same the Design
• What changed and why you will like it!

February 2009 2
Key Messages
• For decades designers have worked with the digital abstraction, signals are
either logical true or logical false.
• As with all good abstractions, this one had great utility
– it allowed optimizations in analysis,
– separated two areas of difficult analysis,
– making the design task achievable.
• This simple abstraction breaks as parts of digital circuits will be turned off
relative to other parts
– parts will enjoy low-power slow-down modes
– parts will scream with performance and energy.
• The good news is that there is a simple way to express the relationships,
boundaries, activities, and side effects of many power domains without having
to give up most of the simplifications that the digital abstraction allow us.
– The bad news is that there are currently two ways to do it.
Strategy
• Using examples from a number of design flows and design problems
– Both UPF/P1801 and CPF to express the power constraints and characteristics of
designs.
– The current state of interoperability is greater than last year.

February 2009 3
Power Management
Source & Flow Power
PowerSource
Source
File(s)
File(s)
• The traditional Synthesis flow HDL/
HDL/
RTL
RTL
– Is augmented with Power

Simulation, Logical Equivalence Checking, …


• Power source files are part of the
design source. Synthesis
– Combined with the RTL, the power files
are used to describe the intent of the
designer.
– This collection of source files is the input Power
PowerSource
Source
to several tools, e.g., simulation tools, File(s)
File(s)
synthesis tools, and formal verification Verilog
Verilog
tools. (Netlist)
(Netlist)

• Multiple source files may be prepared


specifically to enable reuse. P&R
• The details of the “What” and the
“How” are often produced by different
parties.
– Design refinement Power
PowerSource
Source
File(s)
File(s)
Verilog
Verilog
(Netlist)
(Netlist)

February 2009 4
Attributes Specifiable in HDL
HDL attribute Value UPF command
UPF_clamp_value <“0” | “1” | “Z” | “latch” | set_isolation –clamp_value
“any” | “value”> set_port_attributes –clamp_value
UPF_sink_off_clamp_value ditto set_isolation –sink_off_clamp_value
set_port_attributes –sink_off_clamp_value
UPF_source_off_clamp_value ditto set_isolation –source_off_clamp_value
set_port_attributes –source_off_clamp_value
UPF_pg_type pg_type_value set_port_attributes –pg_type

UPF_related_power_pin port_name set_pin_related_supply –related_power_pin


set_port_attributes –related_power_port
UPF_related_ground_pin port_name set_pin_related_supply –related_ground_pin
set_port_attributes –related_ground_port
UPF_related_bias_pin port_name set_port_attributes –related_bias_port

UPF_retention <“required” | “optional”> set_retention_elements –retention

UPF_simstate_behavior <“ENABLE” | “DISABLE”> set_simstate_behavior

UPF_is_leaf_cell <“TRUE” | “FALSE”> set_design_attributes –is_leaf_cell

February 2009 5
Outline
• Motivation
– Key Messages
– The Standards Environment – Interoperability Panel
• Modifying the abstraction – the presence of power-based
corruption
– Power Domains
• What they are
• Combining Domains
– Protecting the boundaries
• Electrically – level-shifting strategies
• Logically – isolation strategies
– Preserving the State
• Retention strategies
– Component/System Based design
• Precedence based specification
• Simulating and Implementing same the Design
• What changed and why you will like it!
February 2009 6
Power management Structures: The Data Objects
• Power Domain
– The collection of design
objects that share common
power attributes
• Power States
– Controlled by Switches
– Memories may require
Retention
– States may require
sequencing info
– States will effect simulation
• Relations & Connections
between Domains
– Level shifters
– Isolation logic
– “Gas Stations”
alternate supply
• Identify elements
• Manage
• Implement
• Analyze
• Reuse

February 2009 7
Simulation in Power Aware design flows
• Simulation is used in design flows to check the functional characteristics of a
design to ensure that the design as recorded will perform to the purpose of the
design
• Many simplifications are used in simulation to allow for running time
efficiencies
• There is now a current “standard” for modeling supply nets and supply sets in
an efficient design flow, P1801 speaks to it and provides an excellent
framework.
• Simulation in a power aware flow should provide for indication of logical errors
• Injecting X’s into a simulation in the design flow is a well understood and
efficient way to model that “something is amiss” and to propagate the effect of
that “amiss” nature to the relevant portions of a design in the simulation.
• Power conditions can cause the corruption of logic and memory
• The goal should be for a conservative simulation semantic, that is, the
simulation may corrupt more often than the implementation (an X always has
some value in an instance of the implementation), but should never maintain a
state or legal logic level if the implementation would not.
• Validation (static timing analysis, rail checking, design rule checks, etc) are
performed to ensure that the conditions that are checked in simulation are
supported in the implementation.

February 2009 8
The concept of corruption – supply Off (or Partially On)
• Supply Nets
– Net_State
• Full_on 1
0
X 1
0
X 1
0
X
• Partial_on
• Off
– Voltage Partial On or off
• May be specified for Full on
Analysis and
Time based corruption
0
X
1 1
0
X 1
0
X

Full onOn or off


Partial

February 2009 9
Protection from corruption Electrical – Level Shifting
• Supply Net
– Net_State
• Full_on
Full on, V1 Full on, V2
• Partial_on
• Off
11
0 10 1
Level
1
X
0 ?1
X
0
– Voltage Shifter
• May be specified for
Analysis and
Time based corruption

Full on, ground

February 2009 10
Protection from corruption Logically – Isolation / Clamps
• set_isolation

Partial
Full on,
OnVor
1 off Full on, V2

Full on, ground

February 2009 11
Simulation Model matching – requires refinement of definition
• Default model for Level shifting
– Any difference in the current values of the supply set will cause corruption
– Modification: A range may be declared legal
– Modification: A level shifter may be inserted
• Dual supply – corruption caused when either supply is not full on
• Default model for Clamps (isolation)
– Level shifter model applies
– X’s may be eliminated with logic if the X has the same supply
– Modification: ordering may be useful in the boundary specification
• Default Model for Retention
– Memory is powered by retention supply, save saves current value, restore
restores the saved value, the saved value is corrupted when the retention
supply is corrupted.
– Modification: other models may be introduced, they replace the default
– Note that implementation may have time dependencies, these must be
specified so that corruption can be introduced in simulation.

February 2009 12
Power state detection and analysis
• VHDL, Verilog, System C packages to specify the interface for active
power state detection and triggering on defined symbol names to be
added.
• Adding these symbols to the sensitivity list of modules important in
verification. (Includes “Logic Analyzer” type tracing based on power
states.

February 2009 13
Supply sets –
• Because a single supply net has no meaning in isolation to the power
being supplied to any design element, it would be helpful to have the
object type “supply set” which does have meaning. For a domain, the
following supply set handles are used:
primary, default_retention, and default_isolation.

• Supply sets collect supply nets together so that they can be treated as
a unified (and progressively defined) bundle.
• This is done for efficiency, clarity, simulation, and brevity.

• Pg pins may be associated with supply set functions to support


automatic connection.

• Completion of supply set specification determines the “equity” of the


verification runs.

February 2009 14
Design/Component Hierarchy

Design

Component

Component (hierarchicalRef)

Component Component

February 2009 15
Design/Component Hierarchy

Design
Component
HRef

Component Component
HRef HRef

February 2009 16
Packaged Electronic Design IP in the flow
• When designing IP (a component), the assumed context must be
able to be defined.
– set_port_attribute – supply_set
– The context is a rich one, with the potential of multiple domains and
control signals
• When the IP (component) is incorporated into a design, the
elements of the component will be incorporated into extent of the
design.
• The domains of the component may also be usefully be
incorporated into the domains of the “parent” design

February 2009 17
Create Component in an environment/Context

Supply sets and set_port_attributes


February 2009 18
Use Component in an Design

February 2009 19
Use Components in an Design

February 2009 20
Use Components in an Design

create_composite_domain

February 2009 21
Precedence based specification
(Active scope)

B C D

E F G H I J

-elements {A A/C/H}
-exclude_elements {A/C A/D}

February 2009 22
Precedence based specification
(Active scope)

B C D

E F G H I J

-elements {A A/C/H}
-exclude_elements {A/C A/D}

February 2009 23
Precedence based specification
(Active scope)

B C D

E F G H I J

-elements {A A/C/H}
-exclude_elements {A/C A/D}
-transitive TRUE

February 2009 24
Halfway: Key Takeaways
• Power Intent Goals
– Scalable & transportable methodology for describing and reasoning from:
• Power Domains
• Power Supplies
• Switches
• Acceptable and forbidden Power Modes or States
• Isolation, Level shifting, Retention
– Retention – preserving the state
• Richness of descriptive capability
– Support Reuse and transport of design equity
• Identification and Constraints – The Platinum Source
• Refinement and Configuration – The Golden Source
• Implementation and analysis – The Silicon Source

– Key Goal – all about equity preservation


Improving productivity Through Higher Abstraction

February 2009 25
Outline
• Motivation
– Key Messages
– The Standards Environment – Interoperability Panel
• Modifying the abstraction – the presence of power-based
corruption
– Power Domains
• What they are
• Combining Domains
– Protecting the boundaries
• Electrically – level-shifting strategies
• Logically – isolation strategies
– Preserving the State
• Retention strategies
– Component/System Based design
• Precedence based specification
• Simulating and Implementing same the Design
• What changed and why you will like it!
February 2009 26
Outline
• Motivation
• Modifying the abstraction – the presence of power-based
corruption
• Simulating and Implementing same the Design
• What changed and why you will like it!
– Supply sets & supply network
– Power states and simstates
– Power domains
– Power constraints and attributes
– Power domain interface design
– Retention specification

February 2009 27
UPF 2.0
Why We Did What We Did

And Why You’ll Like It!

With Thanks to:

Stephen Bailey
Chair, IEEE P1801
Director of Product Marketing, DVT
Agenda
• Supply sets & supply network

• Power states and simstates

• Power domains

• Power constraints and attributes

• Power domain interface design

• Retention specification

February 2009 29
How is a Memory Powered?
• Dual
Single
supply
supply of power and ground with bias control
• One
Supporting
For both
for the
read/write
low
read/write
power
logic
logic
memory
and the
retention
memorymode?
core?
• Another for the memory core with 3 modes

Data Data

Addr

CK

AS

Power
Ground

N-Well bias

Core pwr
Core gnd
Core bias

February 2009 30
UPF 2.0 Supply Sets
• A supply set defines a complete power source
– The supply set is named and the name is defined in the current scope that the
create_supply_set command is executed within

• May contain any number of supply set functions


– Each net provides a function for the set
– 6 functions are predefined
• Power
• Ground
• Pwell
• Nwell
• Deeppwell
• Deepnwell
– Users may define their own functions for a set
– May specify a reference ground
• Default is “earth ground” – 0 volts

• Supply nets are associated with each defined function of the set

February 2009 31
Supply Set Refinement
• Supply set may be created without defining any functions
– Simulators may assume power and ground functions exist by default to
support early simulation with a partial supply network specification

• Users may add new functions to a supply set


– E.g., add bias net(s) to a set with only power and ground

• Supply nets may be associated with the function when the function is
defined or later
– Supports early simulation/analysis before complete supply network is
specified

• Reference ground can be specified at or after the supply set is created

February 2009 32
Supply Set Connection Basics
• The supply nets of a set are connected based on the association of the
function of the net and pg_type for a port

• pg_type
– In an implementation context -- .lib (Liberty)
• Library attribute identifying pins on the cell as being power, ground, etc.
– In a verification context -- HDL model
• An HDL- or UPF-specified attribute on a port with the name pg_type and a string
valued attribute identifying the port as power, ground, etc.

• The connection is made from function => pg_type


– By default, the names must match
– User may specify a non-default mapping

February 2009 33
Associating a Supply Set
• Certain supply sets are assumed to exist
– Power domains:
• primary, default isolation and retention supplies
(The default isolation & retention supplies are optional but predefined)
– Isolation strategy, retention strategy and power switches
• Default supply for the functionality
– Level shifter strategy
• Input and output supply sets
• Each of these assumed supply sets can be referenced by a handle
– primary, default_retention, default_isolation
– supply (for switch, isolation and retention strategy)
– input and output (for level shifter strategy)
– These handles are predefined
• Users may define other supply set handles for a power domain
• A supply set handle is “empty” until an actual supply set is associated with it
– But the handle can be referenced anywhere that the supply set or functions within the
supply set need to be referenced
• Often, only the context is known while the specifics of which supply set is used in that context is not
• Supply set handles allow deferring details
• Supply set handles hide the details allowing easier maintenance and separation of responsibility

February 2009 34
Implicit & Automatic Supply Set Connections
• Implicit connections occur when:
– Primary supply to all elements in a domain not explicitly or automatically
connected to a supply set
– Isolation supplies to isolation logic inferred from set_isolation
– Retention supply to the retention register logic inferred from set_retention
– Level shifter input and output supplies to level shifters inferred from
set_level_shifter

• Automatic connections are limited to a power domain context


– Applies to a supply set handle for a domain (domain reference)
– The –elements list is limited to elements within extent of the domain
• If –elements is not specified, then all elements in the domain
– Only those elements with ports attributed with matching pg_types are
automatically connected

February 2009 35
Agenda
• Supply sets & supply network

• Power states and simstates

• Power domains

• Power constraints and attributes

• Power domain interface design

• Retention specification

February 2009 36
Power States Overview
• UPF 1.0 supported system power state specification in a table
format

• UPF 1.0 PSTs are useful


– Provide information necessary to identify where level shifting is
required
– Help verification tools to identify illegal/undefined states

• But also limiting


– Flat, non-hierarchical
– No information hiding
– Did not ensure simulation behavior accurately reflected the hardware
to be implemented
• For example: If power & ground are both on, is that sufficient to know if the
logic has sufficient power to support switching?
Doesn’t voltage matter?

February 2009 37
UPF 2.0 Power States
• Objects which can be attributed with power states:
– Supply sets
• Defined in terms of the state of the supply nets of the set
– Power domains
• Defined in terms of the state of supply sets, supply nets and the power
state(s) of other domain(s)
• What is included in definition is relevant to the state of the domain and
reducible to the state of supply nets
• This provides the ability to hierarchically specify power state relationships

• Can also specify state transitions

February 2009 38
Defining a Power State
• Same command for both supply sets and domains
– add_power_state object_name
-state state_name
-supply_expr {boolean_expr}
-logic_expr {boolean_expr}
[-simstate simstate]
-legal | -illegal
-update
• Can be refined (-update) over time as design evolves
– -supply_expr is the golden specification of the power state – used by synthesis and LEC
– -logic_expr initial, approximation of the power state definition (in the absence of a –
supply_expr)
• -logic_expr becomes an assertion check when –supply_expr is specified
• -supply_expr and –logic_expr state definitions can be refined
– supply_expr’ = old_supply_expr && new_supply_subexpr

• Legality
– The default for a user-defined power state is legal
• Specify –illegal to override default; -legal to be explicit

– By default, undefined power states are illegal


• Override default legality of undefined power states for an object:
add_power_state my_power_domain -legal

February 2009 39
Power States of a Supply Set
• The operational capability of logic powered by the supply

• Predefined supply set power states:


– DEFAULT_NORMAL
• All nets of the set are FULL_ON
• The net may be at any voltage level

– DEFAULT_CORRUPT
• When the supply set is in a state that does not match a defined state or
the DEFAULT_NORMAL state

– With only the predefined power states


• Supply set semantics are identical to UPF 1.0 semantics for power/ground
pairs

February 2009 40
Simulation States (simstates) Provide Semantic Behavior

Simstate Combinatorial Sequential Corruption Semantics


Logic Logic

NORMAL Fully functional Fully functional None

CORRUPT Non-functional Non-functional Wires driven by logic and regs powered by the
supply corrupted immediately on entering state

CORRUPT_ON_ Non-functional Non-functional Wires driven by logic and regs powered by the
ACTIVITY supply corrupted when any input to the logic is
active

CORRUPT_SEQ_O Fully functional Non-functional Regs powered by the supply corrupted when the
N_CHANGE value of the register is changed
Bias
Modes CORRUPT_SEQ_O Fully functional Non-functional Regs powered by the supply corrupted when any
N_ACTIVITY input to the reg is active

NOT_NORMAL Deferred Deferred By default, same as CORRUPT.


Tool may provide an override

February 2009 41
Power States of a Power Domain
• The –supply_expr is defined in terms of:
– State(s) of supply set(s) – e.g., the primary supply for the domain
– State(s) of other power domain(s)
• Allows specification of a dependency between one domain’s power state and another domain’s
state – useful for subsystem and system level power state specification
– States of supply nets

• Ultimately, the power state of a domain is defined in terms of supply net


states

• Can be refined
– -logic_expr can be used as an early approximation of the state definition
– -supply_expr must be defined for implementation
– Logic and supply expressions can be refined with && of new expressions with
previously specified expressions

February 2009 42
Agenda
• Supply sets & supply network

• Power states and simstates

• Power domains

• Power constraints and attributes

• Power domain interface design

• Retention specification

February 2009 43
Key Terms with Power Domains
• Power domain: A collection of design elements that share a primary
supply set

• Composite domain: A container comprising a set of power domains


called subdomains.

– Composite domains are meant to replace merged domains


– merge_power_domains command carried forward for backward
compatibility

February 2009 44
Example Power Domain & Logic Hierarchy

top

PMB B1 B2 B3

B1M1 B2 B2

B2

• Colors represent power domains (5 power domains)


• The association of a domain with a scope in logic design
provides a pseudo-hierarchy of domains
– The domain hierarchy has no semantic meaning in UPF
– But is convenient for constructing hierarchical power states

February 2009 45
Agenda
• Supply sets & supply network

• Power states and simstates

• Power Domains

• Power constraints and attributes

• Power domain interface design

• Retention specification

February 2009 46
Power Constraints & Attributes
• UPF 2.0 achieves greater success in separating low power design constraints
from implementation
– Better meets the needs of soft IP providers
– Specify relevant information if the IP is to be implemented in a low power context
– Does not over-specify the low power implementation
– Facilitating reuse of the IP in any low power implementation

• Commands
– set_port_attributes
– set_retention_elements

• Attributes
– Allow many constraints to be specified as HDL attributes
– Should allow IP providers to deliver only HDL source

February 2009 47
set_port_attributes
• Specifies attributes of a port that may be relevant to the low power
implementation of the element
– Can be applied to an instance or a model (all instances of a model)
– Generally relevant only if port is on the interface of a domain

• Attributes
– General: attribute-name : value pair
– Isolation related for logic ports:
• Clamp value
• Sink off clamp value
• Source off clamp value
– Supply-related constraints for logic ports:
• Related power, ground and bias ports
– Why isn’t it a relatedy supply set?

• Receiver supply
• Driver supply
• Repeater supply
– Supply port attribute
• pg_type (power-ground type as per Liberty or implementation library conventions)

February 2009 48
Attributes Specifiable in HDL
HDL attribute Value UPF command
UPF_clamp_value <“0” | “1” | “Z” | “latch” | set_isolation –clamp_value
“any” | “value”> set_port_attributes –clamp_value
UPF_sink_off_clamp_value ditto set_isolation –sink_off_clamp_value
set_port_attributes –sink_off_clamp_value
UPF_source_off_clamp_value ditto set_isolation –source_off_clamp_value
set_port_attributes –source_off_clamp_value
UPF_pg_type pg_type_value set_port_attributes –pg_type

UPF_related_power_pin port_name set_pin_related_supply –related_power_pin


set_port_attributes –related_power_port
UPF_related_ground_pin port_name set_pin_related_supply –related_ground_pin
set_port_attributes –related_ground_port
UPF_related_bias_pin port_name set_port_attributes –related_bias_port

UPF_retention <“required” | “optional”> set_retention_elements –retention

UPF_simstate_behavior <“ENABLE” | “DISABLE”> set_simstate_behavior

UPF_is_leaf_cell <“TRUE” | “FALSE”> set_design_attributes –is_leaf_cell

February 2009 49
General Purpose Attributing
• set_design_attributes provides a general attributing capability:
– set_design_attributes –attribute name value
– Only the predefined attributes covered in the 1801 standard, have defined
semantics
– Any other attributes have no standard semantics definition
• Various tools and design policies can use the general attributing capability with non-
standard semantics
• Allows for future addition of new attributes

February 2009 50
Agenda
• Supply sets & supply network

• Power states and simstates

• Power Domains

• Power constraints and attributes

• Power domain interface design

• Retention specification

February 2009 51
Domain Interface Design
• Major considerations for power domain interfaces
– Isolation
– Level shifting

• Both were supported in UPF 1.0; What’s new in 2.0?

February 2009 52
Defining Isolation Strategies
• UPF 2.0 eliminates the need for set_isolation_control
– All isolation information specifiable in set_isolation
– Can be called multiple times to add more information to the same isolation strategy,
e.g.,
• Clamping value specified first
• Isolation enable signal specified next
• Isolation supply specified last

• Isolation can be specified relative to a port


– Use with bottom-up implementation
• Or specified relative to connectivity from a domain to another domain
– Use in contexts where the connectivity information is known

• Ports or domain connections can be specified as no_isolation

• Can specify that isolation is not to be applied if the driver and reader of the port
have the same supply
– Backward compatibility with 1.0 requires isolation in this case
– Added ability for user to allow tools to optimize away isolation in this case

February 2009 53
-diff_supply_only implications

top

W
PMB B1 B2 B3

B1M1 B2 B2

B2
• B2 and B3 are siblings and both roots at the top of the Purple power domain
• The wire W connecting B2 to B3 will be isolated unless
–diff_supply_only is specified

February 2009 54
More Isolation Enhancements
• Clamping:
– Reason for clamping can be associated with source or sink supplies (relative to the port)
being CORRUPT

• Multi-enabled isolation support


– Can specify an ordered list of:
• Clamp value
• isolation enable signal
• isolation supply
– The ordering of isolation/enable/supply is applied
– Defined defaults for all when list size is one for some but more than one for other(s)

• Additional –location options


– fanin, faninout
– other (place in the other domain)

• -instance provides the name of an isolator instance in the HDL source and
the port that it is isolating
– Allows isolation supply information to be added in UPF

February 2009 55
Multi-Enbled, Multi-Supplied Isolation

// Connect the retmem_supply to an instance of a retention memory


set_isolation multi_enable_strategy
-domain purple
-elements {portA}
-isolation_signal {iso_en1, iso_en2}
-isolation_sense low
-isolation_supply_set {iso_supply1, iso_supply2}
-clamp_value {‘0’} // NOTE: clamp value is same for both

iso_en1 iso_en2

A
<source>

is_supply2
is_supply1

February 2009 56
Level Shifting
• UPF 2.0 clearly specifies that set_level_shifter should not be required when all
power states are exhaustively specified
– Command is continued for backward compatibility with 1.0
– Allows partial power state specification + set_level_shifter commands to fill in gaps
• This is not the recommended usage

• Enhancements include
– Ability to specify a complete threshold specification
– Same –location additions as isolation (fanin, faninout and other)
– Supply specification – input, output and internal
– -instance allows level shifters to be instanced in HDL while using UPF to provide
supply information
– -force_shift to prevent tools from optimization removal

February 2009 57
Mapping Isolators and Shifters
• UPF 1.0 map_level_shifter_cell and map_isolation_cell provide
backward compatibility
– Recommend these commands not be used

• UPF 2.0 provides the use_interface_cell command


– Supports mapping isolators, level shifters and combined cells (enable level
shifters)
– For isolation cells, allows very late specification of clamp value – when any
is specified clamp value
– -force_function informs verification tools to use the behavior of the used cell
and not the set_isolation and set_level_shifter specified behavior
– Optional specification of an inverter supply set
• If an inverter must be applied to an input or output to ensure correct functionality –
e.g., isolation enable polarity

February 2009 58
Agenda
• Supply sets & supply network

• Power states and simstates

• Power Domains

• Power constraints and attributes

• Power domain interface design

• Retention specification

February 2009 59
Retention Enhancements Overview
• set_retention_control is now unnecessary
– Supported for backward compatibility with 1.0
– All retention information can be specified in set_retention
• Command can be invoked multiple times for the same retention strategy
• Subsequent calls cannot provide conflicting information
• Subsequent calls can provide additional information

• Retention register may be instanced in HDL with UPF providing


supply information
– -instance argument to the command

• Improved functional specification in set_retention

• Enhanced mapping capabilities with map_retention_cell

February 2009 60
Retention Register Functional Specification
• Can specify 3 relevant conditions
– -save_condition: Condition must hold for save to occur when save signal is active
• Register is corrupted if save signal is unknown or save signal is active and save condition is unknown
– -restore_condition: Condition must hold for restore to occur when restore signal is active
• Register is corrupted if restore signal is unknown or restore signal is active and restore condition is
unknown
– -retention_condition: Condition must hold when the primary supply is not NORMAL
• Retained value is corrupted otherwise
• 0-pin (no save or restore) retention register now supported
– -use_retention_as_primary
– NOTE: No level shifting will be inserted. Retention supply must be level compatible with
primary
• More functional parameters
– RET_SUP_COR – register value is corrupted based on simstate of retention & primary
supplies
– NO_RET_SUP_COR – register value is corrupted only based on simstate of primary supply
– SAV_RES_COR – register is corrupted if save and restore are active simultaneously (both
conditions must also hold)
– NO_SAV_RES_COR – save and restore can be active simultaneously

February 2009 61
Mapping Retention Register Cells
• map_retention_cell command is enhanced
– retains compatibility with UPF 1.0
• -lib_model_name port mapping enhanced
– Canonical register interface defined
• CLOCK - signal whose rising edge triggers register to load data
• DATA - signal whose value is the next state of the register
• ASYNC_LOAD - signal which causes register load data when its value is one
• OUTPUT - signal that propagates the register output
– Port mapping connects cell ports to signals via the following symbolic references
• retention_ref.function_name – the supply nets that compose the retention supply
• primary_ref.function_name – the supply nets that compose the primary supply
• save_signal
• restore_signal
• UPF_GENERIC_CLOCK – the canonical CLOCK signal
• UPF_GENERIC_DATA – the canonical DATA signal
• UPF_GENERIC_ASYNC_LOAD – the canonical ASYNC_LOAD signal
• UPF_GENERIC_OUTPUT – the canonical OUTPUT
• All logic signals can be inverted by using Verilog bit-wise negation operator (~)
– Retention supply powers inverters for save and restore
– Primary supply powers inverters for any other signal

February 2009 62
Mapping for Implementation and Verification

• Retention registers can be mapped for implementation or implementation


and verification use

-lib_cell -lib_cell_type -lib_model_ Verification Semantic Implementation constrained


name to
N N N ERROR ERROR

N N Y model_name model_name

N Y N RTL with retention lib_cell_type

N Y Y model_name lib_cell_type

Y N N RTL with retention lib_cell_list

Y N Y model_name lib_cell_list

Y Y N RTL with retention a cell from lib_cell_list that


also has lib_cell_type
Y Y Y model_name a cell from lib_cell_list that
also has lib_cell_type

February 2009 63
Thank You!

You might also like