Presentation on theme: "VLSI Programming of Asynchronous circuits for Low Power Kees van Berkel Philips Research Lab. Martin Rem Eindhoven University of Technology."— Presentation transcript:
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: 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: E inv =1 output =1 when input = 0
Basic gate energy consumption: B. Nand: E nand =1 C. And: E and =2
Basic gate energy consumption: D. Nor : E nor =1 E. OR: E or =2
Basic gate energy consumption: Another Or: E or =1 Another And: E and =1
Basic gate energy consumption: E: Xor: E xor =2 F: Xor: E xor =1.5 C=1 if A=1 and B=0 or A=0 B=1
Basic gate energy consumption: G: Xnor: E xnor =2 Xnor: E xnor =1.5
Basic gate energy consumption: C-element: E c =3 another C-element: E c =2
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 Active port passive port
Control Handshake Components repeater: E rep =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. x Active port passive port
Control Handshake Components sequencer: E seq =10 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-
Control Handshake Components mixer (call element): E mix = E call = 8 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: E dup = E seq + 2E mix =26 -fold repeater: E 2m = E dup
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)
Control Handshake Components select: E sel = ? (hw)
Control Handshake Components Parallel : E par = ?
Datapath Handshake Components Handshake latch:
Datapath Handshake Components Transfer: E tran =0 Simple assignment: E ass =no of bits*(E read +E write )
Datapath Handshake Components 2-place ripple register: Tangram Program: proc (a?W & b!W) begin x0,x1: var W | forever do b!x1; x1:=x0;a?x0 end x0x1