This book is about the digital logic design of microprocessors. It is intended to provide both an understanding of the basic principles of digital logic design, and how these fundamental principles are applied in the building of complex microprocessor circuits using current technologies. Although the basic principles of digital logic design have not changed, the design process and the implementation of the circuits have changed. With the advances in fully integrated modern-computer-aided design (CAD) tools for logic synthesis, simulation, and the implementation of circuits in programmable logic devices (PLDs), such as field programmable gate arrays (FPGAs), it is now possible to design and implement complex digital circuits very easily and quickly.
Many excellent books on digital logic design have followed the traditional approach of introducing the basic principles and theories of logic design and the building of separate combinational and sequential components. However, students are left to wonder about the purpose of these individual components and how they are used in the building of microprocessors—the ultimate in digital circuits. One primary goal of this book is to fill in this gap by going beyond the logic principles and the building of individual components. The use of these principles and the individual components are combined together to create datapaths and control units, and finally, the building of real, dedicated custom microprocessors and general-purpose microprocessors.
Previous logic design and implementation techniques mainly focus on the logic-gate level. At this low level, it is difficult to discuss larger and more complex circuits beyond the standard combinational and sequential circuits. However, with the introduction of the register-transfer technique for designing datapaths and the concept of a finite state machine for control units, we easily can implement an arbitrary algorithm as a dedicated microprocessor in hardware. The construction of a general-purpose microprocessor then comes naturally as a generalization of a dedicated microprocessor.
With the provided CAD tool and the optional FPGA hardware development kit, students actually can implement these microprocessor circuits and see them execute, both in software simulation and in hardware. The book contains many interesting examples with complete circuit schematic diagrams and VHDL codes for both simulation and implementation in hardware. With the hands-on exercises, the student will learn not only the principles of digital logic design but, also in practice, how circuits are implemented using current technologies.
To actually see your own microprocessor come to life in real hardware is an exciting experience. Hopefully, this will help the students to not only remember what they have learned but will also get them interested in the world of digital circuit design.
Sections that are designated with an asterisk ( * ) are either advanced topics or topics for a historical perspective. These sections may be skipped without any loss of continuity in learning how to design a microprocessor.
There is a chapter summary checklist at the end of each chapter. These checklists provide a quick way for students to evaluate whether they have understood the materials presented in the chapter. The items in the checklists are divided into two categories. The first set of items deal with new concepts, ideas, and definitions, while the second set deals with practical "how to do something" types.
Although this book provides coverage on VHDL for all of the circuits, it can be omitted entirely for the understanding and designing of digital circuits. For an introductory course in digital logic design, learning the basic principles is more important than learning how to use a hardware description language. In fact, instructors may find that students may get lost in learning the principles while trying to learn the language at the same time. With this in mind, the VHDL code in the text is totally independent of the presentation of each topic and may be skipped without any loss of continuity.
On the other hand, by studying the VHDL codes, the student can not only learn the use of a hardware description language but also learn how digital circuits can be designed automatically using a synthesizer. This book provides a basic introduction to VHDL and uses the "learn-by-examples" approach. In writing VHDL code at the dataflow and behavioral levels, the student will see the power and usefulness of a state-of-the-art CAD synthesis tool.
This book can be used in either an introductory or a more advanced course in digital logic design. For an introductory course with no previous background in logic, Chapters 1 through 4 are intended to provide the fundamental concepts in designing combinational circuits, and Chapters 6 through 8 cover the basic sequential circuits. Chapters 9 through 12 on microprocessor design can be introduced and covered lightly. For an advanced course, where students already have an exposure to logic gates and simple digital circuits, Chapters 1 through 4 will serve as a review. The focus should be on the register-transfer design of datapaths and control units and the building of dedicated and general-purpose microprocessors, as covered in Chapters 9 through 12. A lab component should complement the course where students can have a hands-on experience in implementing the circuits presented using the included CAD software and the optional hardware development kit.
Chapter 1—Designing a Microprocessor gives an overview of the various components of a microprocessor circuit and the different abstraction levels in which a circuit can be designed.
Chapter 2—Digital Circuits provides the basic principles and theories for designing digital logic circuits by introducing the use of truth tables and Boolean algebra and how the theories get translated into logic gates and circuit diagrams. A brief introduction to VHDL also is given.
Chapter 3—Combinational Circuits shows how combinational circuits are analyzed, synthesized and reduced.
Chapter 4—Combinational Components discusses the standard combinational components that are used as building blocks for larger digital circuits. These components include the adder, subtractor, arithmetic logic unit, decoder, encoder, multiplexer, tri-state buffer, comparator, shifter, and multiplier. In an hierarchical design, these components will be used to build larger circuits such as the microprocessor.
Chapter 5—Implementation Technologies digresses a little by looking at how logic gates are implemented at the transistor level and the various programmable logic devices available for implementing digital circuits.
Chapter 6—Latches and Flip-Flops introduces the basic storage elements: specifically, the latch and the flip-flop.
Chapter 7—Sequential Circuits shows how sequential circuits in the form of finite state machines are analyzed and synthesized. This chapter also shows how the operation of sequential circuits precisely can be described using state diagrams.
Chapter 8—Sequential Components discusses the standard sequential components that are used as building blocks for larger digital circuits. These components include the register, shift register, counter, register file, and memory. Similar to the combinational components, these sequential components will be used in an hierarchical fashion to build larger circuits.
Chapter 9—Datapaths introduces the register-transfer design methodology and shows how an arbitrary algorithm can be performed by a datapath.
Chapter 10—Control Units shows how a finite state machine (introduced in Chapter 7) is used to control the operations of a datapath so that the algorithm can be executed automatically.
Chapter 11—Dedicated Microprocessors ties the separate datapath and control unit together to form one coherent circuit—the custom dedicated microprocessor. Several complete dedicated microprocessor examples are provided.
Chapter 12—General-Purpose Microprocessors continues on from Chapter 11 to suggest that a general-purpose microprocessor is really a dedicated microprocessor that is dedicated to only read, decode, and execute instructions. A simple general-purpose microprocessor is designed and implemented, and programs written in machine language can be executed on it.
The newest student edition of Altera's MAX+plus II CAD software is included with this book on the accompanying CD-ROM. The optional Altera UP2 hardware development kit is available from Altera at a special student price. An order form for the kit can be found on the accompanying CD-ROM.
Source files for all of the circuit drawings and VHDL codes presented in this book also can be found on the accompanying CD-ROM.
The website for this book is located at the following URL:
www.lasierra.edu/~ehwang/digitaldesign
The website provides many resources for both faculty and students.
Enoch O. Hwang
Riverside, California
![]() |
Enoch Hwang has a Ph.D. in Computer Science from the University of California, Riverside. He is currently an Associate Professor of Computer Science at La Sierra University in Southern California and a Lecturer in the Departments of Electrical Engineering, and Computer Science and Engineering at the University of California, Riverside, teaching digital logic design. Even from his childhood days, he has been fascinated with electronic circuits. In one of his first experiments, he attempted to connect a microphone to the speaker inside a portable radio through the earphone plug. Instead of hearing sound from the microphone through the speaker, smoke was seen coming out of the radio. Thus ended that experiment and his family's only radio. He now continues on his interest in digital circuits with research in embedded microprocessor systems, controller automation, power optimization, and robotics. |