Digital Design Principles and Practices
(Pearson Education) A revised textbook blending academic vigor with practical experience. The CD-ROM features specialized software from XLINX. System requirements: Windows 95+, IBM or comparable PC, 48MB RAM, 4x+ CD-ROM drive, VGA monitor, 500 MB disk space. Previous edition: c2000. DLC: Digital integrated circuits--Design and construction.
From the Publisher
Real-world yet scholarly in approach, this book provides a solid foundation in the elements of basic digital electronics and switching theory that are used in most practical digital designs today, and builds on that theory with discussions of real-world digital components, design methodologies, and tools.
Using an easy-to-follow, practical writing style, extensive illustrations, large design examples, and programming examples written in C, this book provides an authoritative introduction to basic principles of digital design and practical requirements in both board-level and VLSI systems. Wakerly uses a unique, multifaceted approach that combines the basic principles of digital design which do not change with technology (combinational logic, sequential logic, and state tables) with tools and practical techniques (the ABEL and VHDL design languages, how to structure designs with large building blocks, and how to implement designs with programmable logic devices) that teach how to design for today's technology. He thus focuses on the methods and tools that readers will actually use in today's lab job market, while at the same time preparing them to adapt their skills in future years as new generations of devices become available. Number Systems and Codes. Digital Circuits. Combinational Logic Design Principles. Combinational Logic Design Practices. Combinational-Circuit Design Examples. Sequential Logic Design Principles. Sequential Logic Design Practices. Sequential-Circuit Design Examples. Memory, CPLDs, and FPGAs. Additional Real-World Topics. Features up-to-date coverage of Modern CMOS logic families; HDL-based digital design, with examples, including VHDL as well as ABEL; automated methods, including simulation and synthesis; and an Introduction by Harold Stone, one of the founding fathers of computer design. An accompanying CD-ROM provides the complete Xilinx Foundation 1.5 (Student Edition), including schematic entry, ABEL, VHDL, and Verilog compilers, simulator, and documentation, enabling readers with a PC to create and simulate designs using a high-quality set of commercial tools, and thereby learn the practical side of digital design first-hand. An associated web site includes source files for all ABEL, VHDL, and C examples; Foundation 1.5 schematics for large examples; supplementary exercises; updated references and web links; appendices (including "Electrical Circuits Review" and "IEEE Standard Symbols"); and up-to-date errata. For anyone wanting to learn the fundamentals of digital logic design.
This book is for everyone who wants to design and build real digital circuits. It is based on the idea that, in order to do this, you have to grasp the fundamentals, but at the same time you need to understand how things work in the real world. Hence, the "principles and practices" theme.
The material in this book is appropriate for introductory courses on digital introductory courses logic design in electrical or computer engineering or computer science curricula. Computer science students who are unfamiliar with basic electronics concepts electronics concepts or who just aren't interested in the electrical behavior of digital devices may wish to skip Chapter 3; the rest of the book is written to be independent of this material as much as possible. On the other hand, anyone with a basic electronics background who wants to get up to speed on digital electronics can do so by reading Chapter 3. In addition, students with no electronics background can get the basics by reading Bruce M. Fleischer's "Electrical Circuits Review," a freely reproducible 20-page electronics tutorial available on this book's Web site, www.ddpp.com.
Although this book's level is introductory, it contains much more material than can be taught in a typical introductory course. Once I started writing, I found that I had many important things to say that wouldn't fit into a one-quarter course at Stanford or a 400-page book. Therefore, I have followed my usual practice of including everything that I think is at least moderately important, and leaving it up to the instructor or reader to decide what is most important in a particular environment. To help these decisions along, though, I've marked the headings of optional sections with an asterisk. In general, these sections can be skipped without any loss of continuity in the non-optional sections that follow.
Undoubtedly, some people will use this book in advanced courses and in laboratory courses. Advanced students will want to skip the basics and get right into the fun stuff. Once you know the basics, the most important and fun stuff in this book is in the sections on hardware description languages ABEL and VHDL, where you'll discover that your programming courses actually helped prepare you to design hardware.
Another use of this book is as a self-study reference for a working digital designer, who may be either of two kinds:
Novice. If you're just getting started as a working digital designer, and you took a very "theoretical" logic design course in school, you should concentrate on Chapters 3, 5, 6, and 8-11 to get prepared for the real world.
Old pro. If you're experienced, you may not need all of the "practices" material in this book, but the principles in Chapters 2, 4, and 7 can help you organize your thinking, and the discussions there of what's important and what's not might relieve the guilt you feel for not having used a Karnaugh map in 10 years. The examples in Chapters 6, 8, and 9 should give you additional insights into and appreciation for a variety of design methods. Finally, the ABEL and VHDL language descriptions and examples sprinkled throughout Chapters 4 through 9 may serve as your first organized introduction to HDL-based design.
All readers should make good use of the comprehensive index and of the marginal notes throughout the text that call attention to definitions and important topics. Maybe the highlighted topics in this section were more marginal than important, but I just wanted to show off my text formatting system.
What follows is a list of short descriptions of this book's eleven chapters. This may remind you of the section in software guides, "For People Who Hate Reading Manuals." If you read this list, then maybe you don't have to read the rest of the book.
Chapter 1 gives a few basic definitions and lays down the ground rules for what we think is and is not important in this book.
Chapter 2 is an introduction to binary number systems and codes. Readers who are already familiar with binary number systems from a software course should still read Sections 2.10-2.13 to get an idea of how binary codes are used by hardware. Advanced students can get a nice introduction to error-detecting codes by reading Sections 2.14 and 2.15. The material in Section 2.16.1 should be read by everyone; it is used in some design examples in Chapter 8.
Chapter 3 describes "everything you ever wanted to know about" digital circuit operation, placing primary emphasis on the external electrical characteristics of logic devices. The starting point is a basic electronics background including voltage, current, and Ohm's law; readers unfamiliar with these concepts may wish to consult the "Electrical Circuits Review" mentioned earlier. This chapter may be omitted by readers who aren't interested in how to make real circuits work, or who have the luxury of having someone else to do the dirty work.
Chapter 4 teaches combinational logic design principles, including switching algebra and combinational-circuit analysis, synthesis, and minimization. Introductions to ABEL and VHDL appear at the end of this chapter.
Chapter 5 begins with a discussion of digital-system documentation standards, probably the most important practice for aspiring designers to start practicing. Next, this chapter introduces programmable logic devices (PLDs), focusing on their capability to realize combinational logic functions. The rest of the chapter describes commonly used combinational logic functions and applications. For each function, it describes standard MSI building blocks, ABEL programs for PLD realizations, and VHDL models.
Chapter 6 is a collection of larger combinational-circuit design examples. For each example, it shows how the design can be carried out with MSI building blocks (if appropriate), ABEL and PLDs, or VHDL that can be targeted to a CPLD or FPGA.
Chapter 7 teaches sequential logic design principles, starting with latches and flip-flops. The main emphasis in this chapter is on the analysis and design of clocked synchronous state machines. However, for the brave and daring, the chapter includes an introduction to fundamental-mode circuits and the analysis and design of feedback sequential circuits. The chapter ends with sections on ABEL and VHDL features that support sequential-circuit design.
Chapter 8 is all about the practical design of sequential circuits. Like Chapter 5 before it, this chapter focuses on commonly used functions and gives examples using MSI building blocks, ABEL and PLDs, and VHDL. Sections 8.8 and 8.9 discuss the inevitable impediments to the ideal of fully synchronous design and address the important problem of how to live synchronously in an asynchronous world.
Chapter 9 is a collection of state-machine and larger sequential-circuit design examples. Each example is carried out both using ABEL for a PLD and using VHDL that can be targeted to a CPLD or FPGA.
Chapter 10 is an introduction to memory devices, CPLDs, and FPGAs. Memory coverage includes read-only memory and static and dynamic read-write memories from the points of view of both internal circuitry and functional behavior. The last two sections introduce CPLD and FPGA architecture.
Chapter 11 discusses several miscellaneous real-world topics that are of interest to digital designers. When I started writing what I thought would be a 300-page book, I included this chapter in the outline to pad out the "core" material to a more impressive length. Well, the book is obviously long enough without it, but this material is useful just the same.
Most of the chapters contain references, drill problems, and exercises. Drill problems are typically short-answer or turn-the-crank questions that can be answered directly based on the text material, while exercises may require a little more thinking. The drill problems in Chapter 3 are particularly extensive end are designed to allow non-EE types to ease into this material.
Xilinx Foundation Tools
Xilinx, Inc. (San Jose, CA 95124) has kindly allowed us to package their Foundation Express digital-design tools on two CD-ROMs with this book (in most domestic and international printings). These tools are quite comprehensive, including an ABEL compiler, VHDL and Verilog language processors, a schematic drawing package, and a simulator. Much of the software in the package is based on the popular Active-CAD™ and Active-HDL™ tools from Aldec, Inc. The package also includes FPGA Express™ software from Synopsys, which allows ABEL, VHDL, and Verilog designs to be targeted to CPLDs and FPGAs; popular Xilinx parts are supported by the included version. The Foundation tools were very useful to me as an author. Using them, I was able to write and test all of the example programs in the text. I trust that the tools will be even more useful to the students who use the text. They will allow you to write and test your own hardware designs and download them into Xilinx CPLDs and FPGAs in a lab environment. The student package support designs with up to 20,000 gates that fit into a single device. For a nominal fee, you can access a comprehensive set of Xilinx tutorials and two excellent Xilinx lab books online at www.prenhall.com/xilinx. These and other resources at this website will help you get the most out of the Foundation tools.
Even if you're not ready to do your own original designs, you can use the Foundation tools to try out and modify any of the examples in the text, since the source code for all of them is available at the book's Web site, discussed next.
Support materials for this book are available at the book's own dedicated Web site, www.ddpp.com. A key resource for students is the set of source listings for all of the example C, ABEL, and VHDL programs ... --This text refers to the Hardcover edition.