UNIT 4: DIGITAL SYSTEM DESIGN - EXAM-FOCUSED SHORT NOTES
I. NUMBER SYSTEMS AND CODE CONVERSIONS
Core Number Systems
| System | Base | Digits | Key Use |
|---|---|---|---|
| Binary | 2 | 0,1 | Fundamental for digital circuits |
| Octal | 8 | 0-7 | Grouping 3 binary bits |
| Decimal | 10 | 0-9 | Human-readable |
| Hexadecimal | 16 | 0-9,A-F | Grouping 4 binary bits |
Conversion Methods
-
Integer Part: Repeated division by target base.
-
Fractional Part: Repeated multiplication by target base.
[!TIP] For fractional conversions, multiply until fractional part becomes zero or desired precision is reached.
Example: Octal 314.52 to other bases
-
To Binary: Split each octal digit → 3 binary bits.
3→011, 1→001, 4→100, 5→101, 2→010→011001100.101010 -
To Decimal:
$$ (314.52)_8 = 3×8^2 + 1×8^1 + 4×8^0 + 5×8^{-1} + 2×8^{-2} = 204.65625_{10} $$
-
To Hex: Convert binary to hex (group 4 bits).
011001100.101010→0110 0110 0.1010 10→66.54₁₆
Special Codes
-
Gray Code: Only 1 bit changes between consecutive numbers.
- Binary to Gray: MSB same; each next bit = XOR(prev Gray bit, current binary bit).
$$ G_i = B_i \oplus B_{i+1} \quad (\text{with } B_{n+1}=0) $$
- Gray to Binary: MSB same; each next bit = XOR(prev binary bit, current Gray bit).
$$ B_i = G_i \oplus B_{i+1} $$
-
BCD (Binary Coded Decimal): Each decimal digit → 4-bit binary.
- Valid codes:
0000to1001;1010-1111are invalid.
- Valid codes:
-
Excess-3 (XS-3): BCD +
0011(3).-
BCD to XS-3: Add
0011to each 4-bit BCD digit. -
XS-3 to BCD: Subtract
0011; watch for borrow across digits.
-
II. BOOLEAN ALGEBRA AND LOGIC MINIMIZATION
Boolean Algebra Laws (Key Theorems)
| Law | Expression |
|---|---|
| Identity | $$\displaystyle A + 0 = A $$, $$\displaystyle A·1 = A $$ |
| Null | $$\displaystyle A + 1 = 1 $$, $$\displaystyle A·0 = 0 $$ |
| Idempotent | $$\displaystyle A + A = A $$, $$\displaystyle A·A = A $$ |
| Involution | $$\displaystyle \overline{\overline{A}} = A $$ |
| Complement | $$\displaystyle A + \overline{A} = 1 $$, $$\displaystyle A·\overline{A} = 0 $$ |
| Commutative | $$\displaystyle A+B=B+A $$, $$\displaystyle A·B=B·A $$ |
| Associative | $$\displaystyle (A+B)+C = A+(B+C) $$ |
| Distributive | $$\displaystyle A·(B+C)=A·B + A·C $$ <br> $$\displaystyle A+(B·C) = (A+B)·(A+C) $$ |
| De Morgan's | $$\displaystyle \overline{A+B} = \overline{A}·\overline{B} $$ <br> $$\displaystyle \overline{A·B} = \overline{A} + \overline{B} $$ |
| Absorption | $$\displaystyle A + A·B = A $$, $$\displaystyle A·(A+B) = A $$ |
| Consensus | $$\displaystyle A·B + \overline{A}·C + B·C = A·B + \overline{A}·C $$ |
[!TIP] De Morgan's: Break the bar, change the operator.
Karnaugh Map (K-Map) Method
-
Purpose: Visual minimization of SOP/POS.
-
Rules:
-
Group powers of 2 (1,2,4,8,...).
-
Groups must be rectangular.
-
Wrap-around allowed (edges/toroidal).
-
Don't cares (X) can be included if helpful.
-
Largest possible groups, then fewest groups.
-
Essential Prime Implicant (EPI): Minterm covered by only one PI.
-
Steps:
-
Plot minterms/don't cares.
-
Identify all Prime Implicants (PIs).
-
Mark Essential Prime Implicants (EPIs).
-
Use Petrick's method if needed for remaining minterms.
Example for 4-variable:
$$ F(A,B,C,D) = \sum m(0,5,7,9,11,13) + d(10,15) $$
-
Groups:
m0alone? Check if covered by other PIs. -
EPIs:
m5,7,13form group? →BD'? Let's compute:- Quad
m8,9,10,11→A'C? Actually:A'Ccoversm8,9,10,11butm8not in function → useA'Cwithd(10)? Better to list all PIs.
- Quad
[!TIP] POS from K-map: Group maxterms (0s) or use complement of SOP of F'.
Quine-McCluskey (Tabulation) Method
Algorithm:
-
List minterms in binary, group by number of 1s.
-
Compare adjacent groups (differs by 1 bit). Mark combined terms with
-. -
Repeat until no more combinations.
-
Prime Implicants = unmarked terms.
-
Prime Implicant Chart:
-
Rows: PIs.
-
Columns: Minterms.
-
Mark covered minterms.
-
-
Selection:
-
Essential PIs (columns with single ✓) must be chosen.
-
For remaining, use Petrick's method or row/column dominance.
-
Example with Don't Cares:
$$ F(u,v,x,y,z) = \sum m(0,1,3,9,10,12,13,14) + \sum d(2,5,6,11) $$
-
Treat don't cares as optional in final cover.
-
Don't cares can help form larger PIs but are not required to be covered.
[!TIP] In QM, don't cares are included in combination step but not in final chart columns unless they are minterms? Actually: Don't cares are not listed as columns in prime implicant chart. They only help form larger PIs.
III. COMBINATIONAL LOGIC CIRCUITS
Universal Gates
-
NAND is universal:
-
NOT:
A' = A NAND A -
AND:
A·B = (A NAND B)' -
OR:
A+B = (A' NAND B')
-
-
NOR is universal:
-
NOT:
A' = A NOR A -
OR:
A+B = (A NOR B)' -
AND:
A·B = (A' NOR B')
-
[!TIP] Implement NOR using NAND:
$$ A+B = \overline{\overline{A+B}} = \overline{\overline{A}·\overline{B}} = (A \text{ NAND } A) \text{ NAND } (B \text{ NAND } B) $$
Arithmetic Circuits
Half Adder (HA)
-
Inputs: A, B
-
Outputs: Sum = $A \oplus B$, Carry = $A·B$
-
Truth Table:
| A | B | Sum | Carry | |---|---|-----|-------| | 0 | 0 | 0 | 0 | | 0 | 1 | 1 | 0 | | 1 | 0 | 1 | 0 | | 1 | 1 | 0 | 1 |
Full Adder (FA)
-
Inputs: A, B, $$\displaystyle C_{in} $$
-
Outputs: Sum = $$\displaystyle A \oplus B \oplus C_{in} $$, Carry = $$\displaystyle AB + BC_{in} + AC_{in} $$
-
Using HAs:
HA1: (A,B) → S1, C1 HA2: (S1, Cin) → Sum, C2 Carry = C1 + C2
Half Subtractor (HS)
-
Inputs: A, B
-
Outputs: Diff = $A \oplus B$, Borrow = $\overline{A}·B$
Full Subtractor (FS)
-
Inputs: A, B, $$\displaystyle B_{in} $$
-
Outputs: Diff = $$\displaystyle A \oplus B \oplus B_{in} $$, Borrow = $$\displaystyle \overline{A}B + \overline{A}B_{in} + BB_{in} $$
BCD Adder
-
Adds two BCD digits (4-bit each).
-
If sum > 9 or carry out = 1, add
0110(6) to correct. -
Logic: $$\displaystyle C_{out} + S_3S_2 + S_3S_1 = 1 $$ → add 6.
-
Excess-3 Adder: Just add two XS-3 numbers; no correction needed because XS-3 codes are self-complementing.
Carry Look-Ahead Adder (CLA)
-
Generate $$\displaystyle G_i = A_iB_i $$
-
Propagate $$\displaystyle P_i = A_i \oplus B_i $$
-
Carry: $$\displaystyle C_{i+1} = G_i + P_iC_i $$
-
Parallel carry calculation → faster than ripple.
-
4-bit CLA:
$$ \begin{aligned} C_1 &= G_0 + P_0C_0 \\ C_2 &= G_1 + P_1G_0 + P_1P_0C_0 \\ C_3 &= G_2 + P_2G_1 + P_2P_1G_0 + P_2P_1P_0C_0 \\ C_4 &= G_3 + P_3G_2 + P_3P_2G_1 + P_3P_2P_1G_0 + P_3P_2P_1P_0C_0 \end{aligned} $$
Code Converters
-
Binary to Gray: $$\displaystyle G_3 = B_3 $$, $$\displaystyle G_2 = B_3 \oplus B_2 $$, $$\displaystyle G_1 = B_2 \oplus B_1 $$, $$\displaystyle G_0 = B_1 \oplus B_0 $$.
-
Gray to Binary: $$\displaystyle B_3 = G_3 $$, $$\displaystyle B_2 = G_2 \oplus B_3 $$, $$\displaystyle B_1 = G_1 \oplus B_2 $$, $$\displaystyle B_0 = G_0 \oplus B_1 $$.
-
Excess-3 to BCD: Subtract
0011from each 4-bit XS-3 digit. For digit≥ 1011(11), borrow from next higher digit.
Multiplexers (MUX)
- Definition: $$\displaystyle 2^n:1 $$ MUX has $n$ select lines, $$\displaystyle 2^n $$ data inputs, 1 output.
$$ Y = \sum_{i=0}^{2^n-1} D_i \cdot S_i' \cdot S_{i-1}' ... $$
-
Implementation of Boolean Function:
-
Connect select lines to input variables.
-
Connect data inputs to 0, 1, or variables (or their complements) based on K-map.
-
For $n$-variable function, use $$\displaystyle 2^n:1 $$ MUX or smaller MUX with external gates.
-
Example: 8:1 MUX for 4-var function:
-
Connect
B,C,Dto S2,S1,S0 (3 selects). -
For each minterm $$\displaystyle m_i $$, set $$\displaystyle D_i = A $$ if $A$ appears in minterm, else $$\displaystyle D_i = A' $$ or constant.
-
Or use two 4:1 MUXes with A as select between them.
Design Larger MUX from Smaller:
-
16:1 from 2:1: Use 15 2:1 MUXes in tree: 8 → 4 → 2 → 1.
-
8:1 from 4:1: Two 4:1 MUXes (LSB selects), output to 2:1 MUX (MSB select).
Demultiplexers & Decoders
-
Decoder: $n$ inputs → $$\displaystyle 2^n $$ outputs (one-hot).
- 2-to-4 Decoder: $E$ (enable), $$\displaystyle A_1A_0 $$ → $$\displaystyle Y_0 $$ to $$\displaystyle Y_3 $$.
$$ Y_i = E \cdot A_1' \cdot A_0' \text{ (for } i=0\text{)} $$
etc.
-
Implementing Functions:
-
For SOP: OR outputs of decoder corresponding to minterms.
-
For POS: NAND outputs corresponding to maxterms.
-
-
Priority Encoder: $$\displaystyle 2^n:1 $$ inputs → $n$-bit binary output + valid signal.
-
4-bit Priority Encoder: Inputs $$\displaystyle I_3 $$ (highest) to $$\displaystyle I_0 $$.
-
If $$\displaystyle I_3=1 $$ → output
11regardless of others. -
Logic: $$\displaystyle Y_1 = I_3 + I_2 $$, $$\displaystyle Y_0 = I_3 + I_2'I_1 $$, $$\displaystyle V = I_3+I_2+I_1+I_0 $$.
-
-
Other Combinational Circuits
-
2-bit Binary Multiplier:
-
Inputs: $$\displaystyle A_1A_0 $$, $$\displaystyle B_1B_0 $$.
-
Outputs: $$\displaystyle P_3P_2P_1P_0 $$.
-
POS form: Often simpler. $$\displaystyle P_0 = A_0B_0 $$, $$\displaystyle P_1 = A_1B_0 \oplus A_0B_1 $$, etc.
-
-
Parity Generator/Checker:
-
Even Parity: XOR all bits.
-
Odd Parity: Invert even parity output.
-
-
2-bit Magnitude Comparator:
-
Outputs: $$\displaystyle A>B $$, $$\displaystyle A=B $$, $$\displaystyle A<B $$.
-
$$\displaystyle A>B = A_1B_1' + A_1'A_0B_1'B_0' + A_1A_0B_1'B_0' $$? Simplify using K-map.
-
IV. SEQUENTIAL LOGIC CIRCUITS
Flip-Flops & Latches
| Type | Characteristic Equation | Truth Table (CLK) |
|---|---|---|
| SR | $$\displaystyle Q_{next} = S + \overline{R}Q $$ <br> (Invalid: S=R=1) | On clock edge |
| JK | $$\displaystyle Q_{next} = J\overline{Q} + \overline{K}Q $$ <br> (No invalid) | On clock edge |
| D | $$\displaystyle Q_{next} = D $$ | On clock edge |
| T | $$\displaystyle Q_{next} = T \oplus Q $$ | On clock edge |
[!TIP] Master-Slave JK FF: Two FFs in series. Master triggered on positive edge, slave on negative edge. Solves race-around condition (when J=K=1, output toggles continuously during clock high).
Flip-Flop Conversion
-
T to JK: Use T as J and K inputs? Actually: JK to T: connect J=K=T. Reverse: $$\displaystyle J = T $$, $$\displaystyle K = T $$? No: For T FF, $$\displaystyle T = J \oplus K $$? Let's derive:
-
JK: $$\displaystyle Q^+ = J\overline{Q} + \overline{K}Q $$
-
T: $$\displaystyle Q^+ = T \oplus Q = T\overline{Q} + \overline{T}Q $$
-
So: $$\displaystyle J = T $$, $$\displaystyle K = T $$? Then $$\displaystyle Q^+ = T\overline{Q} + \overline{T}Q $$ → matches. So JK with J=K=T acts as T FF.
-
T to JK: $$\displaystyle J = K = T $$.
-
Shift Registers
| Type | Input | Operation |
|---|---|---|
| SISO | Serial In | Serial Out, shifts left/right |
| SIPO | Serial In | Parallel Out |
| PISO | Parallel In | Serial Out |
| PIPO | Parallel In | Parallel Out |
-
Universal Shift Register: Has parallel load, shift left/right, hold. Uses MUXes at each FF input.
-
Ring Counter: $n$-bit shift register with output of last FF fed to first. Mod-n counter. Only one '1' at a time.
-
Johnson Counter (Twisted Ring): Complement of last FF output fed to first. Mod-2n counter. Has $n$ states with 2 '1's adjacent.
Counters
Asynchronous (Ripple) Counter
-
FFs triggered by previous FF's output.
-
Advantage: Simple.
-
Disadvantage: Propagation delay accumulates → slow.
Synchronous Counter
-
All FFs triggered by same clock.
-
Faster, more complex logic.
MOD-N Counter Design (JK FF)
-
Determine number of FFs: $$\displaystyle n = \lceil \log_2 N \rceil $$.
-
Draw state diagram for 0 to N-1.
-
Make state table (present state → next state).
-
Use excitation table of FF (JK: J=Q', K=1 for toggle; etc.).
-
Simplify J,K expressions using K-maps.
-
Draw circuit.
Example: MOD-6 (0→1→2→3→4→5→0) using JK:
-
States: 000,001,010,011,100,101.
-
Unused: 110,111 → treat as don't cares to simplify.
-
JK excitation: For toggle (0→1 or 1→0): J=K=1; For hold: J=K=0; For set: J=1,K=0; Reset: J=0,K=1.
-
K-maps for J2,J1,J0 with don't cares for 110,111.
Up/Down Counter
-
Mode M: M=0 → down, M=1 → up.
-
For synchronous: $$\displaystyle Q^+ = Q \oplus (M \cdot \text{control}) $$? Actually:
-
Up: $$\displaystyle Q^+ = Q + 1 $$
-
Down: $$\displaystyle Q^+ = Q - 1 $$
-
Use M to select between up/down logic for each FF.
-
Frequency Division
-
n-bit ripple counter: Divide by $$\displaystyle 2^n $$.
-
To get non-power-of-2 division (e.g., 120Hz → 20Hz, divide by 6):
-
Use MOD-6 counter and take output from appropriate FF.
-
Or use reset when count reaches N-1.
-
Pseudo-Random Binary Sequence (PRBS) Generator
-
Uses linear feedback shift register (LFSR).
-
XOR of certain FFs' outputs fed back to input.
-
Maximal length: $$\displaystyle 2^n - 1 $$ states for n-bit LFSR with primitive polynomial.
-
Example 4-bit: Feedback taps at $$\displaystyle x^4 + x^3 + 1 $$ → XOR Q3 and Q2 to D0.
Finite State Machines (FSM)
Types
-
Moore: Outputs depend only on state.
-
Mealy: Outputs depend on state and inputs.
Design Steps (Synchronous FSM):
-
State Diagram (with outputs).
-
State Table: Present state, inputs → next state, outputs.
-
State Assignment: Binary, Gray, one-hot.
-
Excitation Table: Add FF excitation (D, JK, T).
-
Simplify each FF input and output using K-maps.
-
Draw circuit.
ASM Chart Elements
-
State Box: Represents state (outputs inside).
-
Decision Box: Tests input condition (1 or 0 path).
-
Conditional Output Box: Outputs that depend on input.
Sequence Detector (Mealy Example: 0011)
-
Overlap allowed: e.g.,
00110011detects two sequences. -
States:
-
S0: no bits matched.
-
S1: last bit
0. -
S2: last two
00. -
S3: last three
001. -
S4: detected
0011(output 1) → next depends on last bit.
-
-
Mealy: Output 1 when in S3 and input=1 → go to S2? Actually: after
0011, if next input=0 → state S2 (last0), if 1 → S1? Let's trace:-
0011: S0→S1→S2→S3→S4 (output 1 at transition S3→S4 on input=1). -
From S4: if input=0 → last bit is
0→ S1? But sequence0011ends with1, so after00110, we have last0→ S1. After00111, last1→ S1? Actually: after00111, the last two bits11don't match prefix of0011→ should go to S0? But last bit is1→ no match → S0. However,00111contains0011starting at bit 1? Overlap:00111→ positions: bits 1-4:0111no; bits 2-5:111no; so only one detection at bits 1-4. So from S4 (detected), if input=0 → we have...00110→ last bit0→ S1. If input=1 →...00111→ no prefix → S0.
-
-
So: S4 on 0→S1, on 1→S0.
V. LOGIC FAMILIES AND CHARACTERISTICS
TTL (Transistor-Transistor Logic)
-
Basic NAND Gate:
-
Input transistor: multi-emitter (for each input).
-
Phase splitter: single transistor.
-
Output: totem-pole (pull-up and pull-down).
-
-
Operation:
-
Any input low → input transistor saturates → phase splitter off → output high (via pull-up).
-
All inputs high → input transistor cut-off → phase splitter on → output low (pull-down conducts).
-
-
Tri-state TTL:
-
Adds enable control.
-
When enable low → high-impedance (Z).
-
Used for bus systems.
-
CMOS (Complementary MOS)
-
Inverter: PMOS (pull-up) and NMOS (pull-down) in series.
-
Input high → NMOS on, PMOS off → output low.
-
Input low → PMOS on, NMOS off → output high.
-
-
NAND: Series NMOS, parallel PMOS.
-
NOR: Parallel NMOS, series PMOS.
-
Advantages over TTL:
-
Low static power (only one transistor on at a time).
-
High noise margin.
-
Wide voltage range.
-
High fan-out.
-
Disadvantage: Slower than ECL, sensitive to static discharge.
-
ECL (Emitter-Coupled Logic)
-
Basic Inverter:
-
Uses differential amplifier with constant current source.
-
No saturation → very fast (sub-ns).
-
Outputs: wired-OR possible (open-emitter).
-
-
High-speed because transistors never saturate → small storage time.
-
Disadvantage: High power dissipation, negative logic levels.
Key Parameters
| Parameter | Definition | Typical Values |
|---|---|---|
| Fan-in | Number of inputs a gate can have. | TTL ~12, CMOS ~very high |
| Fan-out | Number of same-type gates a gate can drive. | TTL ~10, CMOS ~50+ |
| Noise Margin | Max noise voltage without error. <br> $$\displaystyle NM_L = V_{IL(max)} - V_{OL(max)} $$ <br> $$\displaystyle NM_H = V_{IH(min)} - V_{OH(min)} $$ | TTL: NM_L≈0.4V, NM_H≈0.4V <br> CMOS: ≈1.5V (for 5V) |
| Power Dissipation | $$\displaystyle P = V_{CC}·I_{CC} $$ (static + dynamic). | CMOS: low static; TTL: higher |
| Propagation Delay | $$\displaystyle t_{pLH} $$, $$\displaystyle t_{pHL} $$ → average $$\displaystyle t_p = (t_{pLH}+t_{pHL})/2 $$. | ECL < TTL < CMOS (but CMOS improved) |
VI. ADVANCED DIGITAL SYSTEMS AND PROGRAMMABLE DEVICES
FPGA (Field-Programmable Gate Array)
-
Architecture:
-
Configurable Logic Blocks (CLBs): Each contains LUTs (lookup tables, usually 4-6 input), flip-flops, carry chain.
-
Programmable Interconnects: Switch matrix, routing channels.
-
I/O Blocks (IOBs): Configurable input/output.
-
-
Block Diagram:
[CLBs] -- [Routing Channels] -- [CLBs] | | [IOBs] [IOBs] -
Configuration: Stored in SRAM (volatile) → reloaded on power-up.
-
Advantages: Reconfigurable, high density, short design cycle.
PLDs Overview
-
PAL (Programmable AND Array, Fixed OR Array): Faster, one-time programmable.
-
PLA (Programmable AND & OR Arrays): More flexible, slower.
-
Difference: PAL has fixed OR plane → faster; PLA both programmable → more flexible.
Design Applications
Pulse Train Generator
-
Design FSM that outputs a sequence of pulses with specific timing.
-
Example: Generate
101010...→ Toggle FF. -
Or use counter with decoder: e.g., 3-bit counter, decode
001,010,100→ pulse train.
Sequence Generation
-
Use shift register with feedback (LFSR for PRBS).
-
Or FSM with state diagram for specific sequence (e.g.,
1101001).
EXAM STRATEGY & COMMON PITFALLS
-
Number System Conversions:
-
Fractional part: Multiply repeatedly; carry integer part each time.
-
Hex to Octal: Convert hex → binary → octal (group 3 bits).
-
-
K-map vs QM:
-
K-map: Up to 6 variables (but 5-6 messy). Use for exam problems.
-
QM: Systematic for many variables; don't cares are optional in final cover.
-
-
MUX Implementation:
-
If function has n variables, use $$\displaystyle 2^n:1 $$ MUX.
-
If using smaller MUX (e.g., 4:1 for 4-var function), connect 2 selects to 2 variables, data inputs from K-map for other 2 variables.
-
-
Counter Design:
-
Always draw state diagram first.
-
Use don't cares for unused states to simplify logic.
-
For MOD-N, ensure self-starting? Not always required in exam.
-
-
FSM Design:
-
Mealy vs Moore: Mealy can have fewer states but output may glitch.
-
State reduction: Use implication table or row matching.
-
ASM chart: State box (outputs), decision box (input test), conditional output box.
-
-
Flip-Flop Conversions:
-
Use characteristic equation and excitation table.
-
Example: T to D: $$\displaystyle D = T \oplus Q $$.
-
-
Logic Families:
-
TTL: Multi-emitter input, totem-pole output.
-
CMOS: Complementary pair, low power.
-
ECL: Differential pair, no saturation, fast.
-
[!TIP] Past Paper Focus:
- Always: Code conversions (fractional!), K-map with don't cares, QM with don't cares, full adder/subtractor, BCD adder, priority encoder, MUX implementation, master-slave JK, synchronous FSM (Mealy detector), MOD-6/7 counter, TTL/CMOS/ECL basics, FPGA block diagram.
- High Frequency: MOD-N counter design (14m), sequence detector (14m), QM (14m), BCD adder (7m), 16:1 MUX from 2:1 (6-8m).
Final Note: Practice derivations step-by-step as shown in past papers. For design questions, draw circuit diagrams clearly and label all signals. For minimization, list all prime implicants and mark essential ones.