Power Aware Emulation

advertisement
Enabling Power Aware Emulation in Big CPU
Project
Adriana Wolffberg
Vinay Vaddepalli , Osama Neiroukh
Introduction Foundations Challenges
Pioneering
Agenda
• Introduction
• Power Aware Emulation Foundations
• Power Aware Emulation Challenges
• Pioneering work
• Summary
Summary
Introduction Foundations Challenges
Pioneering
Summary
Background
• Number of power planes per
chip constantly increasing due
to aggressive power goals
• Power-aware simulation is
already part of main validation
methodology
• Emulation is becoming key technology in Pre-Si verification
•
Long Tests involving many power on/off states are verified only in
emulation
Introduction Foundations Challenges
Pioneering
Summary
Power Aware Emulation Basics
• Emulation tool is extended with Power
Aware capabilities
• Based on joint specification and
prototyping
• Emulator takes as input the power
architecture of the design from UPF
(Unified Power Format - IEEE standard)
• No RTL or UPF special changes for
Emulation compared with Simulation
RTL
Power
Aware
Simulator
UPF
Power Aware
Emulator
Introduction Foundations Challenges
Pioneering
Summary
Power Aware Simulation
Power aware simulation mimics
circuit behavior for power
up/down events
• When block is powered off
– Internals and outputs corrupted
to “X”
• When block powered on
– Start simulation as if @ time
zero
VCC1
OFF
All internals and
outputs corrupted to X
X
X
X
Regular
Simulation
X
Regular
Simulation
Corrupt
to X
X
VCC2
ON
VCC3
OFF
VCC4
ON
Introduction Foundations Challenges
Pioneering
Summary
Power Aware Emulation Foundations
• No X’s in emulation, the emulation engine
randomizes powered down domains
according to:
VCC1
Random outputs and states
– Internal state elements are randomized at the
time of switching off
?
– Dynamic randomization of outputs of power
domains
• Emulator uses additional circuits to
randomize logic
OFF
?
?
Regular
Emulation
?
Random
outputs
and
states
Regular
Emulation
?
VCC2
ON
VCC3
OFF
VCC4
ON
Introduction Foundations Challenges
Pioneering
Summary
Power Aware Emulation Challenges
Combinationa
l clouds
Assertions
Cascade
Power
Switches
Multiply
instantiated
Instance
Constant
Propagation
Randomizatio
n
Robustness
Re-trigger
Inits
Multiple driven
wires
Power
Aware
Emulatio
n
Continuous
Assignments
Hierarchical
references
Forces
Introduction Foundations Challenges
Pioneering
Summary
Power Aware Emulation Challenges
Cascade
Power
Switches
Multiply
Instantiated
Instances
Constant
Propagation
Randomizatio
n
Robustness
Combinationa
l
Clouds
Assertions
Re-trigger
Inits
Multiple driven
wires
Power
Aware
Emulatio
n
Continuous
Assignments
Hierarchical
references
Forces
Introduction Foundations Challenges
Pioneering
Summary
Randomization Robustness - example
Domain A
Domain B
Din
Rst
Clk
DomainA
VCC
DomainB
VCC
Clk
Rst
Dout
D
• Power Domain A is turned on ahead of Power
Domain B and needs to propagate reset on to
Domain B
• Clock Clk gets shut off before Domain B is turned on
while reset remains asserted
• Receiver flop D is turned on after Clk was shut off so
it remains stuck at X
– Note that Rst is synchronous
• This bug cannot be found without power supply
modeling. In regular emulation, the reset would be
observed by D and the flop would reset
Can we “catch” this bug with chosen approach of randomization?
Introduction Foundations Challenges
Pioneering
Summary
Randomization Robustness - options
• Different approaches, what is the impact on capacity/performance?
– Randomization of state elements
– Currently: first cycle after a domain switches off
– Option: Randomization at given intervals during power off
– Randomization of interface of power domains:
– Currently: only outputs of power-down domains
– Option: also the inputs of power-down domains
• A test can be run multiple times with different seeds :
– Invert all values at switch off instead of randomizing them
– Force all state elements to 0 or force all of them to 1.
Introduction Foundations Challenges
Pioneering
Summary
Constant Propagation
• Emulation propagates constant as far as possible for
optimization
• Proposal: stop constant propagation across power boundaries
• Open question: Is there capacity or performance penalty when
disabling constant propagation?
Domain A
0
Domain B
Introduction Foundations Challenges
Pioneering
Summary
Multiply instantiated hierarchies
• Instances of same module can be in
different power domains
• Simple example: SUB1 and SUB2 are
instances of same module .
• Emulation must factor this in carefully,
especially when some hierarchies are
power-managed and others are alwayson.
TOP - ON
SUB1 – Power OFF
SUB2 - Power ON
Introduction Foundations Challenges
Pioneering
Summary
Mini Testcases Flow
• We developed a test plan
covering all known challenges
• For each item in the testplan a
simple test case was written
• Work with Emulator
developers to build confidence
before starting on big CPU
model
RTL
UPF
Simulation
build and
run
Emulation
build
Simulatio
n dump
Merged
Emulation
dump
inferX
Emulation
Emulation
Emulation
vcd
vcddump
dump
dump
Emulatio
n model
seed
Introduction Foundations Challenges
Pioneering
Summary
Summary
• Power Aware Emulation is highly required in big CPU project
• We took the heavy-lifting of specifying, documenting and
productizing power-aware emulation from scratch
• Many challenges were found, part are unique to emulation and can
be addressed by multiple approaches
• Currently deploying Power Aware Emulation in big CPU
model
Download