290 likes | 452 Views
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:
E N D
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: Einv=1 • output =1 when input = 0
Basic gate energy consumption: • C. And: Eand=2 • B. Nand: Enand=1
Basic gate energy consumption: • D. Nor : Enor=1 • E. OR: Eor=2
Basic gate energy consumption: • Another And: Eand=1 • Another Or: Eor=1
Basic gate energy consumption: • E: Xor: Exor=2 • F: Xor: Exor=1.5 C=1 if A=1 and B=0 or A=0 B=1
Basic gate energy consumption: • Xnor: Exnor=1.5 • G: Xnor: Exnor=2
Basic gate energy consumption: • C-element: Ec=3 • another C-element: Ec=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 passive port Active port
Control Handshake Components • repeater: Erep=2 x passive port 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.
Control Handshake Components • sequencer: Eseq=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): Emix= Ecall= 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: Edup= Eseq + 2Emix =26 • -fold repeater: E2m= Edup
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: Esel = ? (hw)
Control Handshake Components • Parallel : Epar = ?
Datapath Handshake Components • Handshake latch:
Datapath Handshake Components • Transfer: Etran=0 • Simple assignment: Eass=no of bits*(Eread+Ewrite)
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 x0 x1
Datapath Handshake Components • 4-place ripple register: • n-place ripple register:
Datapath Handshake Components • Adder:
Datapath Handshake Components • Comparator: • And Operation:
Handshake Circuit • Addition:
Handshake Circuit • Waggin FIFO:
Handshake Circuit: Optimization • Mixer: ar+ ==> ca+ ar- ==> ca- Asymmetric C-element ca aa ca ar
Handshake Circuit: Optimization • Seq-Mixer • reordering r1 p1 r2 p2 r1 p1 p2 r2