Introduction to Digital Design
Every chip — a microcontroller, a GPU, a network switch ASIC — is, underneath all the marketing language, a very large network of two-state switches wired…
Number Systems & Base Conversion
Digital hardware only has two stable states to work with per wire, so every number a digital circuit stores or computes has to ultimately be represented…
Binary Arithmetic
Every arithmetic operation a processor performs eventually bottoms out in the same handful of bit-level operations covered here. The rules are simpler…
Digital Codes
Not every binary encoding exists for compact arithmetic. This page covers a handful of specialized bit patterns that solve specific problems — mechanical…
Boolean Algebra & Logic Gates
Every digital circuit, no matter how large, is ultimately an expression in an algebra with exactly two values: 0 and 1. Boolean algebra is that algebra —…
Logic Minimization & Karnaugh Maps
A canonical SOP expression, from the previous page, is correct by construction but rarely efficient — it uses one AND term per truth-table row where the…
Combinational Logic Design
A combinational circuit is one whose output depends only on the current values of its inputs — at any instant, the same input combination always produces…
Multiplexers, Decoders & Comparators
Not every combinational circuit does arithmetic. This page covers the other major family of standard building blocks — ones concerned with routing…
Latches & Flip-Flops
Every circuit up to this point has been combinational: its output is a pure function of its current inputs, with no memory of anything that came before…
Timing, Setup/Hold & Metastability
The previous page described flip-flop behavior in ideal terms: the clock edge arrives, D is sampled, Q updates. Real silicon doesn't work quite that…
Registers & Shift Registers
A single D flip-flop stores one bit. Nearly everything a real digital system needs to remember — a byte, a 32-bit instruction, an address — is wider than…
Counters
A counter is a register that generates its own next value every clock cycle, without an external data input driving it — it counts. This page covers the…
Finite State Machines: Concept & Notation
A counter, from the previous page, is a state machine with exactly one thing it can do: advance to the next state in a fixed sequence, on every clock…
State Minimization & Assignment
A state diagram drawn directly from a word description of the desired behavior often has more states than it strictly needs — two states that look…
Example Walkthrough: Serial Frame Receiver
Every prior page in this topic introduced one building block in isolation. This page is different: it's one complete design — the control logic for a…
Memory Fundamentals: RAM Organization
Every circuit so far has stored, at most, a handful of bits — a register, a counter's state, an FSM's state register. Real systems need to store far more…
Read-Only Memory (ROM)
A ROM's contents are fixed — or at least, not writable during normal operation — but that restriction comes with a payoff: a ROM is, structurally, nothing…
Programmable Logic Arrays: PLA & PAL
A ROM implements any function correctly, but pays for that generality with size that doubles per extra input, regardless of how simple the actual function…
FPGA Basics: LUTs & Configurable Fabric
An FPGA (Field-Programmable Gate Array) scales the ideas from the previous two pages — a lookup table's ability to implement any function, and a…