Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
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: Ni 1CiVdd 1 C Vdd Ni 2 2 2 2 L i i where Ni : # of output transition s on gate i Ci : the load capcitance of gate i C L : the average load capacitanc e Vdd : supply voltage • To reduce the energy consumption of ICs: A. reduce the energy consumption per transition B. reduce the number of transitions 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 1 0 1 • C. And: Eand=2 Basic gate energy consumption: • D. Nor : Enor=1 1 0 0 • E. OR: Eor=2 Basic gate energy consumption: B • Another And: Eand=1 A B C 0 • Another Or: Eor=1 B 1 B A C Basic gate energy consumption: • E: Xor: Exor=2 • F: Xor: Exor=1.5 1 1 A A' A B' A B A' B' B' A B C C B A' A B B B' 0 0 C=1 if A=1 and B=0 or A=0 B=1 B' Basic gate energy consumption: • Xnor: Exnor=1.5 • G: Xnor: Exnor=2 1 1 A B A' B' A A' B B' A B A C A A' B' B' B 0 C B 0 B' Basic gate energy consumption: • C-element: Ec=3 • another C-element: Ec=2 1 weak A 1 1 B A C 1 B C A B C 0 A B 0 0 Control Handshake Components • repeater: control the a unbounded repetition of an action. b # passive port Active port • Sequencer: control the sequential execution of two actions b ;* a • mixer: provide access to a shared resource to two parties a c | b c Control Handshake Components aa • repeater: Erep=2 a # passive port b ba ar x Active port • 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. br Control Handshake Components • sequencer: Eseq=10 ba b a ;* c • initial x=1 y=0 1 1 x y ar ar ba ar br ba 0 cr 0 aa 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- ca Control Handshake Components • mixer (call element): Emix= Ecall= 8 aa C a | c a r br b ba C • 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) ca cr ca Control Handshake Components • duplicator: Edup= Eseq + 2Emix =26 a0 #2 a1 ;* a0 | a1 • 2 m -fold repeater: E2m= 2 m Edup a0 a0 #2m #2 am a1 #2 a2 am-1 #2 am Control Handshake Components • N-fold repeater: A. N=1 : wire B. N is even: N=2*(N/2) ar br aa ba a ;* C. N is odd: N=1+(N-1) a | ;* | n-1 b n/2 b Control Handshake Components • select: Esel = ? (hw) a b d c e [l] wa a1 br ba C r1 a ;* C dr da r2 a2 wb wd L cr er ca ea Control Handshake Components • Parallel : Epar = ? PAR(a , b , c ) *(ar; (br; ba) || (cr; ca); aa) a b || c Datapath Handshake Components • Handshake latch: w L r W0 Q Q Wa read1 Q' W1 QA1 Q' QA0 Datapath Handshake Components ar aa • Transfer: Etran=0 a b c T br ca b0 c0 b1 c1 • Simple assignment: Eass=no of bits*(Eread+Ewrite) a y.w L y.r r T x.w cL x.r Datapath Handshake Components • 2-place ripple register: Tangram Program: proc (a?W & b!W) r wr begin x0,x1: var W | forever do b!x1; x1:=x0;a?x0 end # ;* ;* x0 a T L x1 r T c L T b Datapath Handshake Components • 4-place ripple register: • n-place ripple register: a # ;* wr L r wr ;* r T c L T b Datapath Handshake Components • Adder: ADD(a ! Ta, b ?Tb, c ?Tc) | [x : Tb, y : Tc | *(ar; (br; ba(x) || cr; ca(y)); aa(x y)) ]| b + c a Datapath Handshake Components • Comparator: b c a & a c • And Operation: b c Handshake Circuit i • Addition: *; a r c T L + || b r T c L T c Handshake Circuit • Waggin FIFO: # wr a | | *; r wr b Handshake Circuit: Optimization • Mixer: ar+ ==> ca+ ar- ==> ca- aa ar br ca ca aa ar br ar 0 C ca C + ca weak aa ca cr Asymmetric C-element ba 1 C ba + C cr ca Handshake Circuit: Optimization • Seq-Mixer reordering r1 *; | p1 | p2 r2 *; r1 | r2 ;* p1 p2