PTL Synthesis - College of Engineering | UMass Amherst

Download Report

Transcript PTL Synthesis - College of Engineering | UMass Amherst

Synthesis for
Pass Transistor Logic
Maciej Ciesielski
Dept. of Electrical & Computer Engineering
University of Massachusetts, Amherst, USA
[email protected]
 2000 M. Ciesielski
PTL Synthesis
1
Overview
• Introduction
– Pass transistor basics
– Electrical considerations: margin, delay, power
– Pass transistor logic (PTL)
• Pass transistor logic synthesis
– Based on conventional (CMOS) synthesis
• Logic gates implemented in PTL
– BDD-based synthesis
• BDD mapping onto Y cells [Yano 96]
• BDD decomposition + mapping onto CMOS and PTL
(BDS system, [Yang 99]
 2000 M. Ciesielski
PTL Synthesis
2
Pass Transistor - Basics
• Works as a switch: on / off
• Noise margin problem
– nMOS: passes clear 0, degrades 1
Vdd
0
Vdd
0
Vdd-Vth
Vdd
– pMOS: passes clear 1, degrades 0
- Vdd
- Vdd
0
Vth
Vdd
Vdd
• Need restoring logic (buffers), pass transmission gates
 2000 M. Ciesielski
PTL Synthesis
3
Pass Transistor
Electrical Characteristics
• Delay through a chain of pass transistors:
Rn
Rn
Cg
Rn
Cg
Rn
Cg
Cg
del = RnCg + 2 RnCg + … + n RnCg = RnCg(1 + 2 + … n)
= RnCg (n + 1) n / 2
• Remedy: limit number of pass transistors to 3
 2000 M. Ciesielski
PTL Synthesis
4
Pass Transistor - Applications
• Specialty, custom circuits
– XOR, etc.
• Arithmetic logic
– Custom designed arithmetic circuits
– Regularity, low area, low power
• Control logic ?
– No working methodology for logic synthesis, yet
 2000 M. Ciesielski
PTL Synthesis
5
Conventional (CMOS) Logic Synthesis
- Review • Targeting only CMOS logic gates
– Static: no dynamic logic, no pass transistors
• Optimization metrics based on literal *count
• Minimize the number of literals
• One-to-one correspondence with transistor signals:
n literals => 2n CMOS transistors
F = (A B C)’ = A’+B’+C’
A
F
B
C
* Literal
= variable or its complement
 2000 M. Ciesielski
PTL Synthesis
6
Conventional Logic Synthesis - Review
• Boolean expressions mapped on CMOS standard cells
– AND, OR, NAND, NOR, complex gates
– Logic functions expressed in terms of those by logic
optimization tools (SIS, Synopsys DC, etc.)
– No MUXes, no XORs
• Large standard cell libraries
– 200-300+ elements (different # of inputs, power capability)
– Difficult to maintain, upgrade with technology change
• Algebraic manipulation of Boolean expressions
– Algebraic factorization (simple): ab + ac = a(b + c)
– Boolean factorization (better): (a + b)(a + c) = a + bc
 2000 M. Ciesielski
PTL Synthesis
7
PTL-based Logic Synthesis:
a Simple-minded Approach
• Based on mapping AND/OR gates onto PTL cells
– use conventional multi-level logic optimization
– generate Boolean expressions
– map onto AND/OR gates implemented as PTL (MUXes)
A
A
F=AB?
B
B
F
B = 1: F = A
F=AB
B = 0: F = Z
 2000 M. Ciesielski
PTL Synthesis
8
Example: Conventional CMOS design
• Conventional logic synthesis
• Results mapped onto CMOS gates
C
F = A’B’ + BC’ + A’C
B
F
A
NAND
NAND
[ ( A’(B’ + C) )’ · (B’ + C) ]’ = A’B’ + BC’ + A’C
 2000 M. Ciesielski
PTL Synthesis
9
Example: Conventional design + PTL
• Conventional logic synthesis
• Gates mapped onto PTL gates
C
B
A
F = A’B’ + BC’ + A’C
NAND
NAND
F
[ ( A’(B’ + C) )’ · (B’ + C) ]’ = A’B’ + BC’ + A’C
 2000 M. Ciesielski
PTL Synthesis
10
Comparison: CMOS vs. PTL
F = A’B’ + BC’ + A’C
C
C
F
B
B
A
A
NAND
NAND
Transistor count:
Cell count:
Area:
Delay:
Power:
 2000 M. Ciesielski
PTL
NAND
NAND
16
4
852 m2
652 ps
1.81 W/MHz
(1)
(1)
(1)
(1)
(1)
PTL Synthesis
30
4
1158 m2
877 ps
2.17 W/MHz
PTL
F
(1.88)
(1)
(1.36)
(1.35)
(1.20)
11
Conventional design with PTL
- Problems • Simple-minded approach
– Literal count (good for CMOS), does not work for PTL
– Algebraic methods not compatible with MUX-based design
• Inefficient
– Large area, delay, power
• Need better approach, compatible with MUX concept
 2000 M. Ciesielski
PTL Synthesis
12
PTL-based Logic Synthesis:
a MUX-based Approach
• Approach based on Shannon expansion
– Represent Boolean logic as a BDD
– Map BDD nodes onto PTL gates
• MUXes: simple and multiple-input (Y cells)
PTL tree
BDD
Review Binary Decision Diagrams (BDD)
 2000 M. Ciesielski
PTL Synthesis
13
Binary Decision Diagrams (BDD)
• Convenient data structure for Boolean logic
representation and manipulation
– Decision graph, derived from Shannon expansion
• each node represents Shannon expansion along a
variable:
f = x fx + x’ fx’
– Represent sets of objects (states, product terms, etc.)
encoded as Boolean functions
– Each path represents an implicant (product term)
– Reduced BDD - irredundant
– Ordered BDD - canonical
• Application to logic synthesis and verification
– Canonicity property (reduced ordered BDDs)
 2000 M. Ciesielski
PTL Synthesis
14
BDD - Construction
• Construction of a Reduced Ordered BDD
f
f = ac + bc
a b c
f
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
a
b
b
c
0
c
0
0
Truth table
 2000 M. Ciesielski
1 edge (fx)
0 edge (fx’)
c
1
0
c
1
0
1
Decision tree
PTL Synthesis
15
BDD Construction – cont’d
f
f
a
a
b
b
c
c
0
c
c
1
1. Remove
duplicate terminals
 2000 M. Ciesielski
f = (a+b)c
a
b
b
c
c
0
1
2. Remove
duplicate nodes
PTL Synthesis
b
c
0
1
3. Remove
redundant nodes
16
Application to Verification
• Equivalence of combinational circuits
• Canonicity property of BDDs:
– if F and G are equivalent, their BDDs are
identical (for the same ordering of variables)
F = a’bc + abc +ab’c
a
a
b
c
0
 2000 M. Ciesielski

1
b
c
0
PTL Synthesis
G = ac +bc
1
17
Application to Verification, cont’d
• Functional test generation
H
– SAT, Boolean satisfiability analysis
– to test for H = 1 (0), find a path in the
a
BDD to terminal 1 (0)
– the path, expressed in function
variables, gives a satisfying solution
(test vector)
b
ab
c
0
 2000 M. Ciesielski
PTL Synthesis
ab’c
1
18
Application to Synthesis
• BDD node = simple multiplexer (MUX)
F = x Fx + x’ Fx’
F
F
x
Fx’
 2000 M. Ciesielski
x’
Fx
x
Fx’
PTL Synthesis
Fx
19
Application to Synthesis
(simple-minded approach)
• Represent each BDD node as a MUX,
implemented in PTL
F = ac +bc
a
F = ac +bc
a
bc
b
b
c
c
c
0
1
0
 2000 M. Ciesielski
PTL Synthesis
1
20
PTL-based Logic Synthesis
- Problems • Ineffective for larger circuits
–
–
–
–
too large, too slow, too many MUXes
pass transistor chains are too long
need separating buffers
need methodology for synthesizing circuits from
their BDDs
 2000 M. Ciesielski
PTL Synthesis
21
Logic Synthesis
based on Pass Transistor Logic
• Introduce a few PTL cells
– easy to maintain cell library
A
A B
A
B
C’
C
Y1 cell
 2000 M. Ciesielski
B
E F
C
D
D’
C
G
E
E’
D
Y2 cell
PTL Synthesis
C’
G’
D’
Y3 cell
22
Basic CMOS and PTL cells
CMOS cell
PTL cell
A
A
B
C
D
F
B
E
C
NAND
Y2
F = (A B C)’ = A’+B’+C’
 2000 M. Ciesielski
F
F’ = E(A D + B D’) + E’ C
PTL Synthesis
23
Characteristics - PTL vs. CMOS cell
F = (A B C)’ = A’+B’+C’
A
A
B
F
B
C
C
CMOS
Transistor count:
Cell count:
Area:
Delay:
Power:
 2000 M. Ciesielski
6
1
329 m2
295 ps
0.91 W/MHz
PTL
(1)
(1)
(1)
(1)
(1)
PTL Synthesis
F
13
(2.17)
3
(3)
579 m2
(1.75)
465 ps
(1.58)
0.96 W/MHz (1.05)
24
PTL-based Logic Synthesis:
a multi-input MUX-based Approach
• Based on multi-input MUXes (Y cells)
F = (ACB + AB’)’ = A’B’ + BC’ + A’C
A
C
B
Y2 cell
 2000 M. Ciesielski
Y2 cell
PTL Synthesis
25
MUX-based Approach
• Compare to conventional approach with PTL gates
(numbers relative to CMOS)
C
A
B
C
A
B
NAND
Transistor count:
Cell count:
Area:
Delay:
Power:
 2000 M. Ciesielski
NAND
30
4
1158 m2
877 ps
2.17 W/MHz
Y2cell
(1.88)
(1)
(1.36)
(1.35)
(1.20)
PTL Synthesis
13
3
579 m2
465 ps
0.96 W/MHz
(0.81)
(0.75)
(0.68)
(0.71)
(0.53)
26
PTL Synthesis Flow [Yano 96]
• Express Boolean logic as shared, multi-output BDD
• Partition BDD into smaller sub-trees, isomorphic with Y
cells
• Map each sub-tree onto a Y cell
• Insert buffers at the Y-cell boundaries
• this keeps pass transistor chains limited to 2 (Y tree height)
• Fix circuit polarity by propagating inverters
• Adjust inverter power (P2,4,etc) according to cell load
 2000 M. Ciesielski
PTL Synthesis
27
Y-cell based PTL Synthesis - Example
• Create shared BDD
f = w + x + (y z + y’z’)
g = w (y z + y’z’)
Y1
g
f
w
w
Y2
• Partition BDD into sub-trees and
map each sub-trees to a Y cell
x
y
• Note: Cell type depends on the
logic implemented, not just on
the number of variables/inputs
 2000 M. Ciesielski
PTL Synthesis
Y1
z
0
z
1
28
Example: PTL mapping
g
f
w
f = w + x + (y z + y’ z’)
g = w (y z + y’ z’)
f
g
Y2
w
Y1
x
w
x
w
y
Y1
z
z
y
z
0
 2000 M. Ciesielski
1
PTL Synthesis
f = [w’ x’ (y z + y’ z’)’] ’ =
w + x + (y z + y’ z’)
g = [w’ + w (y z + y’ z’)’]’ =
w (y z + y’ z’)
29
PTL Synthesis - Results
• Impressive results for control logic and
arithmetic circuits
– improvement in area, delay and power !
– need BDD synthesis & partitioning methodology
– use CMOS gates as natural buffers?
• New research (BDS) – mixing CMOS with PTL
 2000 M. Ciesielski
PTL Synthesis
30