Download presentation
Presentation is loading. Please wait.
1
EEL 3705 / 3705L Digital Logic Design
Fall 2006 Instructor: Dr. Michael Frank Module #6: Modular Combinational Logic (Thanks to Dr. Perry for the slides) 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
2
M. Frank, EEL3705 Digital Logic, Fall 2006
Note to Self There are still way too many slides in this module! Need to keep working on making it shorter and more concise 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
3
M. Frank, EEL3705 Digital Logic, Fall 2006
Wednesday, October 10, 2006 Administrivia: This week’s lab: Finish “Top secret code display” (w. K-maps), finish project Design project #1: Due this Friday!! Test your designs during a lab period, or in TA office hours Don’t delay writing the large required amount of documentation! Homework assignment #3: Due next Monday (October 16th) Plan for today: Show Ping-Pong videogame example, in progress See module #99, Designs (v.3+) for slides Start next lecture topic: Modular Combinational Logic 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
4
Modular Combinational Logic
Original slides by Dr. Reginald Perry With modifications & additions by Mike Frank 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
5
M. Frank, EEL3705 Digital Logic, Fall 2006
Decoders General form: n-to-2n decoder n inputs, 2n outputs For each input pattern, one and only one output line will be active. Uses: “Minterm generator” Bit/word-line (memory access) circuit Code conversion Demultiplexing (routing) of data 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
6
M. Frank, EEL3705 Digital Logic, Fall 2006
1-to-2 Decoder Truth table shown at right This one can be implemented by just a simple fan-out and an inverter: x y0 y1 1 y0 y0 x x y1 y1 Circuit schematic Icon 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
7
M. Frank, EEL3705 Digital Logic, Fall 2006
Recursive Contruction of n-to-2n Decoder out of 1-to-2 and (n−1)-to-2n−1 Decoders w0 …plus 2n AND gates w1 w2 xn−1..0 xn−1..1 2n−1 2n−1 AND gates … n−1 2n 2n−1 AND gates z0 x0 z1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
8
1-to-2, 2-to-4 and 3-to-8 Decoders using recursive design style in Quartus
This is really 4 AND gates in parallel This is really 8 AND gates in parallel 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
9
M. Frank, EEL3705 Digital Logic, Fall 2006
add a slide on the other recursive composition of 2k-to-(2^(2k)) decoders 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
10
2 to 4 Decoder – Truth Table
X1 X0 Y0 Y1 Y2 Y3 1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
11
M. Frank, EEL3705 Digital Logic, Fall 2006
2 to 4 Decoder Equations 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
12
M. Frank, EEL3705 Digital Logic, Fall 2006
2 to 4 Decoder: Circuit 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
13
2 to 4 Decoder: Block Symbol
Circuit 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
14
3 to 8 Decoder – Truth Table
x2 x1 x0 y0 y1 y2 y3 y4 y5 y6 y7 1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
15
M. Frank, EEL3705 Digital Logic, Fall 2006
3 to 8 Decoder Equations 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
16
M. Frank, EEL3705 Digital Logic, Fall 2006
3 to 8 Decoder: Circuit 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
17
3 to 8 Decoder: Block Symbol
Circuit 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
18
M. Frank, EEL3705 Digital Logic, Fall 2006
Design Example Using only a 3x8 decoder and two-input OR gates, design a logic circuit which implements the following Boolean equation 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
19
M. Frank, EEL3705 Digital Logic, Fall 2006
Solution m2 m4 m5 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
20
M. Frank, EEL3705 Digital Logic, Fall 2006
2 to 4 Decoder with Enable 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
21
M. Frank, EEL3705 Digital Logic, Fall 2006
2x4 Decoder with Enable Enable is abbreviated as EN EN is called a Control Signal Control Signals can be Active High Signal EN = 1 – Turns “ON” Decoder Active Low Signal EN=0 – Turns “ON” Decoder 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
22
2 x 4 Decoder with Active High Enable – Truth Table
y3 y2 y1 y0 1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
23
2 to 4 Decoder with Enable Equations
11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
24
2 to 4 Decoder with Enable Circuit
11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
25
2 to 4 Decoder with Enable Symbol
11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
26
M. Frank, EEL3705 Digital Logic, Fall 2006
2 x 4 Decoder with Active High Enable – Truth Table (Short hand notation) En x1 x0 y3 y2 y1 y0 d 1 d = don’t care En has “highest” priority. If En=0, we “don’t care” about x1 or x0 because Y=0 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
27
M. Frank, EEL3705 Digital Logic, Fall 2006
2 x 4 Decoder with Active Low Enable – Truth Table (Short hand notation) EnL x1 x0 y3 y2 y1 y0 1 d d = don’t care En has “highest” priority. If En=1, we “don’t care” about x1 or x0 because Y=0 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
28
2 to 4 Decoder with Active Low Enable Circuit
11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
29
M. Frank, EEL3705 Digital Logic, Fall 2006
Design Example Design a 3x8 decoder using only 2x4 decoders and NOT gates. 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
30
M. Frank, EEL3705 Digital Logic, Fall 2006
Solution “On” when A=0 “On” when A=1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
31
M. Frank, EEL3705 Digital Logic, Fall 2006
Encoders Opposite of a decoder 2n to n encoder 2n inputs n outputs For each input, the circuit will produce an “encoded” output 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
32
Example: 4 to 2 Binary Encoder Truth Table
1 Assume only one input high at a time!! 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
33
M. Frank, EEL3705 Digital Logic, Fall 2006
4 to 2 Encoder Equations 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
34
Problems with initial design
Q: How do we tell the difference between an input of all 0’s (i.e. X=0) and X=1? A: Add another output (IA) that indicates that the input is valid. Let’s make IA active low. 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
35
Problems with initial design
If IA = 1 => all lines are 0 If IA = 0 => at least one line is 1 Q: What happens if more than one input is high at the same time? A: Design a “priority” encoder that will encode the input with the highest priority. Let’s set X3 with the highest priority, followed by X2, X1, and X0 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
36
Example: 4 to 2 Priority Binary Encoder Truth Table
1 d 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
37
M. Frank, EEL3705 Digital Logic, Fall 2006
Solution 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Y1 Y0 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
38
4 to 2 Priority Encoder Equations
11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
39
M. Frank, EEL3705 Digital Logic, Fall 2006
Monday, October 16, 2006 Administrivia: This week’s lab: “Electronic Device Test” – PO(2/b), experiment Design projects are being graded this week Homework assignment #3 is due tonight Plan for today: Finish current topic: Modular Combinational Logic – MUXes, ALUs 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
40
Multiplexer/Data Selectors
MUX Very Important Module!!! 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
41
Multiplexer(MUX)/Data Selector
N to 1 multiplexer (or multiplexor) N=2k data input lines, D0..(N−1) k=log2(N) control inputs, S(k−1)..0 Binary encoding of index of selected data One output: This circuit will “connect” just the selected input to the output. The selected input is specified by decoding the control inputs. 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
42
The Simplest Multiplexer
2-to-1 multiplexer truth table Output is a copy of D0 if S0=0 D1 if S0=1 D0 D1 S0 F d 1 Schematic, using 1-to-2 Decoder module example 2-to-1 MUX Icon 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
43
General Construction of a 2k-to-1 MUX from a k-to-2k decoder, ANDs, and an OR
This is just a direct generalization of the schematic on the previous slide. F “bussed” OR gate 2k 2k 2k This means 2k AND gates in parallel k S(k−1)..0 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
44
M. Frank, EEL3705 Digital Logic, Fall 2006
Recursive Construction of 2k-to-1 mux from two 2k−1-to-1 muxes (& a 2-to-1 mux) 2k−1 k−1 F 2k 2k−1 Sk−1 S(k−2)..0 k−1 S(k−1)..0 k 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
45
4-to-1 MUX from three 2-to-1 MUXes
Try building some larger sizes for yourself… 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
46
Example: 4 to 1 MUX Truth Table
Control Inputs Output Data Inputs D0 D1 D2 D3 S1 S0 F d 1 d = don’t care / Di = data on input i 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
47
M. Frank, EEL3705 Digital Logic, Fall 2006
4 to 1 MUX Equation D’s are the DATA inputs, AB are control inputs and called the “select” lines. 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
48
M. Frank, EEL3705 Digital Logic, Fall 2006
4 to 1 MUX Circuit Control Inputs Data Inputs Output 2x4 Decoder Only a single AND gate will be “ON” at a time. 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
49
4 to 1 MUX Symbol Data Inputs Output Control Inputs
A more common, and more mnemonic MUX symbol: D0 Data Inputs D1 F Output D2 Control Inputs S1..0 D3 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
50
Logic with multiplexers
You can implement any n-input logic function with a single 2n-to-1 multiplexer, by feeding appropriate constants into the MUX’s data inputs. Namely, the list of the function’s output values from its truth table The multiplexer implements a “lookup table” it simply looks up the function result from the indicated row of the truth table Of course, this is generally not the most hardware-efficient way to implement a given function. 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
51
MUX Application Example
Using a 4x1 MUX, design a logic circuit which implements: We have, Y 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
52
M. Frank, EEL3705 Digital Logic, Fall 2006
Example Using a 4x1 MUX, design a logic circuit which implements: a b Y Dn D0 1 D1 D2 D3 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
53
M. Frank, EEL3705 Digital Logic, Fall 2006
Solution 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
54
Multi-bit Multiplexers
J-bit nx1 mux d0 d1 J bits deep d2 F J bits deep … dn-1 sel log2n j=0 to 3 This is just J separate nx1 multiplexers 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
55
M. Frank, EEL3705 Digital Logic, Fall 2006
Example 4-bit 4x1 MUX D0[3..0] D0[3..0] D1[3..0] D1[3..0] F[3..0] D2[3..0] F[3..0] 4 bits deep D2[3..0] D3[3..0] D3[3..0] A B A B j=0 to 3 This is just 4 separate 4x1 muxes 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
56
M. Frank, EEL3705 Digital Logic, Fall 2006
Example 4-bit 4x1 MUX Bit 0 Bit 1 Bit 2 Bit 3 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
57
M. Frank, EEL3705 Digital Logic, Fall 2006
Example 4 bit 4x1 MUX For the jth output, we have D0[j] D1[j] D2[j] F[j] D3[j] A B 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
58
M. Frank, EEL3705 Digital Logic, Fall 2006
Example 4 bit 4x1 MUX For the bit 0 output, we have D0[0] D1[0] D2[0] F[0] D3[0] A B 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
59
M. Frank, EEL3705 Digital Logic, Fall 2006
Example 4 bit 4x1 MUX For the bit 1 output, we have D0[1] D1[1] D2[1] F[1] D3[1] A B 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
60
M. Frank, EEL3705 Digital Logic, Fall 2006
Example 4 bit 4x1 MUX For the bit 2 output, we have D0[2] D1[2] D2[2] F[2] D3[2] A B 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
61
M. Frank, EEL3705 Digital Logic, Fall 2006
Example 4 bit 4x1 MUX For the bit 3 output, we have D0[3] D1[3] D2[3] F[3] D3[3] A B 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
62
M. Frank, EEL3705 Digital Logic, Fall 2006
Example 4 bit 4x1 Mux Complete Circuit Bit 0 F[0] Bit 1 F[1] F[2] Bit 2 F[3] Bit 3 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
63
M. Frank, EEL3705 Digital Logic, Fall 2006
Example 4 bit 4x1 MUX Symbol 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
64
M. Frank, EEL3705 Digital Logic, Fall 2006
Design Example Using a 4bit 4x1 MUX, design a 8bit 4x1 MUX 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
65
M. Frank, EEL3705 Digital Logic, Fall 2006
Solution 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
66
DeMultiplexers/ Data Distributors
11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
67
Demultiplexer/Data Distributor
Opposite of a multiplexer 1 to N demultiplexer 1 data input N data outputs Log2(n) control inputs This circuit will “connect” a data input to one and only one output. The selected output is specified by a decoding of the control inputs. 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
68
Example: 1 to 4 DeMUX Truth Table
F0 F1 F2 F3 1 d = don’t care / Di = data on input i 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
69
M. Frank, EEL3705 Digital Logic, Fall 2006
1 to 4 DeMUX Equations D is the DATA inputs, AB are control inputs and called the “select” lines. 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
70
M. Frank, EEL3705 Digital Logic, Fall 2006
1 to 4 DEMUX Circuit Only one F will be active 2x4 Decoder Only 1 AND gate will be “ON” 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
71
M. Frank, EEL3705 Digital Logic, Fall 2006
1 to 4 DEMUX Symbol Selected Lines Outputs Data Input 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
72
M. Frank, EEL3705 Digital Logic, Fall 2006
Example Design a 3x8 decoder using only 2x4 decoders and NOT gates. 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
73
M. Frank, EEL3705 Digital Logic, Fall 2006
Solution “On” when A=0 “On” when A=1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
74
Basic Arithmetic Elements
Half Adder 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
75
Half Adder-Truth Table
S=A+B (arithmetic sum) A B S1 S0 1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
76
M. Frank, EEL3705 Digital Logic, Fall 2006
Half Adder Circuit 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
77
Full Adder-Truth Table
S=A+B+C (arithmetic sum) A B C S1 S0 1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
78
M. Frank, EEL3705 Digital Logic, Fall 2006
Full Adder You can show!!! 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
79
M. Frank, EEL3705 Digital Logic, Fall 2006
Synthesis Logic Equation Logic Circuit 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
80
M. Frank, EEL3705 Digital Logic, Fall 2006
Synthesis Logic Equation Logic Circuit 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
81
Synthesis Full Adder Circuit
B S(0) C S(1) S(0) S(1) Simulation 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
82
Full Adder from Two Half Adders
Given bits a,b,c, computes (s1s0)2 = a + b + c. Can build it using two half adders to compute the low-order bit of the sum as s0 = (a⊕b)⊕c. Plus an extra OR gate needed to combine the carries. 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
83
M. Frank, EEL3705 Digital Logic, Fall 2006
Ripple Carry Adder 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
84
M. Frank, EEL3705 Digital Logic, Fall 2006
Conceptualization 4-bit adder (worst case) 1 1 1 1111 11110 For the “worst case” we need to add three bits to generate a single output bit with a possible carry out. Can we use our single bit adder for this? 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
85
M. Frank, EEL3705 Digital Logic, Fall 2006
Ripple Carry Adder We can cascade several full adders to create a ripple carry adder The circuit gets its name because the carry bit “ripples” from one bit position to the next 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
86
M. Frank, EEL3705 Digital Logic, Fall 2006
Conceptualization First, let’s look at two bits A(1) FullAdder C A B S(0) S(1) B(1) Sum(1) A(0) FullAdder C A B S(0) S(1) B(0) Sum(0) What about the carry? 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
87
M. Frank, EEL3705 Digital Logic, Fall 2006
Conceptualization Let’s connect the two full adders A(1) FullAdder C A B S(0) S(1) B(1) S(1) Cin A(0) Cout FullAdder C A B S(0) S(1) B(0) S(0) Set carry in for first bit to 0. Why? 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
88
M. Frank, EEL3705 Digital Logic, Fall 2006
Analysis Let’s test this for a few cases: FullAdder C A B S(0) S(1) 00 000 FullAdder C A B S(0) S(1) Correct!!! Rule of thumb: Always test simple cases first!! 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
89
M. Frank, EEL3705 Digital Logic, Fall 2006
Analysis Let’s test this for the a few cases 1 1 FullAdder C A B S(0) S(1) 1 1 11 110 1 1 FullAdder C A B S(0) S(1) Correct!!! 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
90
M. Frank, EEL3705 Digital Logic, Fall 2006
Analysis Let’s test this for the a few cases FullAdder C A B S(0) S(1) 1 1 01 010 1 1 FullAdder C A B S(0) S(1) 1 Correct!!! 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
91
Four Bit “Ripple” Adder
Carry out Carry in 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
92
8-bit Ripple Carry Adder
Use two 4-bit adders 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
93
16-bit Ripple Carry Adder
Use two 8-bit adders 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
94
M. Frank, EEL3705 Digital Logic, Fall 2006
Subtraction Circuit 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
95
M. Frank, EEL3705 Digital Logic, Fall 2006
Subtraction Circuit Calculate 2’s complement of B Add –B to A 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
96
M. Frank, EEL3705 Digital Logic, Fall 2006
Add/Sub Circuit 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
97
Add/Sub Circuit Module
11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
98
Function Table for Add/Sub Module
Functional Result S=A+B 1 S=A-B Add is a control input. It is active low. This means that the module will compute A+B when Add=0. It will compute A-B when Add=1. 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
99
M. Frank, EEL3705 Digital Logic, Fall 2006
Add/Sub Circuit Design using Modules 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
100
M. Frank, EEL3705 Digital Logic, Fall 2006
Add/Sub Circuit 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
101
M. Frank, EEL3705 Digital Logic, Fall 2006
Add/Sub Circuit Add operation. Add=0 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
102
M. Frank, EEL3705 Digital Logic, Fall 2006
Add/Sub Circuit Sub operation. Add=1 1 1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
103
M. Frank, EEL3705 Digital Logic, Fall 2006
Wednesday, October 18, 2006 Administrivia: This week’s lab: “Electronic Device Test” – PO(2/b), experiment Next week’s lab: Midterm Practical Exam Design projects are being graded this week Homework assignment #4 will be out soon! Plan for today: Finish current topic: Modular Combinational Logic – Comparators, ALUs 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
104
M. Frank, EEL3705 Digital Logic, Fall 2006
Comparators 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
105
M. Frank, EEL3705 Digital Logic, Fall 2006
Equal Comparator Design a logic circuit which will compute F0 = (A = B) 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
106
2-bit Equal Comparator Truth Table
F0 1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
107
2-bit Equal Comparator Truth Table
F0 1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
108
M. Frank, EEL3705 Digital Logic, Fall 2006
Solution You can show, 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
109
N-bit Equal Comparator
11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
110
M. Frank, EEL3705 Digital Logic, Fall 2006
Not Equal Comparator Design a logic circuit which will compute F = (A <> B) F = (A = B) i.e. Just invert our Equal Comparator circuit 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
111
M. Frank, EEL3705 Digital Logic, Fall 2006
Magnitude Comparator Design a logic circuit which will compute F2 = (A>B) F1 = (A<B) Let’s develop a truth table for 2-bits 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
112
2-bit Magnitude (unsigned) Comparator Truth Table
F2 F1 1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
113
2-bit Magnitude (unsigned) Comparator Truth Table
F2 F1 1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
114
M. Frank, EEL3705 Digital Logic, Fall 2006
You can show 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
115
Arithmetic Logic Units (ALUs)
11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
116
Arithmetic Logic Unit (ALU)
A,B are data inputs of n bits each in depth S is a control input. We have 2m operations F is the output 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
117
M. Frank, EEL3705 Digital Logic, Fall 2006
Example Let n=4,m=3 We have A[3..0] and B[3..0] With m=3, we have 23 = 8 operations Let’s look at a possible function table 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
118
M. Frank, EEL3705 Digital Logic, Fall 2006
Function Table s2 s1 s0 Function F=AB 1 F=A+B (logical OR) F=NOT A F=A XOR B F=A+B (Arithmetic) F=A-B F=A + 1 F=A - 1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
119
Design using a Truth Table
How large is the truth table? 2n from data inputs A and B Example: n=8, we have 16 data inputs A[7..0] and B[7..0] 3 control inputs Total of 2n+3 inputs N=8, we have 19 inputs Our truth table will have 192 (361) rows and 8 outputs Too complex. Let’s explore another alternative using a “system” or modular approach 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
120
M. Frank, EEL3705 Digital Logic, Fall 2006
Design using Modules Note: For S2=0, we have logic operations For S2=1, we have arithmetic operations So, let’s use S2 to control a 2x1 MUX to select between logic and arithmetic operations, so our top level design would look like: 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
121
M. Frank, EEL3705 Digital Logic, Fall 2006
ALU Design 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
122
M. Frank, EEL3705 Digital Logic, Fall 2006
ALU Design S2=0 With S2=0, F is the output from the logic module 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
123
M. Frank, EEL3705 Digital Logic, Fall 2006
ALU Design S2=1 With S2=1, F is the output from the arithmetic module 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
124
M. Frank, EEL3705 Digital Logic, Fall 2006
Logic Module Design 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
125
Function Table for Logic Module
S2=0 s2 s1 s0 Function F=AB 1 F=A+B (logical OR) F=NOT A F=A XOR B We can use a 4x1 mux to implement this module 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
126
M. Frank, EEL3705 Digital Logic, Fall 2006
Logic Module Design 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
127
M. Frank, EEL3705 Digital Logic, Fall 2006
Logic Module Design F=AB AND Operation S[1..0]=00 0 0 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
128
M. Frank, EEL3705 Digital Logic, Fall 2006
Logic Module Design F=A+B OR Operation S[1..0]=01 0 1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
129
M. Frank, EEL3705 Digital Logic, Fall 2006
Logic Module Design F=A NOT Operation S[1..0]=10 1 0 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
130
M. Frank, EEL3705 Digital Logic, Fall 2006
Logic Module Design F=A XOR B XOR Operation S[1..0]=11 1 1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
131
What do these logic modules look like?
11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
132
M. Frank, EEL3705 Digital Logic, Fall 2006
AND Module 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
133
M. Frank, EEL3705 Digital Logic, Fall 2006
OR Module 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
134
M. Frank, EEL3705 Digital Logic, Fall 2006
NOT Module A F 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
135
M. Frank, EEL3705 Digital Logic, Fall 2006
XOR Module 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
136
Let’s use our ADD/SUB Module
Arithmetic Module Let’s use our ADD/SUB Module 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
137
Add/Sub Circuit Module
11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
138
Function Table for Arithmetic Ops
1 F=A+B (Arithmetic) F=A-B F=A + 1 F=A - 1 Note: S0 can be use to indicate Addition or Subtraction. S1 can be use to indicate the B data input 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
139
Arithmetic Module Design
B A S 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
140
Arithmetic Module Design
B A S F=A+B S[1..0]=00 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
141
Arithmetic Module Design
B A S F=A-B S[1..0]=01 1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
142
Arithmetic Module Design
B A S F=A+1 S[1..0]=10 1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
143
Arithmetic Module Design
B A S F=A-1 S[1..0]=11 1 1 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
144
M. Frank, EEL3705 Digital Logic, Fall 2006
Overall Design We have 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
145
M. Frank, EEL3705 Digital Logic, Fall 2006
ALU Design 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
146
M. Frank, EEL3705 Digital Logic, Fall 2006
Logic Module Design 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
147
Arithmetic Module Design
B A S 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
148
M. Frank, EEL3705 Digital Logic, Fall 2006
Total Design Logic Module Arithmetic Module 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
149
M. Frank, EEL3705 Digital Logic, Fall 2006
End of Chapter 4 11/11/2018 M. Frank, EEL3705 Digital Logic, Fall 2006
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.