Skip to content
Part IA Michaelmas Term

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:

LevelDescriptionExamples
PhysicsElectrons and fieldsQuantum mechanics, Maxwell’s equations
DevicesIndividual transistorsWell-defined current-voltage characteristics between terminals
Digital CircuitsGates assembled from transistorsAND, NOT, NAND gates
Logic ElementsComplex structures from digital circuitsAdders, memories, multiplexers
MicroarchitectureData paths and controllersCombines logic elements to execute instructions defined by the architecture
ArchitectureInstruction set and registersIntel IA-32 defined by its instructions and register set
Operating SystemsResource managementDevice drivers, memory management, file systems
Application SoftwarePrograms that use OS facilitiesWeb 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)

  1. Combinational logic foundations: logic gates, Boolean algebra, De Morgan’s theorem, consensus theorem
  2. Logic minimisation: truth tables, normal forms, Karnaugh maps, don’t-care conditions, Quine-McCluskey
  3. Binary adders: half and full adders, ripple carry, fast carry generation
  4. Multilevel logic and hazards: beyond two-level logic, propagation delay, static and dynamic hazards, hazard removal
  5. Beyond simple logic gates: multiplexers, decoders, ROMs, PLAs, PALs, tristate buffers
  6. Sequential logic: latches, flip-flops, counters, shift registers
  7. FSM design: synchronous finite state machines, state diagrams, excitation tables
  8. Logic implementation technologies: CMOS transistors, gate-level implementation
  9. 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.