You are on page 1of 27

Challenges, Possible Solutions and Flow Changes

for Low Power Design Verification of


Complex Chips

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

y Multi-Vt (Threshold Voltage) Library cells


4 y High Vt transistors for low speed blocks => Low static leakage
current
Low Power Techniques Overview
y Power switching
y Shut down when idle.
y Leakage power & Switching power is lowered.

Module under

Power gating

Power Port

Switching circuit

Top level module outside power gating


Power Port
5
Low Power Techniques
Overview
y Level shifter

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

y Firewall the ports when chip ‘PwrOk’ is not set


y Correct Protection gates to be implemented between
power domains

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.

//*** Wrong Initialization ***//


initial begin
num_phases = 5'b11100;
end

//*** Correct Initialization ***//


always @(posedge VDD_IP) begin
num_phases = 5'b11100;
end
17
RTL design guidelines
y Expression in instantiation
y Wrong/No power domain assigned to ‘AND’

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//
}

// *** Correct coding ***//


void Monitor() {
if (RTL_BIST_Complete == 1 && RTL_BIST_Complete.IsXorZ()
!= 1) {

// checks//
}

24
Verification guidelines
• Test plan is to check if it is not ‘X’ or ‘Z’

// *** Correct coding ***//


void Monitor() {
if (IntState == SLEEP) {
if(RTL_DramReset.IsXorZ() == 1 || RTL_DramReset == 1)
{
Error (“Un-expected X/Z”);
} else {}

25
References
y Diagrams on “Power reduction techniques”
y Synopsys Low-Power Flow User Guide (Version A-
2007.12, December 2007)

26
Good Bye

THANKS FOR YOUR TIME

27

You might also like