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/12) 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/12) 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 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Combinational Logic Circuits (10/12) BC A 00 01 11 10 0 0 1 0 1 1 1 0 1 0 S=A’B’C+A’BC’ +AB’C’+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 Adders A B C BC A 00 01 11 10 0 0 0 1 0 1 0 1 1 1 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=A’BC+AB’C+AB =C(A’B+AB’)+AB =C(AB)+AB A B C Combinational Logic Circuits (10/12) S=ABC Co=BC+ AC+AB 4 Adders referred to as a full adder A B C S=ABC Co=BC+ AC+AB we can let a block represent the full adder now we can build an N-bit adder from N full adders Cin A0 B0 A1 B1 A B C A B C S FA S0 Co S S1 FA Co A B Cin C. E. Stroud full S adder AN-1 BN-1 Cout Combinational Logic Circuits (10/12) A B C S FA Co SN-1 Cout 5 Subtractors Build an N-bit subtractor from an N-bit adder using 2’s complement •Recall the 2’s 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 A0 B0 A1 B1 AN-1 BN-1 Combinational Logic Circuits (10/12) A B C A B C A B C S FA S0 Co S S1 FA Co S FA Co SN-1 Cout 6 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 A Z S B G=4 GIO=11 Gdel=3 C. E. Stroud B 0 1 Z = AS’ + BS S if S=0, then Z=A else if S=1, then Z=B Combinational Logic Circuits (10/12) In0 Out Z In2N-1 N Select Control 7 Short-hand Truth Table Multiplexers • 4-to-1 MUX – 4 inputs • In0-3 – 2 controls • S1, S0 (LSB) – 1 output • Z In0 In1 In2 In3 0 1 2 3 In0 S1 S0 S1 S0 • Can generated any size MUX Z = In0 S1’ S0’ + In1 S1’ S0 + In2 S1 S0’ + In3 S1 S0 S0 SOP obtained directly from S1 short-hand Truth Table C. E. Stroud Z S1 S0 Z 0 0 In0 0 1 In1 1 0 In2 1 1 In3 In1 S1 S0 In2 S1 S0 S0 S1 In3 S1 S0 Combinational Logic Circuits (10/12) Z G=7 GIO=25 Gdel=3 8 Multiplexers In0 In1 In2 In3 0 Z 1 2 3 • 4-to-1 MUX S1 S0 – Built from 2-to-1 MUXs • 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 In0 A In1 Z B S In2 A In3 Z B S Combinational Logic Circuits (10/12) A Z B S S0 C. E. Stroud X G=12 GIO=33 Gdel=5 S0-S0’-Z Z Y S1 9 Multiplexers • Recall Shannon’s Expansion Theorem – T10a: f(X1,X2,…,Xn-1,Xn)= (X1’•f(0,X2,…,Xn-1,Xn))+(X1•f(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)= (X1’•X2’•f(0,0,…,Xn-1,Xn)) + (X1•X2’•f(1,0,…,Xn-1,Xn)) + (X1’•X2•f(0,1,…,Xn-1,Xn)) +(X1•X2•f(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/12) 10 Multiplexers Are Functionally Complete 0 0 • AND operation – f(A,B) = AB = A’f(0,B) + Af(1,B) = A’(0B) + A(1B) = A’0 + AB • OR operation B B 1 – f(A) = A’ = A’f(0) + Af(1) 0 = A’(1) + A(0) C. E. Stroud Combinational Logic Circuits (10/12) 0 1 A – f(A,B) = A+B = A’f(0,B) + Af(1,B) 1 = A’(0+B) + A(1+B) = A’B + A1 • NOT operation AB 0 A+B 1 A A 1 A 11 Demultiplexers • N control signals select input to go to 1 of up to 2N outputs • Opposite of MUXs Out0 In – Sometimes called de-selectors • Alternate view is a decoder Out2N-1 N Select Control – 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 Out0 Out2N-1 – Otherwise all outputs are 0 • Now it’s same as the DMUX C. E. Stroud Combinational Logic Circuits (10/12) Enable 12 Demultiplexers/Decoders S1 S0 O0 O1 O2 O3 • Truth table, logic equations & design of 2-to-4 O0=InS1’S0’ demultiplexer O1=InS1’S0 • Same as 2-bit O2=InS1S0’ address decoder O3=InS1S0 with active high S0 G=6 enable (En) – En same as In in demux design C. E. Stroud GIO=20 Gdel=2 S1 0 0 In 0 0 0 0 1 0 In 0 0 1 0 0 0 In 0 1 1 0 0 0 In (En) S1’ S0’ S0’ S1’ Combinational Logic Circuits (10/12) S1’ S0 S1 S0’ S1 S0 In O0 O1 O2 O3 13 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/12) 14 Comparators G=N+1 GIO=3N+N+1 Gdel=2 • Equal-to comparators use XOR A0 function B0 NEQ – XOR produces 1 when inputs differ AN-1 • Do bit-wise compare of N pairs of B N-1 bits – N XOR gates A0-AN-1 B0-BN-1 N – 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 • Greater/Less-than use 2s-comp subtraction C. E. Stroud Combinational Logic Circuits (10/12) 1 A Cin B Adder Sum Cout N A=B AB 15 Parity Circuits • Parity makes use of the XOR function – XOR produces a 1 for an odd # of 1s on input • This produces even parity over data + parity bit • For odd parity, we can invert the output (an XNOR) – Check for correct parity by comparing Pgen with incoming G=3 parity bit Pin GIO=9 Gdel=2 • Another XOR gate for comparison • D0 For N data bits D1 – Generate circuit = N-1 XOR gates D2 • With parity control = N XOR gates D3 – Check circuit = N XOR gates • With parity control = N+1 XOR gates • Parity control allows inversion for even or odd parity generation and requires additional XOR gate C. E. Stroud Combinational Logic Circuits (10/12) Pin G=4 GIO=12 Gdel=3 Pgen Perror 16