Combinational Logic Circuits
Combinational Logic Circuits¶
Overview¶
Combinational logic circuits are digital circuits where outputs are determined solely by current inputs. In this lesson, we will learn about the characteristics of combinational logic circuits and major combinational circuits such as adders, multiplexers, demultiplexers, decoders, and encoders. These circuits are core components of computer hardware such as CPUs and memory.
Difficulty: ββ (Intermediate)
Table of Contents¶
- Characteristics of Combinational Logic Circuits
- Half Adder
- Full Adder
- Ripple Carry Adder
- Multiplexer (MUX)
- Demultiplexer (DEMUX)
- Decoder
- Encoder
- Comparator and Other Circuits
- Practice Problems
1. Characteristics of Combinational Logic Circuits¶
Combinational Circuits vs Sequential Circuits¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Classification of Digital Circuits β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββ βββββββββββββββββββββββ β
β β Combinational β β Sequential β β
β β Logic Circuit β β Logic Circuit β β
β βββββββββββββββββββββββ€ βββββββββββββββββββββββ€ β
β β - No memory β β - Has memory β β
β β - Output=f(inputs) β β - Output=f(in,state) β β
β β - No feedback β β - Has feedback β β
β β β β β β
β β Ex: Adder, MUX, β β Ex: Flip-flop, β β
β β Decoder, Encoderβ β Register, Counterβ β
β βββββββββββββββββββββββ βββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Characteristics of Combinational Circuits¶
Characteristics of Combinational Logic Circuits:
1. Outputs depend only on current inputs
ββββββββββββββββββ
β β
Input ββ Combinationalββ Output
β Circuit β
ββββββββββββββββββ
Y = f(Xβ, Xβ, ..., Xβ)
2. No memory elements
- Does not store previous inputs or states
3. Only propagation delay exists
- Time from input change β output change
- Sum of gate delays
4. No feedback path
- Output does not connect back to input
Combinational Circuit Design Procedure¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Combinational Circuit Design Procedure β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β 1. Problem Definition β
β - Clearly define inputs and outputs β
β - Understand operating conditions β
β β
β 2. Truth Table Construction β
β - Determine outputs for all input combinations β
β - Identify Don't Care conditions β
β β
β 3. Logic Expression Derivation β
β - SOP (Sum of Products) or POS (Product of Sums) form β
β β
β 4. Logic Expression Simplification β
β - Use Boolean algebra or K-maps β
β β
β 5. Circuit Implementation β
β - Design circuit with logic gates β
β - Convert to NAND/NOR gates if needed β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
2. Half Adder¶
Half Adder Concept¶
Half Adder:
Adds two 1-bit inputs to output Sum and Carry
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β A ββββββ βββββββββββββββ β
β βββββββ€ HA ββββββ S (Sum) β
β B ββββββ β ββββββ C (Carry) β
β βββββββββββββββ β
β β
β Binary addition: A + B = CS β
β 0 + 0 = 00 (0) β
β 0 + 1 = 01 (1) β
β 1 + 0 = 01 (1) β
β 1 + 1 = 10 (2) β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Truth Table and Logic Expression¶
Half Adder Truth Table:
βββββ¬ββββ¬ββββββββ¬ββββββββββ
β A β B β S(Sum)β C(Carry)β
βββββΌββββΌββββββββΌββββββββββ€
β 0 β 0 β 0 β 0 β
β 0 β 1 β 1 β 0 β
β 1 β 0 β 1 β 0 β
β 1 β 1 β 0 β 1 β
βββββ΄ββββ΄ββββββββ΄ββββββββββ
Logic expressions:
S = A β B (XOR)
C = A Β· B (AND)
Circuit Implementation¶
Half Adder Circuit:
A ββββ¬ββββββ¬ββββββββββββββββββββ
β β β
β β ββββββββ β
β βββββββ€ XOR ββββββββΌβββ S
β βββββββ€ β β
B ββββΌββββββΌββββββ΄βββββββ β
β β β
β β ββββββββ β
β βββββββ€ AND ββββββββΌβββ C
βββββββββββββ€ β β
ββββββββ
Block Symbol:
βββββββββ
A ββββ€ ββββ S (Sum)
β HA β
B ββββ€ ββββ C (Carry)
βββββββββ
Gate count: 1 XOR + 1 AND = 2 gates
Implementation with NAND Gates¶
Half Adder using only NAND gates:
XOR with NAND: 4 gates needed
AND with NAND: 2 gates needed
But with circuit optimization:
βββββββββ
A ββββ€ NAND βββββ¬ββββββββββββββββββββ
B ββββ€ 1 β β β
βββββββββ β βββββββββ β βββββββββ
βββββ€ NAND βββββββββΌββββ€ NAND ββββ S
A ββββ¬ββββββββββββ β 3 β β β 5 β
β βββββββββ βββββββββ β βββββββββ
βββββ€ NAND βββββββββββββββββββββ
B ββββββββ€ 2 β
βββββββββ βββββββββ
βββββ€ NAND ββββ C
β β 4 β
(NAND1 output) βββ΄ββββ€ β
βββββββββ
Total: 5 NAND gates
3. Full Adder¶
Full Adder Concept¶
Full Adder:
Adds three 1-bit inputs (A, B, Cα΅’β) to output Sum and Carry
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β A ββββββ β
β β βββββββββββββββ β
β B ββββββΌββββββ€ FA ββββββ S (Sum) β
β β β ββββββ Cβα΅€β (Carry Out) β
β Cα΅’β βββββ βββββββββββββββ β
β β
β Binary addition: A + B + Cα΅’β = Cβα΅€βS β
β β
β Cα΅’β = Carry from lower bit β
β Cβα΅€β = Carry to higher bit β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Truth Table and Logic Expression¶
Full Adder Truth Table:
βββββ¬ββββ¬ββββββ¬ββββββββ¬βββββββββββ
β A β B β Cα΅’β β S β Cβα΅€β β
βββββΌββββΌββββββΌββββββββΌβββββββββββ€
β 0 β 0 β 0 β 0 β 0 β
β 0 β 0 β 1 β 1 β 0 β
β 0 β 1 β 0 β 1 β 0 β
β 0 β 1 β 1 β 0 β 1 β
β 1 β 0 β 0 β 1 β 0 β
β 1 β 0 β 1 β 0 β 1 β
β 1 β 1 β 0 β 0 β 1 β
β 1 β 1 β 1 β 1 β 1 β
βββββ΄ββββ΄ββββββ΄ββββββββ΄βββββββββββ
Logic expressions:
S = A β B β Cα΅’β
Cβα΅€β = AB + BCα΅’β + ACα΅’β = AB + Cα΅’β(A β B)
Explanation:
- S: Output 1 if odd number of 1s (successive XOR)
- Cβα΅€β: Output 1 if two or more inputs are 1
Implementation with Two Half Adders¶
Full Adder = 2 Half Adders + OR gate
βββββββββ βββββββββ
A βββββββββ€ ββββββββββ€ ββββββββ S
β HA1 β β HA2 β
B βββββββββ€ ββββ¬ββββββ€ βββββββ
βββββββββ β βββββββββ β
C1 β C2 β
β β β β
Cα΅’β βββββββββββΌββββββββ β β
β β βββββββ΄βββββ
ββββββββββββββββββ΄βββββ€ OR ββββ Cβα΅€β
ββββββββββββ
Operation:
1. HA1: A β B = P (partial sum), AΒ·B = G (generate)
2. HA2: P β Cα΅’β = S (final sum), PΒ·Cα΅’β = propagate carry
3. Cβα΅€β = G + PΒ·Cα΅’β = AB + (AβB)Β·Cα΅’β
Circuit Implementation¶
Full Adder Detailed Circuit:
βββββββββ
A βββββββββ¬βββββββββββββ€ XOR ββββββββ¬βββββββββββββββ
β β β β β
B βββββββββΌββββ¬βββββββββ€ β β βββββββββ β
β β βββββββββ ββββ€ XOR βββββΌββ S
β β (P) ββββ€ β β
Cα΅’β ββββββββΌββββΌββββββββββββββββββββββββ βββββββββ β
β β β
β β βββββββββ β
β ββββββββββ€ AND ββββ β
β ββββββββββ€ β β βββββββββ β
β β βββββββββ βββββ€ β β
β β (G) β OR ββββββββ΄ββ Cβα΅€β
β β βββββββββ βββββ€ β
β ββββββββββ€ AND ββββ βββββββββ
β β β
(P) ββββββββ΄βββββββββββββ€ β
βββββββββ
Block Symbol:
βββββββββ
A βββββ€ βββββ S
B βββββ€ FA β
Cα΅’β βββββ€ βββββ Cβα΅€β
βββββββββ
4. Ripple Carry Adder¶
Ripple Carry Adder Concept¶
Ripple Carry Adder:
Multi-bit addition by connecting full adders in series
4-bit Ripple Carry Adder:
Aβ Bβ Aβ Bβ Aβ Bβ Aβ Bβ
β β β β β β β β
βΌ βΌ βΌ βΌ βΌ βΌ βΌ βΌ
βββββββ βββββββ βββββββ βββββββ
β FAβ ββββ€ FAβ ββββ€ FAβ ββββ€ FAβ βββ Cα΅’β (0)
ββββ¬βββ ββββ¬βββ ββββ¬βββ ββββ¬βββ
β β β β
βΌ βΌ βΌ βΌ
Cβα΅€β Sβ Sβ Sβ Sβ
Result: Cβα΅€β Sβ Sβ Sβ Sβ = AβAβAβAβ + BβBβBβBβ
8-bit Adder¶
8-bit Ripple Carry Adder:
A[7:0] ββββ¬βββββββββββββββββββββββββββββββββββββββββββββββ
β β
B[7:0] ββββΌβββββββββββββββββββββββββββββββββββββββββββββββΌβββ
β β β
βΌ βΌ βΌ
βββββ βββββ βββββ βββββ βββββ βββββ ββββββββββ
0 ββββββ€FA0βββββ€FA1βββββ€FA2βββββ€FA3βββββ€FA4βββββ€FA5βββ€FA6ββ€FA7ββββ Cβα΅€β
βββ¬ββ βββ¬ββ βββ¬ββ βββ¬ββ βββ¬ββ βββ¬ββ βββ¬βββββ¬ββ
β β β β β β β β
βΌ βΌ βΌ βΌ βΌ βΌ βΌ βΌ
Sβ Sβ Sβ Sβ Sβ Sβ
Sβ Sβ
Carry propagation delay:
- Worst case: Carry propagates from LSB to MSB
- Delay time = n Γ (FA propagation delay)
Limitations of Ripple Carry Adder¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Ripple Carry Adder Advantages and Disadvantages β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Advantages: β
β - Simple design β
β - Low gate count (n FAs for n-bit) β
β - Regular structure β
β β
β Disadvantages: β
β - Carry propagation delay increases linearly β
β - Very slow for 32-bit, 64-bit β
β β
β Delay time analysis: β
β - Carry delay of 1 FA: approximately 2 gate delays β
β - Total delay for n-bit adder: approximately 2n gate delaysβ
β β
β Improved adders: β
β - Carry Lookahead Adder β
β - Carry Select Adder β
β - Carry Save Adder β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Subtractor¶
Subtraction using adder:
A - B = A + (-B) = A + (2's complement of B) = A + B' + 1
4-bit Adder/Subtractor:
Sub(0=Add, 1=Subtract)
β
Bβ ββββββββββββ Bβ ββββββββββββ
β β β β
Aβ βββββ β β Aβ βββββ β β
β β β β β β
βΌ βΌ β βΌ βΌ β
βββββββ β βββββββ β
βββββββ€ FAβ ββββΌβββββββββββ€ FAβ βββββΌβ ...
ββββ¬βββ β ββββ¬βββ β
β β
Sβ Sβ
Sub = 0: B unchanged, Cα΅’β = 0 β A + B
Sub = 1: B inverted, Cα΅’β = 1 β A + B' + 1 = A - B
5. Multiplexer (MUX)¶
Multiplexer Concept¶
Multiplexer (MUX):
Data selector that selects one of multiple inputs to output
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β 2βΏ inputs β 1 output β
β n select lines β
β β
β Dβ ββββ β
β Dβ ββββΌββββ βββββββββββ β
β Dβ ββββΌββββΌββββββ€ β β
β Dβ ββββΌββββΌββββββ€ MUX ββββββ Y β
β ... β β β n:1 β β
β DββΏβ»ββββΌββββΌββββββ€ β β
β β β ββββββ¬βββββ β
β β β β β
β β β Sβ Sβ...Sβββ β
β β β β β
β β β (Select lines) β
β β
β Y = D_S (S-th input goes to output) β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
2:1 MUX¶
2:1 Multiplexer:
βββββββββββ
Dβ βββ€ 0 β
β MUX ββββ Y
Dβ βββ€ 1 β
ββββββ¬βββββ
β
S
Truth Table:
βββββ¬βββββββ
β S β Y β
βββββΌβββββββ€
β 0 β Dβ β
β 1 β Dβ β
βββββ΄βββββββ
Logic expression:
Y = S'Β·Dβ + SΒ·Dβ
Circuit:
βββββββββ
Dβ βββββββββββββββ€ β
β AND ββββββ
S ββββ¬βββ[NOT]ββββ€ β β βββββββββ
β βββββββββ ββββββ€ OR ββββ Y
β βββββββββ β β β
β β β β βββββββββ
Dβ βββΌββββββββββββ€ AND ββββββ
β β β
βββββββββββββ€ β
βββββββββ
4:1 MUX¶
4:1 Multiplexer:
βββββββββββ
Dβ βββββ€ 00 β
Dβ βββββ€ 01 β
β MUX ββββ Y
Dβ βββββ€ 10 β
Dβ βββββ€ 11 β
ββββββ¬βββββ
β
Sβ Sβ
Truth Table:
ββββββ¬βββββ¬βββββββ
β Sβ β Sβ β Y β
ββββββΌβββββΌβββββββ€
β 0 β 0 β Dβ β
β 0 β 1 β Dβ β
β 1 β 0 β Dβ β
β 1 β 1 β Dβ β
ββββββ΄βββββ΄βββββββ
Logic expression:
Y = Sβ'Sβ'Dβ + Sβ'SβDβ + SβSβ'Dβ + SβSβDβ
4:1 MUX Circuit¶
4:1 Multiplexer Circuit:
Dβ βββββ βββββββ
βββββββ€ AND ββββββ
Sβ'βββββ¬ββββββ€ β β
Sβ'βββββΌββββββ€ β β
β βββββββ β
Dβ βββββ βββββββ β
βββββββ€ AND ββββββΌβββββ
Sβ'βββββ¬ββββββ€ β β β
Sβ βββββΌββββββ€ β β β βββββββ
β βββββββ β ββββββ€ β
Dβ βββββ βββββββ β β β OR ββββ Y
βββββββ€ AND ββββββΌβββββΌβββββ€ β
Sβ βββββ¬ββββββ€ β β β β β
Sβ'βββββΌββββββ€ β β β βββββββ
β βββββββ β β
Dβ βββββ βββββββ β β
βββββββ€ AND βββββββββββ
Sβ βββββ¬ββββββ€ β
Sβ βββββ΄ββββββ€ β
βββββββ
Constructed with two 2:1 MUXes:
βββββββββ
Dβ βββ€ 0 β
β MUX ββββ βββββββββ
Dβ βββ€ 1 β ββββββ€ 0 β
βββββ¬ββββ β MUX ββββ Y
β ββββββ€ 1 β
βββββ΄ββββ β βββββ¬ββββ
Dβ βββ€ 0 β β β
β MUX ββββ Sβ
Dβ βββ€ 1 β
βββββ¬ββββ
Sβ
Applications of MUX¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Applications of MUX β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β 1. Data Selection β
β - Select one of multiple sources β
β - CPU data paths β
β β
β 2. Parallel-to-Serial Conversion β
β - Output parallel data sequentially β
β β
β 3. Logic Function Implementation β
β - Truth table outputs as data inputs β
β - Any n-variable function can be implemented with β
β 2βΏ:1 MUX β
β β
β 4. Conditional Data Transfer β
β - Hardware implementation of if-else statements β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Example: Implementing logic function with MUX
Implement function Y = A'B + AB' (XOR) with 4:1 MUX:
Truth Table:
βββββ¬ββββ¬ββββ
β A β B β Y β
βββββΌββββΌββββ€
β 0 β 0 β 0 β β Dβ = 0
β 0 β 1 β 1 β β Dβ = 1
β 1 β 0 β 1 β β Dβ = 1
β 1 β 1 β 0 β β Dβ = 0
βββββ΄ββββ΄ββββ
βββββββββββ
0 βββ€ 00 β
1 βββ€ 01 β
β 4:1 ββββ Y = A β B
1 βββ€ 10 MUX β
0 βββ€ 11 β
ββββββ¬βββββ
A B
6. Demultiplexer (DEMUX)¶
Demultiplexer Concept¶
Demultiplexer (DEMUX):
Transfers one input to one of multiple outputs (reverse of MUX)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β 1 input β 2βΏ outputs β
β n select lines β
β β
β ββββββββββββββββ Yβ β
β β ββββββ Yβ β
β D ββββββββ€ DEMUX ββββββ Yβ β
β β 1:2βΏ ββββββ Yβ β
β β β ... β β
β ββββββ¬ββββββββββ YββΏβ»β β
β β β
β Sβ Sβ...Sβββ β
β β
β Only selected output receives input D, others are 0 β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
1:4 DEMUX¶
1:4 Demultiplexer:
ββββββββββββββββ Yβ
β ββββββ Yβ
D βββββ€ DEMUX β
β 1:4 ββββββ Yβ
ββββββ¬ββββββββββ Yβ
β
Sβ Sβ
Truth Table (when D=1):
ββββββ¬βββββ¬βββββ¬βββββ¬βββββ¬βββββ
β Sβ β Sβ β Yβ β Yβ β Yβ β Yβ β
ββββββΌβββββΌβββββΌβββββΌβββββΌβββββ€
β 0 β 0 β 1 β 0 β 0 β 0 β
β 0 β 1 β 0 β 1 β 0 β 0 β
β 1 β 0 β 0 β 0 β 1 β 0 β
β 1 β 1 β 0 β 0 β 0 β 1 β
ββββββ΄βββββ΄βββββ΄βββββ΄βββββ΄βββββ
Logic expressions:
Yβ = D Β· Sβ' Β· Sβ'
Yβ = D Β· Sβ' Β· Sβ
Yβ = D Β· Sβ Β· Sβ'
Yβ = D Β· Sβ Β· Sβ
DEMUX Circuit¶
1:4 DEMUX Circuit:
βββββββββ
D ββββ¬ββββββββ€ β
β β AND ββββ Yβ
Sβ'ββββββββΌββββββββ€ β
Sβ'ββββββββΌββββββββ€ β
β βββββββββ
β βββββββββ
βββββββββ€ β
β β AND ββββ Yβ
Sβ'ββββββββΌββββββββ€ β
Sβ ββββββββΌββββββββ€ β
β βββββββββ
β βββββββββ
βββββββββ€ β
β β AND ββββ Yβ
Sβ ββββββββΌββββββββ€ β
Sβ'ββββββββΌββββββββ€ β
β βββββββββ
β βββββββββ
βββββββββ€ β
β AND ββββ Yβ
Sβ ββββββββββββββββ€ β
Sβ ββββββββββββββββ€ β
βββββββββ
7. Decoder¶
Decoder Concept¶
Decoder:
Activates one of 2βΏ outputs from n-bit input
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β n inputs β 2βΏ outputs β
β Only output corresponding to input value is 1, rest are 0 β
β β
β ββββββββββββββββ Yβ β
β Aβ βββββββ€ ββββββ Yβ β
β Aβ βββββββ€ DECODER ββββββ Yβ β
β ... β n:2βΏ ββββββ Yβ β
β Aβββ βββββ€ β ... β β
β ββββββββββββββββ YββΏβ»β β
β β
β Y_i = 1 if input = i (binary) β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
2:4 Decoder¶
2:4 Decoder (2-to-4 Decoder):
ββββββββββββββββ Yβ
Aβ βββββ€ ββββββ Yβ
Aβ βββββ€ 2:4 DEC ββββββ Yβ
ββββββββββββββββ Yβ
Truth Table:
ββββββ¬βββββ¬βββββ¬βββββ¬βββββ¬βββββ
β Aβ β Aβ β Yβ β Yβ β Yβ β Yβ β
ββββββΌβββββΌβββββΌβββββΌβββββΌβββββ€
β 0 β 0 β 1 β 0 β 0 β 0 β
β 0 β 1 β 0 β 1 β 0 β 0 β
β 1 β 0 β 0 β 0 β 1 β 0 β
β 1 β 1 β 0 β 0 β 0 β 1 β
ββββββ΄βββββ΄βββββ΄βββββ΄βββββ΄βββββ
Logic expressions:
Yβ = Aβ' Β· Aβ'
Yβ = Aβ' Β· Aβ
Yβ = Aβ Β· Aβ'
Yβ = Aβ Β· Aβ
Decoder Circuit¶
2:4 Decoder Circuit:
βββββββββ
Aβ'βββββββββββ€ β
β AND ββββ Yβ (=Aβ'Aβ')
Aβ'βββββββββββ€ β
βββββββββ
βββββββββ
Aβ'βββββββββββ€ β
β AND ββββ Yβ (=Aβ'Aβ)
Aβ βββββββββββ€ β
βββββββββ
βββββββββ
Aβ βββββββββββ€ β
β AND ββββ Yβ (=AβAβ')
Aβ'βββββββββββ€ β
βββββββββ
βββββββββ
Aβ βββββββββββ€ β
β AND ββββ Yβ (=AβAβ)
Aβ βββββββββββ€ β
βββββββββ
Decoder with Enable Input¶
3:8 Decoder with Enable:
βββββββββββββββββ Yβ
Aβ ββββββββ€ ββββββ Yβ
Aβ ββββββββ€ 3:8 ββββββ Yβ
Aβ ββββββββ€ DEC ββββββ Yβ
β ββββββ Yβ
E βββββββββ€ (Enable) ββββββ Yβ
βββββββββββββββββ Yβ
βββββ Yβ
E=0: All outputs are 0 (disabled)
E=1: Normal operation
Purpose of Enable:
- Select when connecting multiple decoders
- Chip Select
- Timing control
Applications of Decoder¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Applications of Decoder β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β 1. Memory Address Decoding β
β - Select 2βΏ memory locations with n-bit address β
β β
β 2. Instruction Decoding β
β - Convert operation code (opcode) to control signals β
β β
β 3. 7-Segment Display β
β - Convert BCD to 7-segment pattern β
β β
β 4. Minterm Generator β
β - Implement logic functions (Decoder + OR gate) β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Implementing logic function with decoder:
Example: Implement Y = Ξ£m(1, 2, 4, 7) with 3:8 decoder
ββββββββββββ
A βββββ€ ββββββ mβ
B βββββ€ 3:8 ββββββ mβ βββ
C βββββ€ DEC ββββββ mβ βββΌβββ
β ββββββ mβ β β ββββββββ
β ββββββ mβ βββΌβββΌβββββ€ β
β ββββββ mβ
β β β OR ββββ Y
β ββββββ mβ β ββββββ€ β
βββββββββββββββββ mβ βββ΄ββββββββ€ β
ββββββββ
Y = mβ + mβ + mβ + mβ
8. Encoder¶
Encoder Concept¶
Encoder:
Converts one active input among 2βΏ inputs to n-bit binary code (reverse of decoder)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β 2βΏ inputs β n outputs β
β Outputs number of active input in binary β
β β
β Dβ βββββββ β
β Dβ βββββββΌβββββ βββββββββββ β
β Dβ βββββββΌβββββΌββββββ€ ββββββ Aβ β
β Dβ βββββββΌβββββΌββββββ€ ENCODER ββββββ Aβ β
β ... β β β 2βΏ:n β ... β β
β DββΏβ»βββββΌβββββΌββββββ€ ββββββ Aβββ β
β β β βββββββββββ β
β β
β Assumption: Only one input is active at a time β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
4:2 Encoder¶
4:2 Encoder:
βββββββββββ
Dβ βββββ€ ββββββ Aβ
Dβ βββββ€ 4:2 β
Dβ βββββ€ ENC ββββββ Aβ
Dβ βββββ€ β
βββββββββββ
Truth Table:
ββββββ¬βββββ¬βββββ¬βββββ¬βββββ¬βββββ
β Dβ β Dβ β Dβ β Dβ β Aβ β Aβ β
ββββββΌβββββΌβββββΌβββββΌβββββΌβββββ€
β 0 β 0 β 0 β 1 β 0 β 0 β
β 0 β 0 β 1 β 0 β 0 β 1 β
β 0 β 1 β 0 β 0 β 1 β 0 β
β 1 β 0 β 0 β 0 β 1 β 1 β
ββββββ΄βββββ΄βββββ΄βββββ΄βββββ΄βββββ
Logic expressions:
Aβ = Dβ + Dβ
Aβ = Dβ + Dβ
Priority Encoder¶
Priority Encoder:
Encodes only the highest priority input even when multiple inputs are active
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β Problem with regular encoder: β
β - Incorrect output if two or more inputs are 1 β
β β
β Priority Encoder: β
β - Higher numbered input has higher priority β
β - Valid output added (indicates if any input is present) β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
4:2 Priority Encoder:
ββββββββββββββββ Aβ
Dβ βββββ€ ββββββ Aβ
Dβ βββββ€ 4:2 β
Dβ βββββ€ P.ENC ββββββ V (Valid)
Dβ βββββ€ β
βββββββββββ
Truth Table (X = don't care):
ββββββ¬βββββ¬βββββ¬βββββ¬βββββ¬βββββ¬ββββ
β Dβ β Dβ β Dβ β Dβ β Aβ β Aβ β V β
ββββββΌβββββΌβββββΌβββββΌβββββΌβββββΌββββ€
β 0 β 0 β 0 β 0 β X β X β 0 β β No input
β 0 β 0 β 0 β 1 β 0 β 0 β 1 β
β 0 β 0 β 1 β X β 0 β 1 β 1 β β Dβ has priority
β 0 β 1 β X β X β 1 β 0 β 1 β β Dβ has priority
β 1 β X β X β X β 1 β 1 β 1 β β Dβ has highest priority
ββββββ΄βββββ΄βββββ΄βββββ΄βββββ΄βββββ΄ββββ
Logic expressions:
Aβ = Dβ + Dβ
Aβ = Dβ + Dβ'Dβ
V = Dβ + Dβ + Dβ + Dβ
Applications of Encoder¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Applications of Encoder β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β 1. Keyboard Encoder β
β - Convert pressed key to scan code β
β - Handle simultaneous keys with priority encoder β
β β
β 2. Interrupt Controller β
β - Select highest priority among multiple interrupt β
β requests β
β - Generate interrupt number β
β β
β 3. Position Encoder β
β - Extract position information from sensor array β
β β
β 4. Data Compression β
β - Convert one-hot code to binary code β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
9. Comparator and Other Circuits¶
Comparator¶
1-bit Comparator:
Compares two bits A and B and outputs size relationship
ββββββββββββββββ G (A > B)
A ββββββ€ ββββββ E (A = B)
B ββββββ€ COMP ββββββ L (A < B)
βββββββββββ
Truth Table:
βββββ¬ββββ¬ββββ¬ββββ¬ββββ
β A β B β G β E β L β
βββββΌββββΌββββΌββββΌββββ€
β 0 β 0 β 0 β 1 β 0 β
β 0 β 1 β 0 β 0 β 1 β
β 1 β 0 β 1 β 0 β 0 β
β 1 β 1 β 0 β 1 β 0 β
βββββ΄ββββ΄ββββ΄ββββ΄ββββ
Logic expressions:
G = A Β· B'
E = A β B = (A β B)'
L = A' Β· B
n-bit Comparator¶
4-bit Comparator:
A[3:0] βββββββββ ββββββββββββββββ A > B
βββββββ€ β
B[3:0] βββββββββ β 4-bit ββββββ A = B
β COMP β
β ββββββ A < B
βββββββββββ
Operating principle:
Compare from MSB and decide at first different bit
A = 1011, B = 1010
β β
Aβ=Bβ Aβ=Bβ Aβ>Bβ β A > B
Logic expression (cascade):
G = AβBβ' + (AββBβ)(AβBβ' + (AββBβ)(AβBβ' + (AββBβ)AβBβ'))
E = (AββBβ)(AββBβ)(AββBβ)(AββBβ)
L = E' Β· G'
BCD to 7-Segment Decoder¶
7-Segment Display:
βaβ
β β
f b
β β
βgβ
β β
e c
β β
βdβ
BCD input (4 bits) β 7 segment outputs
ββββββββββββββββββββ a
Dβ βββ€ ββββββ b
Dβ βββ€ BCD to ββββββ c
Dβ βββ€ 7-Segment ββββββ d
Dβ βββ€ Decoder ββββββ e
β ββββββ f
ββββββββββββββββββββ g
Partial Truth Table:
ββββββββββ¬βββββββββββββββββββββββββββββ
β BCD β Segments (a-g) β
ββββββββββΌβββββββββββββββββββββββββββββ€
β 0000 β 1 1 1 1 1 1 0 (0) β
β 0001 β 0 1 1 0 0 0 0 (1) β
β 0010 β 1 1 0 1 1 0 1 (2) β
β 0011 β 1 1 1 1 0 0 1 (3) β
β 0100 β 0 1 1 0 0 1 1 (4) β
β 0101 β 1 0 1 1 0 1 1 (5) β
β 0110 β 1 0 1 1 1 1 1 (6) β
β 0111 β 1 1 1 0 0 0 0 (7) β
β 1000 β 1 1 1 1 1 1 1 (8) β
β 1001 β 1 1 1 1 0 1 1 (9) β
ββββββββββ΄βββββββββββββββββββββββββββββ
Parity Generator/Checker¶
Parity:
Bit added to data for error detection
Even Parity:
- Add parity bit so total number of 1s is even
- If data has odd number of 1s, P=1; if even, P=0
Odd Parity:
- Add parity bit so total number of 1s is odd
4-bit Even Parity Generator:
Dβ ββββ¬ββββββββ¬ββββββββ¬βββββββ P (Parity bit)
β β β
Dβ ββββ β β
β β
Dβ ββββββββββββ β
β
Dβ ββββββββββββββββββββ
P = Dβ β Dβ β Dβ β Dβ
Example: D = 1011
P = 1 β 0 β 1 β 1 = 1
Transmit: 1011 + 1 = 10111 (number of 1s = 4, even)
10. Practice Problems¶
Basic Problems¶
1. Explain the difference between a half adder and a full adder.
2. Calculate 0111 + 0011 in a 4-bit ripple carry adder. Show S and Cβα΅€β for each FA.
3. In an 8:1 multiplexer, which input goes to the output when select lines are SβSβSβ = 101?
Design Problems¶
4. Implement a full adder using only NAND gates. What is the minimum number of gates needed?
5. Implement the following function using only 4:1 MUX.
Y = A'B + AB'C + ABC'
6. Implement the following function using a 3:8 decoder and OR gate.
Y = Ξ£m(0, 2, 5, 7)
Analysis Problems¶
7. Analyze the operation of the following circuit and create a truth table.
βββββββββββ
A ββββ€ 0 β
β MUX ββββ Y
B ββββ€ 1 β
ββββββ¬βββββ
β
A
8. In an 8-bit ripple carry adder where each FA has a 10ns delay, what is the total delay in the worst case?
Application Problems¶
9. Design a 4-bit adder/subtractor. When Sub input is 0, perform addition; when 1, perform subtraction.
10. Design a circuit that selects the highest priority among 8 interrupt requests using a priority encoder.
Answers
**1.** - Half Adder: 2 inputs (A, B) output sum and carry. No carry input from lower bit. - Full Adder: 3 inputs (A, B, Cα΅’β) output sum and carry. Processes carry from lower bit. **2.** 0111 + 0011: - FAβ: 1+1+0 = Sβ=0, Cβ=1 - FAβ: 1+1+1 = Sβ=1, Cβ=1 - FAβ: 1+0+1 = Sβ=0, Cβ=1 - FAβ: 0+0+1 = Sβ=1, Cβα΅€β=0 - Result: 01010 (7+3=10) **3.** SβSβSβ = 101 = 5ββ, so Dβ goes to output. **4.** Full adder can be implemented with 9 NAND gates. **5.** Using A, B as select lines: - Dβ(A=0,B=0) = 0 - Dβ(A=0,B=1) = C' - Dβ(A=1,B=0) = C - Dβ(A=1,B=1) = C' **6.** Connect outputs mβ, mβ, mβ , mβ of 3:8 decoder to OR gate. **7.** Circuit analysis: - S=A=0: Y=Dβ=A - S=A=1: Y=Dβ=B - Therefore Y = A'Β·A + AΒ·B = AΒ·B **8.** In ripple carry adder when carry propagates from LSB to MSB: 8 FA Γ 10ns = 80ns **9.** 4-bit Adder/Subtractor: - Connect B input through XOR gates with Sub - Sub=0: B unchanged, Cα΅’β=0 (addition) - Sub=1: B inverted, Cα΅’β=1 (subtraction) **10.** Use 8:3 priority encoder: - Dβ~Dβ: Interrupt requests (Dβ has highest priority) - AβAβAβ: Selected interrupt number - V: Valid interrupt request presentNext Steps¶
- 06_Sequential_Logic.md - Latches, flip-flops, registers, counters
References¶
- Digital Design (Morris Mano)
- Computer Organization and Design (Patterson & Hennessy)
- Logisim - Digital Circuit Simulator
- CircuitVerse - Online Digital Circuit Simulator
- Digital Circuits - All About Circuits