vlsi programming of asynchronous circuits for low power kees van berkel philips research lab. martin...
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:
• 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:• 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
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
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