Scope of the Book
Chapter 1 provides a general introduction to the process of designing digital systems. It
discusses the key steps in the design process and explains how CAD tools can be used to
automate many of the required tasks.
Chapter 2 introduces the basic aspects of logic circuits. It shows how Boolean algebra
is used to represent such circuits. It also gives the reader a first glimpse at VHDL, as an
example of a hardware description language that may be used to specify the logic circuits.
The electronic aspects of digital circuits are presented in Chapter 3. This chapter shows
how the basic gates are built using transistors and presents various factors that affect circuit
performance. The emphasis is on the latest technologies, with particular focus on CMOS
technology and programmable logic devices.
Chapter 4 deals with the synthesis of combinational circuits. It covers all aspects of
the synthesis process, starting with an initial design and performing the optimization steps
needed to generate a desired final circuit. It shows how CAD tools are used for this purpose.
Chapter 5 concentrates on circuits that perform arithmetic operations. It begins with
a discussion of how numbers are represented in digital systems and then shows how such
numbers can be manipulated using logic circuits. This chapter illustrates how VHDL can
be used to specify the desired functionality and how CAD tools provide a mechanism for
developing the required circuits. We chose to introduce the number representations at this
point, rather than in the very beginning of the book, to make the discussion more meaningful and interesting, because we can immediately provide examples of how numerical
information may be processed by actual circuits.
Chapter 6 presents combinational circuits that are used as building blocks. It includes
the encoder, decoder, and multiplexer circuits. These circuits are very convenient for
illustrating the application of many VHDL constructs, giving the reader an opportunity to
discover more advanced features of VHDL.
Storage elements are introduced in Chapter 7. The use of flip-flops to realize regular
structures, such as shift registers and counters, is discussed. VHDL-specified designs of
these structures are included. The chapter also shows how larger systems, such as a simple
processor, may be designed.
Chapter 8 gives a detailed presentation of synchronous sequential circuits (finite state
machines). It explains the behavior of these circuits and develops practical design techniques
for both manual and automated design.
Asynchronous sequential circuits are discussed in Chapter 9. While this treatment is
not exhaustive, it provides a good indication of the main characteristics of such circuits.
Even though the asynchronous circuits are not used extensively in practice, they should be
studied because they provide an excellent vehicle for gaining a deeper understanding of
the operation of digital circuits in general. They illustrate the consequences of propagation
delays and race conditions that may be inherent in the structure of a circuit.
Chapter 10 is a discussion of a number of practical issues that arise in the design of real
systems. It highlights problems often encountered in practice and indicates how they can
be overcome. Examples of larger circuits illustrate a hierarchical approach in designing
digital systems. Complete VHDL code for these circuits is presented.
Chapter 11 introduces the topic of testing. A designer of logic circuits has to be aware
of the need to test circuits and should be conversant with at least the most basic aspects of
Chapter 12 presents a complete CAD flow that the designer experiences when designing,
implementing, and testing a digital circuit.
Appendix A provides a complete summary of VHDL features. Although use of VHDL
is integrated throughout the book, this appendix provides a convenient reference that the
reader can consult from time to time when writing VHDL code.
Appendices B, C, and D contain a sequence of tutorials on the Quartus II CAD tools.
This material is suitable for self-study; it shows the student in a step-by-step manner how
to use the CAD software provided with the book.
Appendix E gives detailed information about the devices used in illustrative examples.