ESE370: Circuit-Level Modeling, Design, and …ese370/fall2019/handouts/lec...ESE370: Circuit-Level...

Post on 19-Aug-2020

2 views 0 download

Transcript of ESE370: Circuit-Level Modeling, Design, and …ese370/fall2019/handouts/lec...ESE370: Circuit-Level...

ESE370: Circuit-Level Modeling, Design, and Optimization for Digital Systems

Lec 15: October 7, 2019 Energy and Power Basics

Penn ESE 370 Fall 2019 - Khanna

Previously

!  Where capacitance arises "  Device materials

!  What drives delay "  Equivalent drive resistance and load capacitance

!  Optimize delay "  τ-estimate "  Transistor sizing "  Fanin/fanout "  Drive in stages

2 Penn ESE 370 Fall 2019 - Khanna

Today

!  Power Sources "  Static power "  Switching power

"  Dynamic switching power "  Short circuit power

3 Penn ESE 370 Fall 2019 - Khanna

Power

!  P = I×V

!  Tricky part: "  Understanding I "  (pairing with correct V)

4 Penn ESE 370 Fall 2019 - Khanna

Inverter Current Simplification

Penn ESE 370 Fall 2019 - Khanna 5

!  What is Ipwr,gnd? "  0V "  140mV "  400mV "  500mV "  600mV "  860mV "  1V

"  From preclass – see next two slides

Preclass (1/2)

Penn ESE 370 Fall 2019 - Khanna 6

Preclass (2/2)

Penn ESE 370 Fall 2019 - Khanna 7

Inverter Current Simplification

!  What is Ipwr,gnd? "  0V "  140mV "  400mV "  500mV "  600mV "  860mV "  1V

Penn ESE 370 Fall 2019 - Khanna 8

Understanding Currents

Static Power

9 Penn ESE 370 Fall 2019 - Khanna

Operating Modes

!  Steady-State: What modes are the transistors in? "  Vin=Vdd

"  Vin=Gnd

!  What current flows in steady state?

10 Penn ESE 370 Fall 2019 - Khanna

Operating Modes

!  Steady-State: Vin=Vdd

"  PMOS: subthreshold "  NMOS: resistive

11 Penn ESE 370 Fall 2019 - Khanna

Operating Modes

!  Steady-State: Vin=Vdd

"  PMOS: subthreshold "  NMOS: resistive

12

IDSp = −IS#WL

$

% &

'

( ) e

−VGS −VTnkT / q

$

% &

'

( )

1− eVDSkT / q$

% &

'

( )

$

% & &

'

( ) ) 1− λVDS( )

IDSn = µnCOXWL

!

"#

$

%& VGS −VT( )VDS −

VDS2

2(

)*

+

,-

Penn ESE 370 Fall 2019 - Khanna

Operating Modes

!  Steady-State: Vin=Vdd

"  PMOS: subthreshold "  NMOS: resistive

13

IDSp = −IS#WL

$

% &

'

( ) e

−VGS −VTnkT / q

$

% &

'

( )

1− eVDSkT / q$

% &

'

( )

$

% & &

'

( ) ) 1− λVDS( )

IDSn = µnCOXWL

!

"#

$

%& VGS −VT( )VDS −

VDS2

2(

)*

+

,-

Which current determines Istatic ?

Penn ESE 370 Fall 2019 - Khanna

Operating Modes

!  Steady-State: Vin=Vdd

"  PMOS: subthreshold "  NMOS: resistive

14

IDSp = −IS#WL

$

% &

'

( ) e

−VGS −VTnkT / q

$

% &

'

( )

1− eVDSkT / q$

% &

'

( )

$

% & &

'

( ) ) 1− λVDS( )

IDSn = µnCOXWL

!

"#

$

%& VGS −VT( )VDS −

VDS2

2(

)*

+

,-

Which current determines Istatic ?

Penn ESE 370 Fall 2019 - Khanna

Static Power

!  P = I×V !  What V should we use?

"  Where is the static current flowing?

15 Penn ESE 370 Fall 2019 - Khanna

Data Dependent?

!  How does the binary value of the input impact Istatic?

16 Penn ESE 370 Fall 2018 - Khanna

Data Dependent?

!  How does the binary value of input impact Istatic?

17

IDS = IS"WL

#

$ %

&

' ( e

VGS −VTnkT / q

#

$ %

&

' (

1− e−VDSkT / q#

$ %

&

' (

#

$ %

&

' ( 1+ λVDS( )

Penn ESE 370 Fall 2018 - Khanna

Out

1

2

1

2

1

2

1

2

A

B

Data Dependent Leakage Current

Penn ESE 370 Fall 2018 - Khanna 18

ACM Great Lakes Symposium on VLSI Stresa, I. (n.d.). Analysis of data dependence of leakage current in CMOS cryptographic hardware. In GLSVLSI ’07 proceedings of the 2007 ACM Great Lakes Symposium

on VLSI : Stresa - Lago Maggiore, Italy, March 11-13, 2007 /. New York, N.Y. :: Association for Computing Machinery. https://doi.org/10.1145/1228784.1228808

Understanding Currents

Dynamic Switching Currents

19 Penn ESE 370 Fall 2019 - Khanna

Power: During Switching

!  P = IV !  Input switch: 1#0 !  Where does I go?

"  Vin=Gnd

20 Penn ESE 370 Fall 2019 - Khanna

Power: During Switching

!  P = IV !  Input switch: 1#0 !  Where does I go?

"  Vin=Gnd

21 Penn ESE 370 Fall 2019 - Khanna

Power: During Switching

!  P = IV !  Input switch: 1#0 !  Where does I go?

"  Vin=Gnd

22

Subtheshold Leakage

Idyn (Saturation/Linear)

Penn ESE 370 Fall 2019 - Khanna

Power: During Switching

!  P = IV !  Input switch 0#1 !  Where does I go?

"  Vin=Vdd

23 Penn ESE 370 Fall 2019 - Khanna

Power: During Switching

!  P = IV !  Input switch 0#1 !  Where does I go?

"  Vin=Vdd

24 Penn ESE 370 Fall 2019 - Khanna

Power: During Switching

!  P = IV !  Input switch 0#1 !  Where does I go?

"  Vin=Vdd

25

Subtheshold Leakage

Idyn (Saturation/Linear)

Penn ESE 370 Fall 2019 - Khanna

Switching Currents

!  Dynamic current flow:

26 Penn ESE 370 Fall 2019 - Khanna

Understanding Currents

Short Circuit Currents

27 Penn ESE 370 Fall 2019 - Khanna

Power: During Switching

!  P = IV !  Where does I go?

"  Vin=Vdd/2 "  And Vdd>Vthn+|Vthp|

28 Penn ESE 370 Fall 2019 - Khanna

Power: During Switching

!  P = IV !  Where does I go?

"  Vin=Vdd/2 "  And Vdd>Vthn+|Vthp|

29

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 0.2 0.4 0.6 0.8 1

Vou

t

Vin

CMOS Inverter DC Transfer

Linear/Saturation

Penn ESE 370 Fall 2019 - Khanna

Linear/Saturation

Switching Currents

!  Dynamic current flow:

!  If both transistor on: "  Current path from Vdd

to Gnd "  Short circuit current

30 Penn ESE 370 Fall 2019 - Khanna

Currents Summary

!  Current (I) changes over time !  At least two components

"  Istatic – no switching "  Iswitch – when switching

"  Idyn and Isc

31 Penn ESE 370 Fall 2019 - Khanna

Currents Summary

!  Current (I) changes over time !  At least two components

"  Istatic – no switching "  Iswitch – when switching

"  Idyn and Isc

32

VRAMP

CLK

φ

ramp_enable

Penn ESE 370 Fall 2019 - Khanna

Switching

Dynamic Power

33 Penn ESE 370 Fall 2019 - Khanna

Switching Currents

!  Itotal(t) = Istatic(t)+Iswitch(t)

!  Iswitch(t) = Isc(t) + Idyn(t)

34

Isc

Istatic

Idyn

Penn ESE 370 Fall 2019 - Khanna

Charging

!  Idyn(t) – why is it changing? "  Ids = f(Vds,Vgs) "  and Vgs, Vds changing

35

IDS = µnCOXWL

"

# $

%

& ' VGS −VT( )VDS −

VDS2

2)

* +

,

- .

IDS ≈νsatCOXW VGS −VT −VDSAT

2%

& '

(

) *

Penn ESE 370 Fall 2019 - Khanna

Switching Energy – focus on Idyn(t)

36 Penn ESE 370 Fall 2019 - Khanna

Isc

Istatic

Idyn

Switching Energy – focus on Idyn(t)

E = P(t)dt∫= I(t)Vdd dt∫=Vdd I(t)dt∫

37

Idyn

Penn ESE 370 Fall 2019 - Khanna

Switching Energy

38

!  Do we know what this is?

Idyn

Idyn (t)dt∫

E = P(t)dt∫= I(t)Vdd dt∫=Vdd I(t)dt∫

Penn ESE 370 Fall 2019 - Khanna

Switching Energy

39

!  Do we know what this is?

Idyn

E = P(t)dt∫= I(t)Vdd dt∫=Vdd I(t)dt∫

Penn ESE 370 Fall 2019 - Khanna

Q = Idyn (t)dt∫

Switching Energy

40

!  Do we know what this is?

!  What is Q? Idyn

E = P(t)dt∫= I(t)Vdd dt∫=Vdd I(t)dt∫

Penn ESE 370 Fall 2019 - Khanna

Q = Idyn (t)dt∫

Switching Energy

41

!  Do we know what this is?

!  What is Q? Idyn

E = P(t)dt∫= I(t)Vdd dt∫=Vdd I(t)dt∫

Penn ESE 370 Fall 2019 - Khanna

Q = Idyn (t)dt∫=CV

Switching Energy

42

!  Do we know what this is?

!  What is Q? Idyn

E = P(t)dt∫= I(t)Vdd dt∫=Vdd I(t)dt∫

Penn ESE 370 Fall 2019 - Khanna

Q = Idyn (t)dt∫=CV

E = CVdd2

Capacitor charging energy

Switching Power

!  Every time output switches 0#1 pay: "  E = CV2

!  Pdyn = (# 0#1 trans) × CV2 / time

!  # 0#1 trans = ½ # of transitions

!  Pdyn = (# trans) × ½CV2 / time

43 Penn ESE 370 Fall 2019 - Khanna

Data Dependent Activity

!  Consider an 8b counter "  How often do each of the following switch?

"  Low bit? "  High bit?

!  Assuming random inputs "  Activity at output of nand2? "  Activity at output of xor2?

44 Penn ESE 370 Fall 2018 - Khanna

Gate Output Switching (random inputs)

45

0

1

P(outi!=outi+1)=P(outi=0)*P(outi+1=1)+P(outi=1)*P(outi+1=0)

i i+1

Output states

Probablity of output switch of nand4? Probablity of output switch of xor4?

Penn ESE 370 Fall 2018 - Khanna

Charging Power

!  Pdyn = (# trans) × ½CV2 / time !  Often like to think about switching frequency !  Useful to consider per clock cycle

"  Frequency f = 1/clock-period = clock-cycles/time

!  Pdyn = (#trans/clock-cycle) ½CV2 f

46 Penn ESE 370 Fall 2018 - Khanna

Charging Power

!  Pdyn = (#0#1 trans) × CV2 / time !  Often like to think about switching frequency !  Useful to consider per clock cycle

"  Frequency f = 1/clock-period = clock-cycles/time

!  Pdyn = (#0#1 trans/clock-cycle) CV2 f

47 Penn ESE 370 Fall 2018 - Khanna

Dynamic Power

!  Pdyn = (#0#1 trans/clock-cycle) CV2 f !  Let a = activity factor

a = average #tran0#1/clock a = probability of #tran0#1

!  Pdyn = aCV2 f

48 Penn ESE 370 Fall 2018 - Khanna

Activity Factor

!  Let a = activity factor "  a = average #tran0#1/clock "  a = probability of #tran0#1

Penn ESE 370 Fall 2018 - Khanna 49

a = p(outi = 0)p(outi+1 =1)

a = N0

2NN12N

=N0 (2

N − N0 )22N

Switching

50 Penn ESE 370 Fall 2019 - Khanna

Short Circuit Power

Short Circuit Power

!  Between VTN and Vdd - VTP

"  Both N and P devices conducting

51 Penn ESE 370 Fall 2019 - Khanna

Short Circuit Power

!  Between VTN and Vdd - VTP

"  Both N and P devices conducting

!  Roughly:

52

Isc

Penn ESE 370 Fall 2019 - Khanna

Vin

time

Vout

Isdp

time

time

time

Vthn

Vdd

Vdd

Vdd-Vthp

Isc

tsc tsc

Peak Current

!  Ipeak around Vdd/2 "  If |VTN|=|VTP| and sized equal rise/fall

53

IDS ≈νsatCOXW VGS −VT −VDSAT

2%

& '

(

) *

Penn ESE 370 Fall 2019 - Khanna

Vin

time

Vout

Isdp

time

time

time

Vthn

Vdd

Vdd

Vdd-Vthp

Isc

tsc tsc

Peak Current

!  Ipeak around Vdd/2 "  If |VTN|=|VTP| and sized equal rise/fall

54

IDS ≈νsatCOXW VGS −VT −VDSAT

2%

& '

(

) *

I(t)dt∫ ≈ Ipeak × tsc ×12%

& ' (

) *

Penn ESE 370 Fall 2019 - Khanna

Vin

time

Vout

Isdp

time

time

time

Vthn

Vdd

Vdd

Vdd-Vthp

Isc

tsc tsc

Vin

time

Vout

Isdp

time

time

time

Vthn

Vdd

Vdd

Vdd-Vthp

Isc

tsc tsc

Peak Current

!  Ipeak around Vdd/2 "  If |VTN|=|VTP| and sized equal rise/fall

55

IDS ≈νsatCOXW VGS −VT −VDSAT

2%

& '

(

) *

I(t)dt∫ ≈ Ipeak × tsc ×12%

& ' (

) *

E =Vdd × Ipeak × tsc ×12#

$ % &

' (

Penn ESE 370 Fall 2019 - Khanna

Short Circuit Energy

!  Make it look like switching an equivalent capacitance, CSC

"  Q=I×t "  Q=CV

56

E =Vdd × I peak × tsc ×12"

#$%

&'

"

#$

%

&'

E =Vdd ×QSC

E =Vdd × (CSCVdd ) =CSCV2dd

Penn ESE 370 Fall 2019 - Khanna

Short Circuit Energy

!  Make it look like switching an equivalent capacitance, CSC

"  Q=I×t "  Q=CV

57

E =Vdd × I peak × tsc ×12"

#$%

&'

"

#$

%

&'

E =Vdd ×QSC

E =Vdd × (CSCVdd ) =CSCV2dd

Penn ESE 370 Fall 2019 - Khanna

CSC =I peaktsc2Vdd

Short Circuit Energy

!  Every time switch (0#1 and 1#0) "  Also dissipate short-circuit energy: E = CscV2

"  Ccs “fake” capacitance (for accounting)

58 Penn ESE 370 Fall 2019 - Khanna

Total Power

!  Ptot = Pstatic + Psc + Pdyn

!  Pdyn + Psc = aCloadV2f+2aCscV2f

!  Ptot ≈ a(Cload+2Csc)V2f+VI’s(W/L)e-Vt/(nkT/q)

59 Penn ESE 370 Fall 2018 - Khanna

Switching Waveforms

Penn ESE 370 Fall 2019 - Khanna 60

Switching Waveforms

Penn ESE 370 Fall 2019 - Khanna 61

Switching Waveforms

Penn ESE 370 Fall 2019 - Khanna 62

Switching Waveforms

Penn ESE 370 Fall 2019 - Khanna 63

Switching Waveforms

Penn ESE 370 Fall 2019 - Khanna 64

Ideas

!  Three components of power "  Static "  Dynamic "  Short-circuit

!  Ptot = Pstatic + Pdyn+ Psc

65 Penn ESE 370 Fall 2019 - Khanna

Admin

!  HW6 due Friday

66 Penn ESE 370 Fall 2019 - Khanna