Download presentation
1
Modular Combinational Logic
Chapter 4 Modular Combinational Logic
2
Decoders
3
Decoders n to 2n decoder n inputs 2n outputs For each input, one and only one output will be active. Uses: “Minterm generator” Wordline (memory) circuit Code conversion Routing data
4
2 to 4 Decoder Example
5
2 to 4 Decoder – Truth Table
X1 X0 Y3 Y2 Y1 Y0 1
6
2 to 4 Decoder Equations
7
2 to 4 Decoder: Circuit
8
2 to 4 Decoder: Block Symbol
Circuit
9
3 to 8 Decoder Example
10
3 to 8 Decoder – Truth Table
x2 x1 x0 y7 y6 y5 y4 y3 y2 y1 y0 1
11
3 to 8 Decoder Equations
12
3 to 8 Decoder: Circuit
13
3 to 8 Decoder: Block Symbol
Circuit
14
Design Example
15
Example Using only a 3x8 decoder and two-input OR gates, design a logic circuit which implements the following Boolean equation
16
Solution m2 m4 m5
17
2 to 4 Decoder with Enable
18
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
19
2 x 4 Decoder with Active High Enable – Truth Table
y3 y2 y1 y0 1
20
2 to 4 Decoder with Enable Equations
21
2 to 4 Decoder with Enable Circuit
22
2 to 4 Decoder with Enable Symbol
23
2 x 4 Decoder with Active High Enable – Truth Table (Short hand notation)
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
24
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
25
2 to 4 Decoder with Active Low Enable Circuit
26
Design Example
27
Example Design a 3x8 decoder using only 2x4 decoders and NOT gates.
28
Solution “On” when A=0 “On” when A=1
29
TPS Quiz
30
Encoders
31
Encoders Opposite of a decoder 2n to n encoder
2n inputs n outputs For each input, the circuit will produce an “encoded” output
32
Example: 4 to 2 Binary Encoder Truth Table
1 Assume only one input high at a time!!
33
4 to 2 Encoder Equations
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.
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
36
Example: 4 to 2 Priority Binary Encoder Truth Table
1 d
37
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
38
4 to 2 Priority Encoder Equations
39
Multiplexer/Data Selectors
MUX Very Important Module!!!
40
Multiplexer(MUX)/Data Selector
N to 1 multiplexer n data input lines Log2(n) control inputs One output This circuit will “connect” the selected input to the output. The selected input is specified by a decoding of the control inputs.
41
Example: 4 to 1 MUX Truth Table
Control Inputs Output Data Inputs D3 D2 D1 D0 A B F d 1 d = don’t care / Di = data on input i
42
4 to 1 MUX Equation D’s are the DATA inputs, AB are control inputs and called the “select” lines.
43
4 to 1 MUX Circuit Control Inputs Data Inputs Output 2x4 Decoder
Only a single AND gate will be “ON” at a time.
44
4 to 1 MUX Symbol Data Inputs Output Control Inputs
45
Data and Control Paths Control Path Outputs Logic Data Path Data Path
Inputs Data Path Outputs Control Path Inputs
46
MUX Applications
47
Example Using a 4x1 MUX, design a logic circuit which implements:
We have, Y
48
Example Using a 4x1 MUX, design a logic circuit which implements: a b
Y Dn D0 1 D1 D2 D3
49
Solution
50
Multibit Multiplexers
51
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
52
Example 4-bit 4x1 MUX D0[3..0] D0[3..0] D1[3..0] D1[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
53
Example 4-bit 4x1 MUX Bit 0 Bit 1 Bit 2 Bit 3
54
Example 4 bit 4x1 MUX For the jth output, we have D0[j] D1[j] D2[j]
F[j] D3[j] A B
55
Example 4 bit 4x1 MUX For the bit 0 output, we have D0[0] D1[0] D2[0]
56
Example 4 bit 4x1 MUX For the bit 1 output, we have D0[1] D1[1] D2[1]
57
Example 4 bit 4x1 MUX For the bit 2 output, we have D0[2] D1[2] D2[2]
58
Example 4 bit 4x1 MUX For the bit 3 output, we have D0[3] D1[3] D2[3]
59
Example 4 bit 4x1 Mux Complete Circuit Bit 0 F[0] Bit 1 F[1] F[2]
60
Example 4 bit 4x1 MUX Symbol
61
Design Example Using a 4bit 4x1 MUX, design a 8bit 4x1 MUX
62
Solution
63
DeMultiplexers/ Data Distributors
64
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.
65
Example: 1 to 4 DeMUX Truth Table
F3 F2 F1 F0 1 d = don’t care / Di = data on input i
66
1 to 4 DeMUX Equations D is the DATA inputs, AB are control inputs and called the “select” lines.
67
1 to 4 DEMUX Circuit Only one F will be 2x4 Decoder active
Only 1 AND gate will be “ON”
68
1 to 4 DEMUX Symbol Selected Lines Outputs Data Input
69
Example Design a 3x8 decoder using only 2x4 decoders and NOT gates.
70
Solution “On” when A=0 “On” when A=1
71
TPS Quiz
72
Basic Arithmetic Elements
Half Adder
73
Half Adder-Truth Table
S=A+B (arithmetic sum) A B S1 S0 1
74
Half Adder Circuit
75
Full Adder-Truth Table
S=A+B+C (arithmetic sum) A B C S1 S0 1 A B C S1 S0 1
76
Full Adder You can show!!!
77
Synthesis Logic Equation Logic Circuit
78
Synthesis Logic Equation Logic Circuit
79
Synthesis Full Adder Circuit
B S(0) C S(1) S(0) S(1) Simulation
80
Verification We verify the circuit via a simulation Logic Simulation
Inputs S(0) S(1) S Outputs
81
Verification Summary A B S(0) C S(1) Circuit S(0) S(1) Simulation
82
Documentation A B S(0) C S(1) FullAdder C A B S(0) S(1) Block Diagram
83
Ripple Carry Adder
84
Conceptualization 1111 11110 For the “worst case” we need to add
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?
85
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
86
Conceptualization First, let’s look at two bits What about the carry?
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?
87
Conceptualization Let’s connect the two full adders
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?
88
Analysis Let’s test this for a few cases: 00 000 Correct!!!
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!!
89
Analysis Let’s test this for the a few cases 11 110 Correct!!! 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!!!
90
Analysis Let’s test this for the a few cases 01 010 Correct!!!
FullAdder C A B S(0) S(1) 1 1 01 010 1 1 FullAdder C A B S(0) S(1) 1 Correct!!!
91
Four Bit “Ripple” Adder
Carry out Carry in
92
Logic Simulation
93
8-bit Ripple Carry Adder
Use two 4-bit adders
94
16-bit Ripple Carry Adder
Use two 8-bit adders
95
Subtraction Circuit
96
Subtraction Circuit Calculate 2’s complement of B Add –B to A
97
Add/Sub Circuit
98
Add/Sub Circuit Module
99
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.
100
Add/Sub Circuit Design using Modules
101
Add/Sub Circuit
102
Add/Sub Circuit Add operation. Add=0
103
Add/Sub Circuit Sub operation. Add=1 1 1
104
TPS Quiz 17-18
105
Overflow/Underflow Detection
106
Numerical Overflow/Underflow
2’s complement number We have S=A+B Range of sum Overflow occurs if Underflow occurs if
107
Example: Overflow Let n=4, Range is
Let A=$7, B=$7, then S=$7+$7=$E, but $E=%1110 = -2, so Overflow has occurred.
108
Example: Overflow -8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7
Let’s examine this more closely -8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7 +7 8,9,A,B,C,D,E,F,0,1,2,3,4,5,6,7 So, overflow is the same as “wrap around.”
109
Example: Underflow Let n=4, let A=-7 and B=-7,
in 2’s complement, A=B=$9, S=$9+$9=$12=$02 so underflow has occurred.
110
Example: Underflow -8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7
Let’s examine this more closely -8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7 +1 +6 So, underflow is the same as “wrap around.”
111
Overflow/Underflow Detection
How do we detect overflow and underflow? First adding a positive to a negative number is always OK. 4 bit example: 7 + (-8) = -1 Let’s examine the sum of the MSB’s to determine overflow and underflow. Set V=1, if overflow/underflow occurs
112
Examination of MSB b a cin S Co V Explanation A+B < 2n-1 (OK) 1
a,b are the MSBs of A and B. cin is carry in; cout=carry out b a cin S Co V Explanation A+B < 2n-1 (OK) 1 A+B>2n-1 -1 (overflow) -A+B (OK) A-B (OK) -A-B< -2n-1 (underflow) -A-B > -2n-1 (OK)
113
Overflow/Underflow Detection
We find
114
Overflow/Underflow Detection
You can also use That is, if for the MSB carry_in is not equal to carry_out, overflow or underflow has occurred.
115
TPS Quiz 19-20
116
Comparators
117
F0 = (A = B) Equal Comparator
Design a logic circuit which will compute F0 = (A = B)
118
2-bit Equal Comparator Truth Table
F0 1
119
2-bit Equal Comparator Truth Table
F0 1
120
Solution You can show,
121
N-bit Equal Comparator
122
F = (A = B) F = (A <> B) Not Equal Comparator
Design a logic circuit which will compute F = (A <> B) F = (A = B) i.e. Just invert our Equal Comparator circuit
123
F2 = (A>B) F1 = (A<B) Magnitude Comparator
Design a logic circuit which will compute F2 = (A>B) F1 = (A<B) Let’s develop a truth table for 2-bits
124
2-bit Magnitude (unsigned) Comparator Truth Table
F2 F1 1
125
2-bit Magnitude (unsigned) Comparator Truth Table
F2 F1 1
126
You can show
127
TPS Quiz 21
128
Arithmetic Logic Units (ALUs)
129
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
130
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
131
Function Table s2 s1 s0 Function F=AB 1 F=A+B (logical OR) F=NOT A
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
132
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
133
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:
134
ALU Design
135
ALU Design S2=0 With S2=0, F is the output from the logic module
136
ALU Design S2=1 With S2=1, F is the output from the arithmetic module
137
Logic Module Design
138
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
139
Logic Module Design
140
Logic Module Design F=AB AND Operation S[1..0]=00 0 0
141
Logic Module Design F=A+B OR Operation S[1..0]=01 0 1
142
Logic Module Design F=A NOT Operation S[1..0]=10 1 0
143
Logic Module Design F=A XOR B XOR Operation S[1..0]=11 1 1
144
What do these logic modules look like?
145
AND Module
146
OR Module
147
NOT Module A F
148
XOR Module
149
Let’s use our ADD/SUB Module
Arithmetic Module Let’s use our ADD/SUB Module
150
Add/Sub Circuit Module
151
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
152
Arithmetic Module Design
B A S
153
Arithmetic Module Design
B A S F=A+B S[1..0]=00
154
Arithmetic Module Design
B A S F=A-B S[1..0]=01 1
155
Arithmetic Module Design
B A S F=A+1 S[1..0]=10 1
156
Arithmetic Module Design
B A S F=A-1 S[1..0]=11 1 1
157
Overall Design We have
158
ALU Design
159
Logic Module Design
160
Arithmetic Module Design
B A S
161
Total Design Logic Module Arithmetic Module
162
End of Chapter 4
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.