ee345 – micro-controllers gate-level minimization prof. ahmad abu-el-haija
TRANSCRIPT
![Page 1: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/1.jpg)
EE345 – Micro-ControllersGate-Level Minimization
Prof. Ahmad Abu-El-Haija
![Page 2: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/2.jpg)
April 20, 2023Digital System Design 2
Acknowledgement
This presentation is a modified version of lecture notes prepared by Dr. Pradondet Nilagupta, Kasetsart University. The latter is also a modified version based upon presentations by Prof. Maciej Ciesielski and Prof. Tilman Wolf, University of Massachusetts Amherst, and original slides from the publisher.
![Page 3: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/3.jpg)
April 20, 2023EE345 - Micro-Controllers 3
Minimization of Logic Functions
We have chips with millions of gates Why care about minimizing a function? What do a few gates matter?
Basic logic functions replicated thousands of times Saving one gate for a memory cell pays off
What is the criterion for “minimization” Should we minimize• Number of product terms?• Number of logic operations?• Number of variables (literals)?• Number of wires?• …?
For implementation: minimize number of gates
![Page 4: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/4.jpg)
April 20, 2023EE345 - Micro-Controllers 4
How to Minimize Gate Count?
Example: F=A’BC’+AB’C’+AB’C+ABC’= Σ(2,4,5,6)
How many gates do we need for implementation? If AND gates have 3 inputs and OR gates have 4 inputs? If all gates are binary (2 inputs)?
Are there any tricks we can use? Combine minterms:
A’BC’+ABC’=BC’ AB’C’+AB’C=AB’
F = BC’+AB’ How many gates does F need now?
Simplest expression: Minimum number of terms and literals per term
We need systematic approach to minimize expression Answer: Karnaugh maps (K-maps)
![Page 5: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/5.jpg)
April 20, 2023EE345 - Micro-Controllers 5
Karnaugh Maps
Karnaugh maps (K-maps) are graphical representations of boolean functions.
One map cell corresponds to a row in the truth table. Also, one map cell corresponds to a minterm or a maxterm
in the boolean expression Multiple-cell areas of the map correspond to standard
terms.
![Page 6: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/6.jpg)
April 20, 2023EE345 - Micro-Controllers 6
Two-Variable Map
m3m21
m1m00
10x1
x2
0 1
2 3
NOTE: ordering of variables is IMPORTANT for f(x1,x2), x1 is the row, x2 is the column.
Cell 0 represents x1’x2’; Cell 1 represents x1’x2; etc. If a minterm is present in the function, then a 1 is placed in the corresponding cell.
m3m11
m2m00
10x2
x1
0 2
1 3OR
![Page 7: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/7.jpg)
April 20, 2023EE345 - Micro-Controllers 7
Boolean Function in Karnaugh Map
1s and 0s represent function in Karnaugh map 1 represent On-set (F=1), 0 represents Off-set (F=0) Similar to truth table 0s are typically not shown
![Page 8: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/8.jpg)
April 20, 2023EE345 - Micro-Controllers 8
Two-Variable Map
Any two adjacent cells in the map differ by ONLY one variable, which appears complemented in one cell and uncomplemented in the other.
Example:m0 (=x1’x2’) is adjacent to m1 (=x1’x2) and m2 (=x1x2’) but NOT m3 (=x1x2)
![Page 9: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/9.jpg)
April 20, 2023EE345 - Micro-Controllers 9
2-Variable Map -- Example
f(x1,x2) = x1’x2’+ x1’x2 + x1x2’ = m0 + m1 + m2
= x1’ + x2’ 1s placed in K-map for specified
minterms m0, m1, m2
Grouping (ORing) of 1s allows simplification
What (simpler) function is represented by each dashed rectangle? x1’ = m0 + m1
x2’ = m0 + m2
Note m0 covered twice
x1 0 1
0 1 1
1 1 0
x2
0 1
2 3
![Page 10: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/10.jpg)
April 20, 2023EE345 - Micro-Controllers 10
3-variable Karnaugh Map
Karnaugh map with 3 variables: Two variables on one side, one on the other Note Gray code sequence (single variable change) facilitates grou
ping of 1-entries into logic blocks
![Page 11: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/11.jpg)
April 20, 2023EE345 - Micro-Controllers 11
Blocks in Karnaugh Maps
Identifying blocks in Karnaugh maps Neighboring minterms can be combined:
x’y’z’ + x’y’z = x’y’(z’+z) = x’y’ Resulting expression uses fewer literals (z no longer present)
![Page 12: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/12.jpg)
April 20, 2023EE345 - Micro-Controllers 12
3-Variable Map
m6m7m5m41
m2m3m1m00
10110100yz
x
0 1 3 2
4 5 7 6
-Note: variable ordering is (x,y,z); yz specifies column, x specifies row.-Each cell is adjacent to three other cells (left or right or top or bottom or edge wrap)
![Page 13: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/13.jpg)
April 20, 2023EE345 - Micro-Controllers 13
Example: Blocks in Karnaugh Maps
Example: F(x,y,z) = Σ(2,3,4,5) = x’yz’+x’yz+xy’z’+xy’z Two blocks of size 2:
F = x’y + xy’
![Page 14: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/14.jpg)
April 20, 2023EE345 - Micro-Controllers 14
Example: Blocks in Karnaugh Maps
What is the Karnaugh map for F(x,y,z) = Σ(3,4,6,7) ?
Block can continue across “borders”, wrap around Left to right Top to bottom
F = yz + xz’
![Page 15: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/15.jpg)
April 20, 2023EE345 - Micro-Controllers 15
Blocks in Karnaugh Maps
Can we combine more than two minterms?
Yes: x’y’z’+x’y’z+xy’z’+xy’z = (x’+x)y’(z’+z) = y’ Any block that is “power of 2 size” can be reduced
Needs to be filled entirely with 1s
Largest possible block yields simplest expression
![Page 16: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/16.jpg)
April 20, 2023EE345 - Micro-Controllers 16
Overlapping Blocks
Example:F(A,B,C) = Σ(1,2,3,5,7)
Blocks can overlap Still find the largest possible power-2 blocks
![Page 17: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/17.jpg)
April 20, 2023EE345 - Micro-Controllers 17
Converting Blocks into Expressions
How to convert blocks into algebraic expressions?
Write down the variables that do not change Example: F(A,B,C) = C + A’B
![Page 18: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/18.jpg)
April 20, 2023EE345 - Micro-Controllers 18
Simplification
Enter minterms of the Boolean function into the map, then group terms
Example: f(a,b,c) = ac’ + abc + bc’ Result: f(a,b,c) = ac’+ b
1 1 1
1 1
abc
1 1 1
1 1 00 01 10 11
0
1
00 01 10 11
0
1
![Page 19: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/19.jpg)
April 20, 2023EE345 - Micro-Controllers 19
More Examples
f1(x, y, z) = ∑ m(2,3,5,7)
f1(x, y, z) = x’y + xz
f2(x, y, z) = ∑ m (0,1,2,3,6)
f2(x, y, z) = x’+yz’
yz
X 00 01 11 10
0 1 1
1 1 1
1 1 1 1
1
![Page 20: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/20.jpg)
April 20, 2023EE345 - Micro-Controllers 20
More Examples
![Page 21: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/21.jpg)
April 20, 2023EE345 - Micro-Controllers 21
4-variable Karnaugh Map
Karnaugh map can be extended to 4 variables: Top cells are adjacent to bottom cells. Left-edge cells are
adjacent to right-edge cells. Note variable ordering (WXYZ).
![Page 22: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/22.jpg)
April 20, 2023EE345 - Micro-Controllers 22
Four-variable Map Simplification
One square represents a minterm of 4 literals. A rectangle of 2 adjacent squares represents a
product term of 3 literals. A rectangle of 4 squares represents a product
term of 2 literals. A rectangle of 8 squares represents a product
term of 1 literal. A rectangle of 16 squares produces a function that
is equal to logic 1.
![Page 23: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/23.jpg)
April 20, 2023EE345 - Micro-Controllers 23
Example
Simplify the following Boolean function g(A,B,C,D) = ∑m(0,1,2,4,5,7,8,9,10,12,13).
First put the function g( ) into the map, and then group as many 1s as possible.
g(A,B,C,D) = c’+b’d’+a’bd
111
11
111
111
cdab
1 11
11
1 11
1 11
00 01 11 10
00
01
11
10
00 01 11 10
![Page 24: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/24.jpg)
April 20, 2023EE345 - Micro-Controllers 24
Example: 4-variable Karnaugh Map
Example: F(w,x,y,z)= Σ(0,1,2,4,5,6,8,9,12,13,14)
![Page 25: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/25.jpg)
April 20, 2023EE345 - Micro-Controllers 25
Example: Simplify Boolean Function
F(A,B,C,D)= A’B’C’+B’CD’+A’BCD’+AB’C’
![Page 26: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/26.jpg)
April 20, 2023EE345 - Micro-Controllers 26
Choice of Blocks
We can simplify function by using larger blocks Do we really need all blocks? Can we leave some out to further simplify expression?
Function needs to contain special type of blocks They are called Essential Prime Implicants
Need to define new terms Implicant Prime implicant Essential prime implicant
![Page 27: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/27.jpg)
April 20, 2023EE345 - Micro-Controllers 27
Terminology
Implicant Any product term in the SOP form A block of 1’s in a K-map
Prime implicant Product term that cannot be further reduced Block of 1’s that cannot be further increased
Essential prime implicant Prime implicant that covers a 1 (minterm) that is not covered by an
y other prime implicant
Quine’s Theorem: Boolean function can be implemented with only essential prime im
plicants (but other solutions exist) The number of such implicants is minimum
![Page 28: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/28.jpg)
April 20, 2023EE345 - Micro-Controllers 28
Example
F(A,B,C,D)= Σ(0, 2,3,5,7,8,9,10,11,13,15)
F(A,B,C,D) = BD+B’D’+CD+AD= BD+B’D’+CD+AB’= BD+B’D’+B’C+AD= BD+B’D’+B’C+AB’
![Page 29: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/29.jpg)
April 20, 2023EE345 - Micro-Controllers 29
Example
Consider function f(a,b,c,d) whose K-map is shown at right.
a’b’ is not a prime implicant because it is contained in b’.
acd is not a prime implicant because it is contained in ad.
b’, ad, and a’cd’ are prime implicants.
111
111
111
11
b’
cd abad
a’cd’
a’b’
acd
![Page 30: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/30.jpg)
April 20, 2023EE345 - Micro-Controllers 30
Essential Prime Implicants (EPIs)
If a minterm of a function F is included in ONLY one prime implicant p, then p is an essential prime implicant of F.
An essential prime implicant MUST appear in all possible SOP expressions of a function
To find essential prime implicants: Generate all prime implicants of a function Select those prime implicants that contain at least
one 1 that is not covered by any other prime implicant.
For the previous example, the PIs are b’, ad, and a’cd’; all of these are essential.
111
111
111
11
b’ad
a’cd’
![Page 31: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/31.jpg)
April 20, 2023EE345 - Micro-Controllers 31
Another Example
Consider f2(a,b,c,d), whose K-map is shown below.
The only essential PI is b’d.
1
1 1 1
1 1
1 1 1
cdab
![Page 32: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/32.jpg)
April 20, 2023EE345 - Micro-Controllers 32
0 1
1 1
1 0
1 0D
A
1 0
0 0
1 1
1 1B
C
5 prime implicants:BD, ABC', ACD, A'BC, A'C'D
Examples to illustrate terms
0 0
1 1
1 0
1 0D
A
0 1
0 1
1 1
0 0B
C
6 prime implicants:A'B'D, BC', AC, A'C'D, AB, B'CD
minimum cover: AC + BC' + A'B'D
essential
minimum cover: 4 essential implicants
essential
![Page 33: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/33.jpg)
April 20, 2023EE345 - Micro-Controllers 33
Systematic Procedure for Simplifying Boolean Functions
1. Generate all PIs of the function.2. Include all essential PIs.3. For remaining minterms not included in the
essential PIs, select a set of other PIs to cover them, with minimal overlap in the set.
4. The resulting simplified function is the logical OR of the product terms selected above.
![Page 34: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/34.jpg)
April 20, 2023EE345 - Micro-Controllers 34
Example
f(a,b,c,d) = ∑m(0,1,2,3,4,5,7,14,15).
Five grouped terms, not all needed.
3 shaded cells covered by only one term
3 EPIs, since each shaded cell is covered by a different term.
F(a,b,c,d) = a’b’ + a’c’ + a’d + abc
11
111
1111ab
cd
![Page 35: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/35.jpg)
April 20, 2023EE345 - Micro-Controllers 35
Product of Sums Simplification
Use sum-of-products simplification on the zeros of the function in the K-map to get F’.
Find the complement of F’, i.e. (F’)’ = F Recall that the complement of a boolean
function can be obtained by (1) taking the dual and (2) complementing each literal.
OR, using DeMorgan’s Theorem.
![Page 36: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/36.jpg)
April 20, 2023EE345 - Micro-Controllers 36
Product of Sums Minimization
How to generate a product of sums from a Karnaugh map? Use duality of Boolean alge
bra (DeMorgan law) Look at 0s in map instead
of 1s Generate blocks around 0’s Gives inverse of function Use duality to generate pro
duct of sums Example:
F = Σ(0,1,2,5,8,9,10) F’ = AB+ CD + BD’ F = (A’+B’)(C’+D’)(B’+D)
![Page 37: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/37.jpg)
April 20, 2023EE345 - Micro-Controllers 37
Gate Implementation
![Page 38: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/38.jpg)
April 20, 2023EE345 - Micro-Controllers 38
Example: POS minimization
0000
1100
0111
1111ab
cd
• F’(a,b,c,d) = ab’ + ac’ + a’bcd’• Find dual of F’, dual(F’) = (a+b’)(a+c’)(a’+b+c+d’)
• Complement of literals in dual(F’) to get FF = (a’+b)(a’+c)(a+b’+c’+d) (verify that this is the same as in slide 33)
![Page 39: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/39.jpg)
April 20, 2023EE345 - Micro-Controllers 39
5-variable Karnaugh Map
101198
13 141512
5 674
1 230
BC
DE
26
27
25
24
30
31
29
28
22
23
21
20
18
19
17
16
BC
DE
A=0
A=1
A’BCDE’
ABCDE’
![Page 40: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/40.jpg)
April 20, 2023EE345 - Micro-Controllers 40
Relationship between #of adjacent squares and # of literals
![Page 41: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/41.jpg)
April 20, 2023EE345 - Micro-Controllers 41
Example: 5-variable Karnaugh Map
Example:
F(A,B,C,D,E) = Σ(0,2,4,6,9,13,21,23,25,29,31)
F = A’B’E’+BD’E+ACE
![Page 42: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/42.jpg)
April 20, 2023EE345 - Micro-Controllers 42
Don't Care Conditions
There may be a combination of input values which will never occur if they do occur, the output is of no concern.
The function value for such combinations is called a don't care.
They are usually denoted with x. Each x may be arbitrarily assigned the value 0 or 1 in an implementation.
Don’t cares can be used to further simplify a function
![Page 43: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/43.jpg)
April 20, 2023EE345 - Micro-Controllers 43
Minimization using Don’t Cares
Treat don't cares as if they are 1s to generate PIs. Delete PI's that cover only don't care minterms. Treat the covering of remaining don't care
minterms as optional in the selection process (i.e. they may be, but need not be, covered).
![Page 44: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/44.jpg)
April 20, 2023EE345 - Micro-Controllers 44
Minimization example
F(w,x,y,z) = Σ(1,3,7,11,15) and d(w,x,y,z) = Σ(0,2,5) What are possible solutions?
![Page 45: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/45.jpg)
April 20, 2023EE345 - Micro-Controllers 45
Example
Simplify the function f(a,b,c,d) whose K-map is shown at the right.
f = a’c’d+ab’+cd’+a’b’c
or f = a’c’d+ab’+cd’+a’bd’ The middle two terms are EPIs, while
the first and last terms are selected tocover the minterms m1, m4, and m5.
(There’s a third solution!)xx11
xx00
1011
1010
xx11
xx00
1011
1010
0 1 0 1
1 1 0 1
0 0 x x
1 1 x x
abcd
00
01
11
10
00 01 11 10
![Page 46: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/46.jpg)
April 20, 2023EE345 - Micro-Controllers 46
Another Example
Simplify the function g(a,b,c,d) whose K-map is shown at right.
g = a’c’+ abor
g = a’c’+bd’
x 1 0 0
1 x 0 x
1 x x 1
0 x x 0
x 1 0 0
1 x 0 x
1 x x 1
0 x x 0
x 1 0 0
1 x 0 x
1 x x 1
0 x x 0
abcd
![Page 47: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/47.jpg)
April 20, 2023EE345 - Micro-Controllers 47
NAND and NOR Implementations
Digital circuit are frequently constructed with NAND or NOR gates rather than AND and OR gates.
NAND and NOR gates are easier to fabricate with electronic components and are the basic gates used in all IC digital logic families.
![Page 48: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/48.jpg)
April 20, 2023EE345 - Micro-Controllers 48
Logic Operations with NAND gate
NOT, AND, and OR can be implemented with NAND
![Page 49: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/49.jpg)
April 20, 2023EE345 - Micro-Controllers 49
Conversion to NAND Implementation
Minimized expressions are AND-OR combinations Two illustrations for NAND gates
AND-invert Invert-OR
Key observation: two “bubbles” eliminate each other Two bubbles equal straight wire How to generate a sum of minterms using NAND?
Use AND-invert for minterms Use invert-OR for sum
![Page 50: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/50.jpg)
April 20, 2023EE345 - Micro-Controllers 50
Conversion to NAND Implementation
Sum of minterms
Replace AND with AND-invert and OR with invert-OR Still same circuit!
Replace AND-invert and invert-OR with NAND F=((AB)’(CD)’
= AB+CD
![Page 51: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/51.jpg)
April 20, 2023EE345 - Micro-Controllers 51
NAND Example
Function F = Σ(1,2,3,4,5,7) Minimize and implement with NAND Karnaugh map:
Implementation:
![Page 52: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/52.jpg)
April 20, 2023EE345 - Micro-Controllers 52
Multilevel NAND circuits
Multilevel circuits conversion rules:1. Convert all AND gates to NAND with AND-invert symbols
2. Convert all OR gates to NAND with invert-OR symbols
3. Check all bubbles in diagram. For every bubble that is not compensated by another bubble, insert inverter
Example:
![Page 53: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/53.jpg)
April 20, 2023EE345 - Micro-Controllers 53
Example: Multilevel NAND Circuits
F=(AB’+A’B)(C+D’)
With NAND gates:
![Page 54: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/54.jpg)
April 20, 2023EE345 - Micro-Controllers 54
Logic Operations with NOR gate
NOR can also replace NOT, AND, OR
Two representations of NOR: OR-invert and invert-AND
![Page 55: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/55.jpg)
April 20, 2023EE345 - Micro-Controllers 55
Converting to NOR Implementations
Same rules as for NAND implementations
Example: F = (A+B)(C+D)E
For multi-level circuits:
F=(AB’+A’B)(C+D’)
![Page 56: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/56.jpg)
April 20, 2023EE345 - Micro-Controllers 56
Exclusive-OR Function
x exclusive-OR y (x XOR y), written as: = x y’ + x’ y
is equal to 1 if only x is 1 or only y is 1, but not both. Possible implementations:
![Page 57: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/57.jpg)
April 20, 2023EE345 - Micro-Controllers 57
Exclusive-OR Function
Exclusive-NOR (equivalence) is equal to 1 if both inputs are 1 or if both are 0.
( )’ = (x y’ + x’ y)’ = x y + x’ y’ Exclusive-OR is cummutative and associative, hence:
A B = B A, and (A B) C = A (B C) = A B C
A B C = (AB’ + A’B) C’ + (AB +A’B’) C’ = AB’C’ + A’BC’ + A’B’C + ABC = Σ(1, 2, 4, 7)
Also, it can be shown that:
A B C D = Σ(1, 2, 4, 7, 8, 11, 13, 14)
Hence XOR is an ODD functionSimilarly, the exclusive-NOR is an EVEN function
![Page 58: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/58.jpg)
April 20, 2023EE345 - Micro-Controllers 58
Exclusive-OR: Odd & Even Functions
![Page 59: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/59.jpg)
April 20, 2023EE345 - Micro-Controllers 59
Exclusive-OR: Odd & Even Functions
![Page 60: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/60.jpg)
April 20, 2023EE345 - Micro-Controllers 60
Parity Generation and Checking
Exclusive-OR functions are very useful for error detection. Parity bit is an extra bit transmitted with message to make
number of 1s even (even parity) or odd (odd parity). Message (including parity) is transmitted and checked at
receiver for errors: error is detected if checked parity is different from sent parity.
We need “parity generator” at sender, and “parity checker” at receiver.
Generator: P = x y z Checker: C = x y z P
![Page 61: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/61.jpg)
April 20, 2023EE345 - Micro-Controllers 61
Parity Generation and Checking
![Page 62: EE345 – Micro-Controllers Gate-Level Minimization Prof. Ahmad Abu-El-Haija](https://reader036.vdocuments.us/reader036/viewer/2022081516/56649f1e5503460f94c351f4/html5/thumbnails/62.jpg)
Note:
Sections 3.8 and 3.10 are omitted!
April 20, 2023EE345 - Micro-Controllers 62