Professional Documents
Culture Documents
Narasimha Karunakar
AMD India Ltd
1
Agenda
y Low power design techniques overview
y Power Aware Verification (PAV) challenges
y Possible solutions
y Design guidelines
y Verification guidelines
2
Low Power Design Techniques:
Requirement than Improvement
y Higher clock frequencies + Higher device density
=> High power dissipation
y Conflicts with increasing importance on battery
life and power savings
y Exponential growth in usage of
Handhelds/Laptops/Mobiles
y Performance/Watt is the new mantra!!
3
Low Power Techniques Overview
y Supply voltage reduction
y Based on speed requirement
Module under
Power gating
Power Port
Switching circuit
y Isolation cell
6
Next…
y Low power design techniques overview
y Power Aware Verification (PAV) challenges
y Possible solutions
y Design guidelines
y Verification guidelines
7
Power Aware Verification challenges
y Conventional verification infrastructure is
not PAV ready
y No notion of voltage/power
y Protection gates modeling absent in RTL
y Power Ports & Power Switches not modeled
y Checks on missing protection gates not
done
8
Power Aware Verification challenges
y Power up and Recovery sequence checks
inadequate
y All voltage/power planes tied to 1’b1 or
1’b0 – no sequencing
y Reset asserted at time 0 allows signals to be
initialized at the beginning itself
y Flops retain value even when domain is
powered off
9
Next…
y Low power design techniques overview
y Power Aware Verification (PAV) challenges
y Possible solutions
y Design guidelines
y Verification guidelines
10
Possible solutions
y Make Verification environment
voltage/power aware
y Able to Simulate Real silicon behavior (‘Z’/’X’
when power down)
y Model power switches & protection gates
y Check for illegal power state transitions
y Support for recovery sequences
y Bring all state points to ‘X’ at power-up
y Initialization sequence should get them back to defined
11 state
Possible solutions
y Some Tool vendors that address the above challenges
y Synopsys
o MVtools (MVSim & MVRC)
o UPF (Unified Power Format)
y Cadence
o Incisive verification flow
o CPF (Common Power format)
12
Next…
y Low power design techniques overview
y Power Aware Verification (PAV) challenges
y Possible solutions
y Design guidelines
y Verification guidelines
13
Why Guidelines (RTL & PAV)
y Support power-aware tools/infrastructure
y Avoid hang issues
y Avoid false fails
y Minimize debug time
y Catch issues early in design cycle
14
RTL design guidelines
y Modeling the protection gates in RTL
y Instantiation in RTL
y For SAPR flow & Custom flows
y Find bugs early in the game
15
RTL design guidelines
y Partition & Boundary
y Voltage island boundaries alignment
y No Multiple Power domain in a final leaf module
y Below Ex: a11 shouldn‘t have multiple power domains
inside it.
A2
VDD_A2
VDD_A1
A1 a11
VDD_A11 A3 VDD_A3
TOP
VSS
16
RTL design guidelines
y Initialization of states/regs & Memories
y Only after power ON
y At least one power port in the port list.
IP1 instance_a (
.A_B ( A & B),
....
);
A
IP1 on PD1 A_B AND
AND
B IP2 on PD2
18
RTL design guidelines
y Avoid Constants in Port mapping
y Avoid constants (1'b1/1'b0) & shouldn’t cross domain
boundaries
module modA;
modB inst_modB (.in1(abc), .in2(1'b0));//DOMAIN_B
endmodule
module top;
modA inst_modA (.vdd_main(vdd_main),
.vdd_sub(vdd_sub));
endmodule Power
vdd_main Ports
in1
vdd_sub
modB in2
modA
19 top
RTL design guidelines
y Correct coding practice: Use Power rails
module modA;
modB inst_modB (.in1(abc), .in2(vdd_sub));//DOMAIN_B
endmodule
module top;
modA inst_modA (.vdd_main(vdd_main),
.vdd_sub(vdd_sub));
endmodule
20
Next…
y Low power design techniques overview
y Power Aware Verification (PAV) challenges
y Possible solutions
y Design guidelines
y Verification guidelines
21
Verification guidelines
y Checkers should be aware of:
y Current power state of the module to which it is associated
y Should know that signal is ‘Z’/’X’ during power down.
y Qualify the checks with PwrOk or Reset of the module
void Monitor() {
if(RTL_IP_IReset != RTL_IP_IReset[-1]) {
return();
}
}
OR
void Monitor() {
If (RTL_PwrOk.IsX ==1 or RTL_PwrOk == 1’b0) {
return();
}
}
22
Verification guidelines
y Always assume 4-state values for RTL signals:
y Qualify the control signal to see if it is ‘Z’/’X’
y Then check for correct value of the signal (1’b1 or
1’b0)
y In C/C++ Domain ‘X’ is seen as 1’b1 & ‘Z’ is seen as
1’b0
23
Verification guidelines
// *** Wrong coding ***//
void Monitor() {
if(RTL_BIST_Complete == 1) {
…
// checks//
}
24
Verification guidelines
• Test plan is to check if it is not ‘X’ or ‘Z’
25
References
y Diagrams on “Power reduction techniques”
y Synopsys Low-Power Flow User Guide (Version A-
2007.12, December 2007)
26
Good Bye
27