Circuitry books: five textbooks on logic and digital design

Lists of books on circuitry are usually built on a single rule: read this one and you will become an engineer. In practice, books on circuitry solve different problems, and picking the first one you come across is a reliable way to spend a month on something you do not need. Below are five books most often recommended to people who design digital circuits. Each has its own depth, its own audience, and its own place on the route. The breakdown is organized by what each book explains best and who it is for. Which book suits which part of the path is listed on the Circuit Design page.

How to choose at all

The answer to "which book is the best one" almost always comes down to three checks. Do you want to understand the physics of a component, or are design rules enough? Are you ever going to build a whole chip, or is the job adders and levels? And what language are you willing to read in: English technical prose changes your reading speed a great deal.

BookYearMain subjectWho it suits
Horowitz, Hill. The Art of Electronics1980, 2005, 2015Real components: resistors, transistors, power, noiseAnyone who intends to design hardware, not just logic
Harris, Harris. Digital Design and Computer Architecture2006, 2009, 2021From a gate to a processor: state machines, pipelines, memoryStudents who want one coherent course in digital design
Harris, Harris. Digital Design: Principles and Practices2005–2020Designing digital circuits in HDL, VHDL, SystemVerilogAnyone moving from schematic diagrams to hardware description
Tanenbaum, Austin. Structured Computer Organization2013, sixth editionArchitecture: processor, memory, I/O, instruction setAnyone who cares why a processor is built the way it is
Nisan, Schocken. The Elements of Computing Systems2006The whole route: from a NAND gate to an operating systemAnyone who wants to build a complete computer and understand every step

Note the wording of the "main subject" column: it describes what a book explains best, not what it leaves out. None of these five covers the whole field of circuitry, and nobody expects a book to.

The Elements of Computing Systems: the route from NAND to a system

Noam Nisan and Shimon Schocken wrote a textbook with unusual dramaturgy: it walks the reader along the whole path of a computing machine and skips no link. First a logic gate and how to build it out of transistors, then processor architecture and the instruction set, then a hardware description language, then an assembler, then an operating system. Every chapter rests on the result of the previous one, and by the end you have a working machine instead of a pile of unrelated facts.

The main reason this book is recommended here is that its route matches the course. Ershov Computer follows the same path in short steps, with a simulator instead of a soldering iron. The book explains what the simulator showed but did not explain: why Harvard architecture is convenient, what a pipeline is, and why a cache solves a problem rather than hiding it.

gate processor HDL assembler system levels 1–7 levels 8–19 levels 30–43 levels 18–29 levels 44–47 Each stage rests on the previous one: skipping a stage breaks the next
The route all five books follow, and the course levels that cover the same stages

Digital Design and Computer Architecture: one coherent course

Dave Harris and Sarah Harris wrote the textbook most often recommended to students, because it covers both halves of the subject: logic and architecture. The first part covers combinational logic, Boolean algebra, Karnaugh maps, and circuit synthesis. The second covers sequential logic, finite state machines, synchronous reset, and machine design procedure. The third and fourth cover building blocks: datapaths, memory, arithmetic, pipelining, caches, the instruction set, and I/O.

The book rests on one running example: first you design a single unit, then you assemble units into a processor and test it. The appendices work through examples in a hardware description language, so the book pairs well with part 3 of the course, where you write Verilog modules.

The authors' second book, Digital Design: Principles and Practices, is the one to pick if you are moving from reading schematics to describing them in a language. It systematically covers how to describe combinational and sequential logic in HDL, VHDL, and SystemVerilog, with emphasis on how the same unit is written in each. If you have already worked through levels 30 to 43, this book is closer to where you are than the previous one.

Structured Computer Organization: why a processor is built this way

Andrew Tanenbaum and Morris Austin wrote a book with a different aim: not "how to design" but "how it is built and why it is built that way". A processor is taken apart layer by layer: pipelines, superscalar execution, the cache hierarchy, virtual memory, interrupts, the I/O system. That is why people call it the architecture book.

Reading it end to end for the sake of a logic simulator makes no sense. But once you reach Harvard architecture and the program counter, the question "what does this look like in a real processor" appears on its own, and this book answers it better than the others.

Free and legitimate routes

These five paid books have two respectable substitutes, one on price and one on access. The Nand2Tetris course by Nisan and Schocken publishes its materials and tools openly: simulator, assembler, compiler, and step-by-step assignments, plus a cheap edition of the book sold by the authors themselves. The MIT OpenCourseWare course 6.004 Computation Structures is published in full, with lectures and assignments. Verilog practice lives on HDLbits, and you can draw a circuit and see what comes out in the browser with the Falstad Circuit Simulator.

Everything listed runs with nothing to install and no payment. The logic circuit simulator here covers the same ground: assemble a circuit, feed it a vector, get a truth table, and see whether it matches.

Which chapter to start with

The practical answer, if there is no time for debate: take The Elements of Computing Systems if you intend to build a complete machine; Digital Design and Computer Architecture if you want an academically strict course in logic; The Art of Electronics (reviewed here) if you are going to work with real hardware. After that, by taste. Reading two books in parallel works better than five one after another: logic theory and architecture answer each other, and the gaps in one are closed by the other.

Which circuitry book should I start with?

With the one that reaches a processor within 200 pages. For hands-on practice that is The Elements of Computing Systems by Nisan and Schocken, for strict logic theory it is Digital Design and Computer Architecture by Harris and Harris, and for understanding the machine as a whole it is Structured Computer Organization by Tanenbaum and Austin. The article breaks down each one.

Why read both Horowitz with Hill and Harris with Harris?

They cover different layers. Horowitz and Hill explain how a real component is built and behaves: a transistor, an op-amp, a power supply. Harris and Harris explain how to assemble a system out of those components: logic, state machines, pipelines, memory. One first, then the other, at least diagonally.

Is it worth reading logic books when a simulator is available?

The simulator answers whether a circuit works; the book answers why it should work and what happens if the supply voltage sags. Either one alone leaves a gap: you can assemble a working circuit without being able to explain how it works to anyone else.

Where can I get these books?

University libraries and their digital catalogues, publisher catalogues, ordinary bookshops. The Nand2Tetris course is worth calling out separately: its tools, simulator and materials are released free by the authors Nisan and Schocken, and they sell the book well below the market price.

Check yourself

How do Karnaugh maps differ from a truth table?

A truth table lists all 2n input combinations, while a Karnaugh map lays the same combinations out in a grid where neighboring cells differ by one input bit. Groups of ones that can be merged into an implicant become visible at once, and minimization turns almost mechanical. More detail in the article on Karnaugh maps.

What is a finite state machine, and why does digital design use it?

A finite state machine describes a system with a finite number of states whose output depends on the current state and the inputs. In circuit design it is a convenient way to think about circuits with memory: a counter, a shift register, a processor control unit. States are drawn as a diagram, transitions are labeled with conditions, and the result is then turned into a truth table and into gates.

Why learn a hardware description language when you already know how to program?

Because an HDL does not describe a sequence of actions but the parallel structure of hardware: every signal exists all the time, and the order of lines does not mean the order of computation. How many clock cycles a design takes is decided at compile time, not at run time. The difference between programming and hardware design is covered in the article on why Verilog is not programming.

For what a person who reads these books does for a living, see the schematics engineer. The open architecture standard that comes up in any conversation about processors is covered in the RISC-V architecture.

Try the simulator →