Digital Design and Computer Architecture


  • David Harris, Associate Professor of Engineering, Harvey Mudd College, Claremont, CA, USA
  • Sarah Harris, Assistant Professor of Engineering, Harvey Mudd College, Claremont, CA, USA

Digital Design and Computer Architecture takes a unique and modern approach to digital design. Beginning with digital logic gates and progressing to the design of combinational and sequential circuits, Harris and Harris use these fundamental building blocks as the basis for what follows: the design of an actual MIPS processor. SystemVerilog and VHDL are integrated throughout the text in examples illustrating the methods and techniques for CAD-based circuit design. By the end of this book, readers will be able to build their own microprocessor and will have a top-to-bottom understanding of how it works. Harris and Harris have combined an engaging and humorous writing style with an updated and hands-on approach to digital design.

This second edition has been updated with new content on I/O systems in the context of general purpose processors found in a PC as well as microcontrollers found almost everywhere. The new edition provides practical examples of how to interface with peripherals using RS232, SPI, motor control, interrupts, wireless, and analog-to-digital conversion. High-level descriptions of I/O interfaces found in PCs include USB, SDRAM, WiFi, PCI Express, and others. In addition to expanded and updated material throughout, SystemVerilog is now featured in the programming and code examples (replacing Verilog), alongside VHDL. This new edition also provides additional exercises and a new appendix on C programming to strengthen the connection between programming and processor architecture.

SECOND Edition Features

  • Covers the fundamentals of digital logic design and reinforces logic concepts through the design of a MIPS microprocessor.
  • Features side-by-side examples of the two most prominent Hardware Description Languages (HDLs)-SystemVerilog and VHDL-which illustrate and compare the ways each can be used in the design of digital systems.
  • Includes examples throughout the text that enhance the reader’s understanding and retention of key concepts and techniques.
  • Companion Web site includes links to CAD tools for FPGA design from Altera and Mentor Graphics, lecture slides, laboratory projects, and solutions to exercises.

View full description


Students taking a course that combines digital logic and computer architecture; professional computer engineers


Book information

  • Published: July 2012
  • ISBN: 978-0-12-394424-5


"…intended as a course text for college or university level students, this book would serve just as well for anyone who just wants to learn about computer architecture or design… it stands as one of the best introductions to the subject and seems ideal for anyone wanting to learn digital design with no prior knowledge. The time investment would be handsomely rewarded and the range of topics covered, as well as the clear explanation of trickier issues, is extremely impressive.", April 2013
"Harris and Harris have taken the popular pedagogy from Computer Organization and Design down to the next level of refinement, showing in detail how to build a MIPS microprocessor in both Verilog and VHDL. Given the exciting opportunity that students have to run large digital designs on modern FGPAs, the approach the authors take in this book is both informative and enlightening."-David A. Patterson, University of California at Berkeley, Co-author of Computer Organization and Design
"Developed at Harvey Mudd College, this undergraduate textbook introduces combinatorial logic and sequential logic circuit design, describes the computer's microarchitecture that connects hardware with software, and explains how to build a MIPS microprocessor."--Reference and Research Book News, February 2013

Table of Contents

Table of Contents1 From Zero to One1.1 The Game Plan1.2 The Art of Managing Complexity 1.3 The Digital Abstraction 1.4 Number Systems1.5 Logic Gates 1.6 Logic Levels 1.7 * CMOS Transistors1.8 * Power Consumption 1.9 Summary and A Look Ahead 2 Combinational Logic Design2.1 Introduction2.2 Boolean Equations 2.3 Boolean Algebra2.4 From Logic to Gates 2.5 Multilevel Combinational Logic 2.6 X's and Z's, Oh My 2.7 Karnaugh Maps 2.8 Combinational Building Blocks2.9 Timing 2.10 Summary3 Sequential Logic Design 3.1 Introduction3.2 Latches and Flip-Flops 3.3 Synchronous Logic Design 3.4 Finite State Machines 3.5 Timing of Sequential Logic 3.6 Parallelism3.7 Summary4 Hardware Description Languages4.1 Introduction4.2 Combinational Logic 4.3 Structural Modeling 4.4 Sequential Logic4.5 More Combinational Logic 4.6 Finite State Machines 4.7 * Parameterized Modules4.8 Testbenches4.9 Summary5 Digital Building Blocks 5.1 Introduction5.2 Arithmetic Circuits 5.3 Number Systems 5.4 Sequential Building Blocks 5.5 Memory Arrays5.6 Logic Arrays5.7 Summary6 Architecture 6.1 Introduction6.2 Assembly Language 6.3 Machine Language6.4 Programming 6.5 Addressing Modes6.6 Lights, Camera, Action: Compiling, Assembling, and Loading6.7 * Odds and Ends 6.8 * Real World Perspective: IA-32 Architecture 6.9 Summary7 Microarchitecture7.1 Introduction7.2 Performance Analysis7.3 Single-Cycle Processor 7.4 Multicycle Processor7.5 Pipelined Processor7.6 * HDL Representation7.7 * Exceptions7.8 * Advanced Microarchitecture 7.9 * Real World Perspective: IA-32 Microarchitecture7.10 Summary8 Memory Systems 8.1 Introduction8.2 Memory System Performance Analysis8.3 Caches 8.4 Virtual Memory 8.5 * Memory-Mapped I/O 8.6 * Real World Perspective: IA-32 Memory and I/O Systems 8.7 SummaryAppendix A Digital System Implementation A.1 IntroductionA.2 74xx Logic A.3 Programmable Logic A.4 Application-Specific Integrated Circuits A.5 Data Sheets A.6 Logic FamiliesA.7 Packaging and AssemblyA.8 Transmission linesA.9 Economics Appendix B MIPS Instructions