vlsi programming of asynchronous circuits for low power kees van berkel philips research lab. martin...

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

Upload: eden-faye

Post on 15-Dec-2015

222 views

Category:

Documents


0 download

TRANSCRIPT

VLSI Programming of Asynchronous circuits for Low

Power

Kees van BerkelPhilips Research Lab.

Martin RemEindhoven University of Technology

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

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

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.

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

1

0

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

0

1 1

• C. And: Eand=2

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

1

0 0

• E. OR: Eor=2

Basic gate energy consumption:

• Another Or: Eor=1

• Another And: Eand=1

C

A

0

B

B

C

1

A

B

B

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

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

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

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

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

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

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)

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

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

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

Control Handshake Components• Parallel : Epar = ?

||b c

a

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

Datapath Handshake Components• Handshake latch:

Lw r

W0

W1

Wa

Q

Q'

Q

Q'

read1

QA1

QA0

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

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

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

L r T c L

;*#

a T b

;*

wr

r wr

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

Datapath Handshake Components• Comparator:

• And Operation:

c a

c

b

& a

c

b

Handshake Circuit

• Addition:

* ;

i

r Ta

c L

r Tb

c L

+|| T c

Handshake Circuit

• Waggin FIFO:

#

* ;| |a b

r

wr

wr

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

Handshake Circuit: Optimization• Seq-Mixer reordering

r1

p1* ;

* ;

|

| p2

p1

p2;*|

r2

r1

r2