VLSI Programming of Asynchronous circuits for Low Power

29
VLSI Programming of Asynchronous circuits for Low Power Kees van Berkel Philips Research Lab. Martin Rem Eindhoven University of Technology

description

VLSI Programming of Asynchronous circuits for Low Power. Kees van Berkel Philips Research Lab. Martin Rem Eindhoven University of Technology. Tangram:. Tool name: Tangram CMOS dissipates when active The power consumption = the amount of activity. Energy consumption: - PowerPoint PPT Presentation

Transcript of VLSI Programming of Asynchronous circuits for Low Power

Page 1: VLSI Programming of  Asynchronous circuits for Low Power

VLSI Programming of Asynchronous circuits for Low

Power

Kees van BerkelPhilips Research Lab.

Martin RemEindhoven University of Technology

Page 2: VLSI Programming of  Asynchronous circuits for Low Power

Tangram:

• Tool name: Tangram• CMOS dissipates when active• The power consumption = the amount of activity.• Energy consumption:

• To reduce the energy consumption of ICs: A. reduce the energy consumption per transition B. reduce the number of transitions

voltage supply :Vdd

ecapacitanc load average the :C

i gate of capcitance load the :Ci

i gate on stransitionoutput of # :Ni where

L

i

Li

NiVddCCiVddNi 22

2

1

2

1

Page 3: VLSI Programming of  Asynchronous circuits for Low Power

Tangram: An ancient Chinese game that is also known as "the wisdom puzzle".

Page 4: VLSI Programming of  Asynchronous circuits for Low Power

Tangram:

• Tangram programs contain 4-p HS components.• Think two-phase build four-phase• HS components are connected through channels• Channel has two ports. A. active port (signal a request). B. passive port (respond an ack).• Channel has two wires: Xreq and Xack.• Note that for CMOS

0-->1 consume power (charge capacitance).1-->0 discharge the capacitance.

Page 5: VLSI Programming of  Asynchronous circuits for Low Power

Basic gate energy consumption:• A. Inverter: Einv=1 output =1 when input = 0

1

0

Page 6: VLSI Programming of  Asynchronous circuits for Low Power

Basic gate energy consumption:• B. Nand: Enand=1

0

1 1

• C. And: Eand=2

Page 7: VLSI Programming of  Asynchronous circuits for Low Power

Basic gate energy consumption:• D. Nor : Enor=1

1

0 0

• E. OR: Eor=2

Page 8: VLSI Programming of  Asynchronous circuits for Low Power

Basic gate energy consumption:

• Another Or: Eor=1

• Another And: Eand=1

C

A

0

B

B

C

1

A

B

B

Page 9: VLSI Programming of  Asynchronous circuits for Low Power

Basic gate energy consumption:• E: Xor: Exor=2

1

0 0

1

A

A'

B

B'

CA

B'

A'

BA A'

B B'

C

B'

B

A

A

B B'

• F: Xor: Exor=1.5

C=1 if A=1 and B=0 or A=0 B=1

Page 10: VLSI Programming of  Asynchronous circuits for Low Power

Basic gate energy consumption:• G: Xnor: Exnor=2

1

0 0

1

A

A'

B

B'

CA

B'

A'

B

A A'

B B'C

B

B'

A

A

B B'

• Xnor: Exnor=1.5

Page 11: VLSI Programming of  Asynchronous circuits for Low Power

Basic gate energy consumption:• C-element: Ec=3

1

0

weak

• another C-element: Ec=2

1

0 0

11

A A

AA

C

B

C

B

B

B

C

Page 12: VLSI Programming of  Asynchronous circuits for Low Power

Control Handshake Components• repeater: control the unbounded repetition of an action.

• Sequencer: control the sequential execution of two actions

• mixer: provide access to a shared resource to two parties

#a b

;*ac

b

| cb

a

Active portpassive port

Page 13: VLSI Programming of  Asynchronous circuits for Low Power

Control Handshake Components• repeater: Erep=2

• initial x=1 A. ar+ ==>x- (inv- +1) ==> br+ (nor+ 1) B. ba+ ==> br- (nor- 1) C. ba- ==> br+ (nor+ 1) D. ba+ ==> br- (nor- 1)• C and D loop forever.

xar

b r

aa ba

#a b

Active portpassive port

Page 14: VLSI Programming of  Asynchronous circuits for Low Power

Control Handshake Components• sequencer: Eseq=10

xy

ba

1

0

1

0ar

ar b r

c r

c aaa

ar

ba

ba

• initial x=1 y=0 A. ar+ ==> br+ (and+ 2) B. ba+ ==> x=0 y=1 (invX- invY+ 2) ==> br- (and- 2) C. ba- ==> cr+ (nor+ 1) D. ca+ ==> aa+ E. ar- ==> x=1 y=0 (invX+ invY- 2) ==> cr- (nor- 1) F. ca- ==> aa-

;*ac

b

Page 15: VLSI Programming of  Asynchronous circuits for Low Power

Control Handshake Components• mixer (call element): Emix= Ecall= 8

| cb

a C

C

aa

ba

arb r

c a

c r

c a• all variables are zero: A. ar+ ==> cr+ (or+ 2) B. ca+ ==> aa+ (c-ele+ 2) C. ar- ==> cr- (or- 2) D. ca- ==> aa- (c-ele- 2)

Page 16: VLSI Programming of  Asynchronous circuits for Low Power

Control Handshake Components• duplicator: Edup= Eseq + 2Emix =26

• -fold repeater: E2m= Edup

#2 a1a0 ;*a0 | a1

m2

#2 m ama0

#2a1a0 #2

a2 #2 am

am-1

m2

Page 17: VLSI Programming of  Asynchronous circuits for Low Power

Control Handshake Components• N-fold repeater: A. N=1 : wire

B. N is even: N=2*(N/2)

C. N is odd: N=1+(N-1)

aa

b rar

ba

;*a | bn/2

;*a | bn -1

Page 18: VLSI Programming of  Asynchronous circuits for Low Power

Control Handshake Components• select: Esel = ? (hw)

[l]b c

a

ed

L

C

C;*a

r2

b r

d r

r1 w bw d

w a

a1

er

c r

c aeaa2

ba

da

Page 19: VLSI Programming of  Asynchronous circuits for Low Power

Control Handshake Components• Parallel : Epar = ?

||b c

a

aa)ca);(cr;||ba)(br;*(ar;)c,b,PAR(a

Page 20: VLSI Programming of  Asynchronous circuits for Low Power

Datapath Handshake Components• Handshake latch:

Lw r

W0

W1

Wa

Q

Q'

Q

Q'

read1

QA1

QA0

Page 21: VLSI Programming of  Asynchronous circuits for Low Power

Datapath Handshake Components• Transfer: Etran=0

Tb c

a

b1

c 0b0

c 1

c ab r

ar aa

• Simple assignment: Eass=no of bits*(Eread+Ewrite)

Ly.w r Ty.r

c

a

Lx.w

x.r

Page 22: VLSI Programming of  Asynchronous circuits for Low Power

Datapath Handshake Components• 2-place ripple register: Tangram Program: proc (a?W & b!W)

beginx0,x1: var W

| forever do b!x1; x1:=x0;a?x0end

L r T c L

;*#

Ta T b

;*

x0 x1

r wr

Page 23: VLSI Programming of  Asynchronous circuits for Low Power

Datapath Handshake Components• 4-place ripple register: • n-place ripple register:

L r T c L

;*#

a T b

;*

wr

r wr

Page 24: VLSI Programming of  Asynchronous circuits for Low Power

Datapath Handshake Components• Adder:

+ a

c

b

|]

y))aa(xca(y));cr;||ba(x)(br;*(ar;|

Tc:y Tb, :[x|

?Tc)c?Tb,bTa,!ADD(a

Page 25: VLSI Programming of  Asynchronous circuits for Low Power

Datapath Handshake Components• Comparator:

• And Operation:

c a

c

b

& a

c

b

Page 26: VLSI Programming of  Asynchronous circuits for Low Power

Handshake Circuit

• Addition:

* ;

i

r Ta

c L

r Tb

c L

+|| T c

Page 27: VLSI Programming of  Asynchronous circuits for Low Power

Handshake Circuit

• Waggin FIFO:

#

* ;| |a b

r

wr

wr

Page 28: VLSI Programming of  Asynchronous circuits for Low Power

Handshake Circuit: Optimization• Mixer: C

C

aa

ba

arb r

c a

c r

c a

C

C

aa

ba

arb r

+

+

c a

c r

c a

ar+ ==> ca+ar- ==> ca-

Asymmetric C-element 1

0

weakca

ca

ar

aa

Page 29: VLSI Programming of  Asynchronous circuits for Low Power

Handshake Circuit: Optimization• Seq-Mixer reordering

r1

p1* ;

* ;

|

| p2

p1

p2;*|

r2

r1

r2