Documente Academic
Documente Profesional
Documente Cultură
This book is intended for an introductory course in digital logic design, which is a basic course in most electrical and computer engineering programs. A successful designer of digital logic circuits needs a good understanding of basic concepts and a rm grasp of computer-aided design (CAD) tools. The purpose of our book is to provide the desirable balance between teaching the basic concepts and practical application through CAD tools. To facilitate the learning process, the necessary CAD software is included as an integral part of the book package. The main goals of the book are (1) to teach students the fundamental concepts in classical manual digital design and (2) illustrate clearly the way in which digital circuits are designed today, using CAD tools. Even though modern designers no longer use manual techniques, except in rare circumstances, our motivation for teaching such techniques is to give students an intuitive feeling for how digital circuits operate. Also, the manual techniques provide an illustration of the types of manipulations performed by CAD tools, giving students an appreciation of the benets provided by design automation. Throughout the book, basic concepts are introduced by way of examples that involve simple circuit designs, which we perform using both manual techniques and modern CAD-tool-based methods. Having established the basic concepts, more complex examples are then provided, using the CAD tools. Thus our emphasis is on modern design methodology to illustrate how digital design is carried out in practice today.
It is a commercial product. The version included with the book supports all major features of the product. Students will be able to easily enter a design into the CAD
viii
Preface
ix
system, compile the design into a selected device (the choice of device can be changed at any time and the design retargeted to a different device), simulate the functionality and detailed timing of the resulting circuit, and if laboratory facilities are provided at the students school, implement the designs in actual devices.
It provides for design entry using both hardware description languages (HDLs) and schematic capture. In the book, we emphasize the HDL-based design because it is the most efcient design method to use in practice. We describe in detail the IEEE Standard VHDL language and use it extensively in examples. The CAD system included with the book has a VHDL compiler, which allows the student to automatically create circuits from the VHDL code and implement these circuits in real chips. It can automatically target a design to various types of devices. This feature allows us to illustrate the ways in which the architecture of the target device affects a designers circuit. It can be used on most types of popular computers. The version of Quartus II provided with the book runs on computers using Microsoft Windows. However, through Alteras university program the software is also available for other machines, such as SUN or HP workstations.
A Quartus II CD-ROM is included with each copy of the book. Use of the software is fully integrated into the book so that students can try, rsthand, all design examples. To teach the students how to use this software, the book includes three, progressively advanced, hands-on tutorials.
Preface
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 ip-ops to realize regular structures, such as shift registers and counters, is discussed. VHDL-specied 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 (nite 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 testing. Chapter 12 presents a complete CAD ow 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.
Preface
xi
and students can understand them easily. Moreover, the instructor need not teach how to use the CAD tools, because the Quartus II tutorials in Appendices B, C, and D are suitable for self-study. The book is also suitable for a course in logic design that does not include exposure to VHDL. However, some knowledge of VHDL, even at a rudimentary level, is benecial to the students, and it is a great preparation for a job as a design engineer. One-Semester Course Most of the material in Chapter 1 is a general introduction that serves as a motivation for why logic circuits are important and interesting; students can read and understand this material easily. The following material should be covered in lectures:
Chapter 1section 1.6. Chapter 2all sections. Chapter 3sections 3.1 to 3.7. Also, it is useful to cover sections 3.8 and 3.9 if the students have some basic knowledge of electrical circuits. Chapter 4sections 4.1 to 4.7 and section 4.12. Chapter 5sections 5.1 to 5.5. Chapter 6all sections. Chapter 7all sections. Chapter 8sections 8.1 to 8.9.
If time permits, it would also be very useful to cover sections 9.1 to 9.3 and section 9.6 in Chapter 9, as well as one or two examples in Chapter 10. One-Quarter Course In a one-quarter course the following material can be covered:
Chapter 1section 1.6. Chapter 2all sections. Chapter 3sections 3.1 to 3.3. Chapter 4sections 4.1 to 4.5 and section 4.12. Chapter 5sections 5.1 to 5.3 and section 5.5. Chapter 6all sections. Chapter 7sections 7.1 to 7.10 and section 7.13. Chapter 8sections 8.1 to 8.5.
xii
Preface
onlyAND, OR, NOT, NAND, and NOR gates. Then Chapter 3 discusses the implementation technology details, before proceeding with the synthesis techniques and other types of gates in Chapter 4. The material in Chapter 4 is appreciated better if students understand the technological reasons for the existence of NAND, NOR, and XOR gates, and the various programmable logic devices. An instructor who favors a more traditional approach may cover Chapters 2 and 4 in succession. To understand the use of NAND, NOR, and XOR gates, it is necessary only that the instructor provide a functional denition of these gates.
VHDL
VHDL is a complex language, which some instructors feel is too hard for beginning students to grasp. We fully appreciate this issue and have attempted to solve it. It is not necessary to introduce the entire VHDL language. In the book we present the important VHDL constructs that are useful for the design and synthesis of logic circuits. Many other language constructs, such as those that have meaning only when using the language for simulation purposes, are omitted. The VHDL material is introduced gradually, with more advanced features being presented only at points where their use can be demonstrated in the design of relevant circuits. The book includes more than 150 examples of VHDL code. These examples illustrate how VHDL is used to describe a wide range of logic circuits, from those that contain only a few gates to those that represent digital systems such as a simple processor.
Solved Problems
The chapters include examples of solved problems. They show how typical homework problems may be solved.
Homework Problems
More than 400 homework problems are provided in the book. Answers to selected problems are given at the back of the book. Solutions to all problems are available to instructors in the Solutions Manual that accompanies the book.
Laboratory
The book can be used for a course that does not include laboratory exercises, in which case students can get useful practical experience by simulating the operation of their designed circuits by using the CAD tools provided with the book. If there is an accompanying laboratory, then a number of design examples in the book are suitable for laboratory experiments.
Preface
xiii
Instructors can access the Solutions Manual and the PowerPoint slides (containing all gures in the book) at: www.mhhe.com/brownvranesic
Acknowledgments
We wish to express our thanks to the people who have helped during the preparation of the book. Kelly Chan helped with the technical preparation of the manuscript. Dan Vranesic produced a substantial amount of artwork. He and Deshanand Singh also helped with the preparation of the solutions manual. Tom Czajkowski helped in checking the answers to some problems. Jonathan Rose provided helpful suggestions for improving the treatment of timing issues. The reviewers, William Barnes, New Jersey Institute of Technology; Thomas Bradicich, North Carolina State University; James Clark, McGill University; Stephen DeWeerth, Georgia Institute of Technology; Clay Gloster, Jr., North Carolina State University (Raleigh); Carl Hamacher, Queens University; Vincent Heuring, University of Colorado; Yu Hen Hu, University of Wisconsin; Wei-Ming Lin, University of Texas (Austin); Wayne Loucks, University of Waterloo; Nagi Mekhiel, Ryerson University; Maritza Muguira, Kansas State University; Chris Myers, University of Utah; Nicola Nicolici, McMaster University; Vojin Oklobdzija, University of California (Davis); James Palmer, Rochester Institute of Technology; Witold Pedrycz, University of Alberta; Gandhi Puvvada, University of Southern California; Teodoro Robles, Milwaukee School of Engineering; Tatyana Roziner, Boston University; Rob Rutenbar, Carnegie Mellon University; Eric Schwartz, University of Florida; Wen-Tsong Shiue, Oregon State University; Charles Silio, Jr., University of Maryland; Scott Smith, University of Missouri (Rolla); Arun Somani, Iowa State University; Bernard Svihel, University of Texas (Arlington); Steve Wilton, University of British Columbia; Chao You, North Dakota State University; and Zeljko Zilic, McGill University provided constructive criticism and made numerous suggestions for improvements. We are grateful to the Altera Corporation for providing the Quartus II system, especially to Chris Balough, Misha Burich, and Udi Landen. The support of McGraw-Hill people has been exemplary. We truly appreciate the help of Raghothaman Srinivasan, Darlene Schueller, April Southwood, Curt Reynolds, Laurie Janssen, Kara Kudronowicz, Stacy Patch, Linda Avenarius, Lori Hancock and Kris Tibbetts. Stephen Brown and Zvonko Vranesic