Logic Synthesis: Reminder: Lab #1 Due This Thursday!
Logic Synthesis: Reminder: Lab #1 Due This Thursday!
Resistance
22 gauge .0254 in 16 ohm/1000 feet
12 gauge .08 in 1.5 ohm/1000 feet
High voltage AC used to reduce loss
* Intel
6.111 Fall 2016 Lecture 2 6
Timing Specifications
Propagation delay (tPD): An upper bound on the delay
from valid inputs to valid
outputs (aka tPD,MAX)
VIN
VIH
VIL
Design goal:
minimize
VOUT < tPD < tPD propagation
delay
VOH
VOL
VIN
Do we really need
VIH tCD?
VIL
Usually not itll be
important when we
design circuits with
VOUT > tCD > tCD registers (coming
soon!)
VOH
If tCD is not
VOL specified, safe to
assume its 0.
A
B
> tCD
Must be ___________
< tPD
Must be ___________
Note:
1. No Promises during
2. Default (conservative) spec: tCD = 0
SUM-OF-PRODUCTS
-its systematic!
-it works!
-its easy! Sum (+): ORs
-are we done yet???
Products (): ANDs
INVERTER: A 0 1
Bubble indicates 1 0
inversion
A B Z
0 0 0
AND: A B
0 1 0
1 0 0
1 1 1
A B Z
0 0 0
OR: A B 0 1 1
1 0 1
1 1 1
Propagation delay:
3 levels of logic
No more than 3 gate delays assuming gates with an arbitrary
number of inputs. But, in general, well only be able to use gates
with a bounded number of inputs (bound is ~4 for most logic
families).
A BC
A BC D
Which one should I use?
A BC D
Tree: Propagation delay increases
logarithmically with number of inputs
6.111 Fall 2016 Lecture 2 14
SOP w/ 2-input gates
Previous example restricted to 2-input gates:
Y A BC A BC A BC A BC
A B Z A B Z
NAND (not AND) NOR (not OR)
0 0 1 0 0 1
0 1 1 0 1 0
A B A B
1 0 1 1 0 0
1 1 0 1 1 0
CMOS gates are naturally inverting so we want to use NANDs and NORs
in CMOS designs
Y
Y
= =
= =
= =
Any logic function can be implemented using only NANDs
(or, equivalently, NORs). Note that chaining/treeing
technique doesnt work directly for creating wide fan-in
NAND or NOR gates. But wide fan-in gates can be
created with trees involving both NANDs, NORs and
inverters.
NAND form: A B A B =
NOR form: A B A B =
De Morgan-ized NOR symbol
So the following SOP circuits are all equivalent (note the use
of De Morgan-ized symbols to make the inversions less
confusing): De Morgan-ized
Inverter
Y A BC A BC A BC A BC
Using the identity
A A
For any expression and variable A:
Y A BC A BC A BC A BC
Y BC AC A B
The tricky part: some terms participate in more than one
reduction so cant do the algebraic steps one at a time!
6.111 Fall 2016 Lecture 2 21
Karnaugh Maps: A Geometric Approach
K-Map: a truth table arranged so that terms which differ by exactly one
variable are adjacent to one another so we can see potential reductions
easily.
A B C Y
Heres the layout of a 3-variable K-map filled in
0 0 0 0 with the values from our truth table:
0 0 1 0
Why did he
0 1 0 0 AB
shade that
row Gray?
0 1 1 1 Y 00 01 11 10
1 0 0 0 0 0 0 1 0
1 0 1 1 C
1 0 1 1 1
1 1 0 1
1 1 1 1 010 011
000 001
Its cyclic. The left edge is adjacent to the right 110 111
edge. Its really just a flattened out cube.
100 101
AB
Z 00 01 11 10
00 1 0 0 1
01 0 0 0 0
CD
11 1 1 0 1
10 1 1 0 1
Again its cyclic. The left edge is adjacent to the right edge,
and the top is adjacent to the bottom.
C
0 0 0 1 0 Y AC BC A B
1 0 1 1 1
Were done!
AB
Z 00 01 11 10
00 1 0 0 1
01 0 0 0 0
CD Z B D BC AC
11 1 1 0 1
10 1 1 0 1
6.111 Fall 2016 Lecture 2 25
Two-Level Boolean Minimization
Two-level Boolean minimization is used to find a sum-of-products
representation for a multiple-output Boolean function that is
optimum according to a given cost function. The typical cost
functions used are the number of product terms in a two-level
realization, the number of literals, or a combination of both. The
two steps in two-level Boolean minimization are:
Look for pairs of 0-terms that differ in only one bit position and merge
them in a 1-term (i.e., a term that has exactly one entry). Next 1-terms
are examined in pairs to see if the can be merged into 2-terms, etc. Mark
k-terms that get merged into (k+1) terms so we can discard them later.
A B C D E
Goal: select the minimum 0000 X . . . . A is essential -000
set of primes (columns) 0101 . X . . . B is essential 01-1
such that there is at least 0111 . X X . .
1000 X . . X .
one X in every row. This 1001 . . . X . D is essential 10--
is the classical minimum 1010 . . . X X
covering problem. 1011 . . . X X
1110 . . . . X E is essential 1-1-
1111 . . X . X
Each row with a single X signifies an essential prime term since any prime
implementation will have to include that prime term because the
corresponding 0-term is not contained in any other prime.
Full Adder S
Ci A B S Co C/AB 00 01 11 10
0 0 0 0 0 A B 0 0 1 0 1
0 0 1 1 0 1 1 0 1 0
0 1 0 1 0 CO
0 1 1 0 1 Co FA Ci C/AB 00 01 11 10
1 0 0 1 0 0 0 0 1 0
1 0 1 0 1 1 0 1 1 1
1 1 0 0 1 S
1 1 1 1 1
S A B C A B C A B C A B C A B Ci
CO A C B C A B
schematic Gate
symbol
Full-Adder
A B C Y Carry Out Logic
0 0 0 0
0 0 1 0 0 0
0 1 0 0 Cin 1 Cout
0 1 1 1 Cin 2
1 0 0 0 1 3
1 0 1 1
1 1 0 1 A,B
1 1 1 1
XC2V6000:
957 pins, 684 IOBs
CLB array: 88 cols x 96/col = 8448 CLBs
18Kbit BRAMs = 6 cols x 24/col = 144 BRAMs = 2.5Mbits
18x18 multipliers = 6 cols x 24/col = 144 multipliers
6.111 Fall 2016 Lecture 2 Figures from Xilinx Virtex II datasheet 33
Virtex II CLB
Menu driven
soft key/buttons