Introduction and Abstraction
What is Digital Electronics?
Digital electronics is the branch of electronics concerned with circuits that process binary signals: signals that take one of two distinct voltage levels representing logical 0 and logical 1. The course covers how to design, build, and test systems built from logic gates, combinational circuits, sequential circuits (with memory), and ultimately simple processors.
Unlike analogue circuits, where signals vary continuously, digital circuits are inherently robust: because only two voltage levels are distinguished, small amounts of electrical noise do not corrupt the signal. This noise immunity is one reason digital systems dominate modern computing.
The Six Levels of Abstraction
Modern digital systems, such as microprocessors, contain millions of transistors. Designing such a system by modelling the behaviour of individual electrons is not feasible. Instead we manage complexity through abstraction: hiding details that are not relevant at a given level of analysis.
For an electronic computing system, eight levels of abstraction are commonly identified, from the physical to the application:
| Level | Description | Examples |
|---|---|---|
| Physics | Electrons and fields | Quantum mechanics, Maxwell’s equations |
| Devices | Individual transistors | Well-defined current-voltage characteristics between terminals |
| Digital Circuits | Gates assembled from transistors | AND, NOT, NAND gates |
| Logic Elements | Complex structures from digital circuits | Adders, memories, multiplexers |
| Microarchitecture | Data paths and controllers | Combines logic elements to execute instructions defined by the architecture |
| Architecture | Instruction set and registers | Intel IA-32 defined by its instructions and register set |
| Operating Systems | Resource management | Device drivers, memory management, file systems |
| Application Software | Programs that use OS facilities | Web browsers, word processors, games |
In this course we are primarily concerned with the shaded middle levels: Digital Circuits, Logic Elements, and part of Microarchitecture. The abstraction principle means that when working at the gate level, we treat each gate as a black box with a known logical function; we do not need to understand the transistor-level physics inside, though knowing something about the levels above and below helps: a device designer should understand the circuits in which the device will be used, and code cannot be optimised without understanding the architecture for which it is written.
Managing Complexity
Abstraction works because each level provides a well-defined interface to the level above. At the gate level:
- A NOT gate always inverts its input. We do not care how many transistors implement it or what voltages represent a 1.
- An AND gate always produces TRUE only when all inputs are TRUE.
This layered thinking means we can browse the web (application software level) without any regard for quantum theory or the organisation of memory in the computer. However, awareness of adjacent levels is valuable: you cannot write efficient code without understanding the architecture; you cannot design good gates without understanding the circuits they will form.
The Digital Abstraction
The key design decision in digital electronics is to represent continuous physical quantities (voltages) with discrete logical values. A voltage above a certain threshold is interpreted as logic 1; below a different threshold, logic 0. The region between these thresholds is forbidden during normal operation and is only passed through transiently during switching. This discretisation is what gives digital circuits their noise immunity and makes reliable system design possible.
Course Aims
This course aims to familiarise students with:
- Combinational logic circuits: circuits whose output depends solely on the current inputs (no memory)
- Sequential logic circuits: circuits whose output depends on current inputs and past history (they contain memory)
- How digital logic gates are built using transistors (CMOS)
- Simple processor architectures
- The design, build, and testing of digital logic systems
Course Structure (12 Lectures)
- Combinational logic foundations: logic gates, Boolean algebra, De Morgan’s theorem, consensus theorem
- Logic minimisation: truth tables, normal forms, Karnaugh maps, don’t-care conditions, Quine-McCluskey
- Binary adders: half and full adders, ripple carry, fast carry generation
- Multilevel logic and hazards: beyond two-level logic, propagation delay, static and dynamic hazards, hazard removal
- Beyond simple logic gates: multiplexers, decoders, ROMs, PLAs, PALs, tristate buffers
- Sequential logic: latches, flip-flops, counters, shift registers
- FSM design: synchronous finite state machines, state diagrams, excitation tables
- Logic implementation technologies: CMOS transistors, gate-level implementation
- Processor architecture: brief introduction to microprocessor design
Hardware labs (four workshops of 2.5-3 hours each) run throughout Michaelmas and Lent terms.
Relationship to Later Courses
This course is a prerequisite for:
- Computer Architecture (Part IB): understanding how logic elements combine to form data paths and control units
- ECAD and Architecture Practical Classes (Part IB): practical design and implementation
- Advanced Computer Architecture (Part II)
- Advanced Topics in Computer Architecture (MPhil/Part III)
The Boolean algebra and logic minimisation techniques taught here are a core competence in Computer Science: they appear in everything from compiler optimisations to database query planning, not just in hardware design.