Common Combinational Logic Circuits
Adders
Subtraction typically via 2s complement addition
Multiplexers
N control signals select 1 of up to 2N inputs as output
Demultiplexers
N control signals select input to go to 1 of up to 2N outputs
Decoders
N inputs produce M outputs (typically M > N)
Encoders
N inputs produce M outputs (typically N > M)
Converter (same as decoder or encoder)
N inputs produce M outputs (typically N = M)
C. E. Stroud Combinational Logic Circuits (10/07) 1
More Common Circuits
Comparators
Compare two N-bit binary values
Equal-to or Not-equal-to
Easiest to design
Greater-than, Less-than, Greater-than-or-equal-to, etc.
Require adders
Parity check/generate circuit
Calculates even or odd parity over N bits of data Checks for good/bad parity (parity errors) on incoming data
C. E. Stroud Combinational Logic Circuits (10/07) 2
Adders
Consider ith column addition of 2 binary numbers (A and B)
Ai + Bi + Cini = Couti + Sumi Derive truth table Populate K-maps Obtain minimized SOPs Draw logic diagram Optimize with P&Ts
C. E. Stroud
Truth Table
A B C Co S 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1
BC A 00 01 11 10 0 0 1 0 1 1 1 0 1 0 S=ABC+ABC +ABC+ABC =A(BC)+A(BC) =ABC BC A 00 01 11 10 0 0 0 1 0 1 0 1 1 1 Co=BC+AC+AB
3
Combinational Logic Circuits (10/07)
Adders
A B C S=ABC BC A 00 01 11 10 0 0 0 1 0 1 0 1 1 1 Co=ABC+ABC+AB =C(AB+AB)+AB =C(AB)+AB A B C S=ABC
Co=BC+ AC+AB
Taking advantage of common product terms between S and Co we see that we can use the XOR gate for AB to reduce the gate count
C. E. Stroud
Co=BC+ AC+AB
4
Combinational Logic Circuits (10/07)
Adders
referred to as a full adder
A B C S=ABC
now we can build an N-bit adder from N full adders
Cin
A0 B0 A S B FA C Co A S B FA C Co S0
Co=BC+ AC+AB
we can let a block represent the full adder
A B Cin
C. E. Stroud
A1 B1
S1
full S adder
Cout
AN-1 BN-1
A S B FA C Co
SN-1 Cout
5
Combinational Logic Circuits (10/07)
Subtractors
Build an N-bit subtractor from an N-bit adder using 2s complement Recall the 2s complement transformation for a negative number: 1) invert 2) then add 1 here we use Cin to add a 1 Therefore, S=A-B Note that this includes a sign bit (SN-1)
C. E. Stroud
Cin=1
A S B FA C Co A S B FA C Co S0
A0 B0
A1 B1
S1
AN-1 BN-1
A S B FA C Co
SN-1 Cout
6
Combinational Logic Circuits (10/07)
Multiplexers
N control signals select 1 of up to 2N inputs as output
Sometimes called selectors We looked at a 2-to-1 MUX
A Z S B A B
0 1
In0 Out
In2N-1 N Select Control
Z = AS + BS S if S=0, then Z=A else if S=1, then Z=B
Combinational Logic Circuits (10/07)
C. E. Stroud
Short-hand Truth Table
Multiplexers
4-to-1 MUX
4 inputs
In0-3
2 controls
S1, S0 (LSB)
In0 In1 In2 In3
0 1 2 3 In0 S1 S0 In1 S1 S0 In2 S1 S0 In3 S1 S0
S1 S0 Z 0 0 In0 0 1 In1 1 0 In2 1 1 In3
1 output
Z
S1 S0
Can generated any size MUX Z = In0 S1 S0 + In1 S1 S0 + In2 S1 S0 + In3 S1 S0 SOP obtained directly from short-hand Truth Table
C. E. Stroud
Combinational Logic Circuits (10/07)
Multiplexers
4-to-1 MUX
Built from 2-to-1 MUXs
In0 In1 In2 In3
0 1 2 3
S1 S0 In0 In1 In2 In3
A Z B S A Z B S
Can generate any size MUX Z =X S1 + Y S1 =(In0 S0+In1 S0)S1 +(In2 S0+In3 S0)S1 =In0 S1 S0 + In1 S1 S0 + In2 S1 S0 + In3 S1 S0
C. E. Stroud
X
A Z B S
S0
Combinational Logic Circuits (10/07)
S1
9
Multiplexers
Recall Shannons Expansion Theorem
T10a: f(X1,X2,,Xn-1,Xn)= (X1f(0,X2,,Xn-1,Xn))+(X1f(1,X2,,Xn-1,Xn)) A 2-to-1 MUX is X1 as select input
Can be taken further:
f(X1,X2,,Xn-1,Xn)= (X1X2f(0,0,,Xn-1,Xn)) + (X1X2f(1,0,,Xn-1,Xn)) + (X1X2f(0,1,,Xn-1,Xn)) +(X1X2f(1,1,,Xn-1,Xn)) A 4-to-1 MUX with X1X2 and X1 as select inputs
This says a MUX is functionally complete
C. E. Stroud Combinational Logic Circuits (10/07) 10
Multiplexers
AND gate
f(A,B) = AB = Af(0,B) + Af(1,B) = A(0B) + A(1B) = A0 + AB
0 B
0 1
AB
A B
0 1
OR gate
f(A,B) = A+B = Af(0,B) + Af(1,B) 1 = A(0+B) + A(1+B) = AB + A1
A+B
NOT gate
0 1
A A
f(A) = A = Af(0) + Af(1) 0 = A(1) + A(0)
C. E. Stroud Combinational Logic Circuits (10/07)
A
11
Demultiplexers
N control signals select input to go to 1 of up to 2N outputs Opposite of MUXs
Sometimes called de-selectors
In
Out0
Out2N-1 N Select Control Out0
Alternate view is a decoder
N inputs produce a logic 1 on 1 of up to 2N outputs
An enable input can be added to Select Control N enable the logic 1 on the output
Otherwise all outputs are 0
Out2N-1 Enable
12
Now its same as the DMUX
C. E. Stroud Combinational Logic Circuits (10/07)
Decoders/Encoders
Decoders
N inputs produce M outputs (typically M > N) BCD to 7-segment decoder is a good example
Encoders
N inputs produce M outputs (typically N > M) We could just as easily have taken the 7-segment values (A-G) and encode to BCD or HEX
That would be a 7-variable K-map
Converters
N inputs produce M outputs (typically N = M) Excess-3 code to BCD converter is a good example
C. E. Stroud Combinational Logic Circuits (10/07) 13
Comparators
Equal-to comparators use XOR A0 function B0
XOR produces 1 when inputs differ
bits
N XOR gates
NEQ
AN-1 Do bit-wise compare of N pairs of BN-1 A0-AN-1
A Cin N
B0-BN-1
B
OR the XOR outputs to produce a 1 when the input values differ
An N-input OR gate Invert the output (NOR) to produce a 1 when the input values are the same
1
Adder
Cout N
Greater/Less-than use 2s-comp subtraction
C. E. Stroud Combinational Logic Circuits (10/07)
Sum
AB
14
A=B
Parity Circuits
Parity makes use of the XOR function D0
XOR produces a 1 for an odd # D1 of 1s on input D2 This produces even parity over D3 data + parity bit
For odd parity, we can invert the output (an XNOR)
Pgen
Check for correct parity by comparing Pgen with incoming parity bit Pin
Another XOR gate for comparison
C. E. Stroud Combinational Logic Circuits (10/07)
Pin
Perror
15