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

© 2019 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google