From the Back Cover
This newly revised book blends academic precision and practical experience in an authoritative introduction to basic principles of digital design and practical requirements in both board-level and VLSI systems. With over twenty years of experience in both industrial and university settings, the author covers the most widespread logic design practices, while building a solid foundation of theoretical and engineering principles for readers to use as they go forward in this fast moving field.
FEATURES/BENEFITS
NEWEarly coverage of modern CMOS logic familiesIncludes low voltage and LVCMOS/LVTTL.
NEWCoverage of Complex Programmable Logic Devices (CPLDs) and Field-Programmable Gate Arrays (FPGAs).
Provides the general background needed for associated CPLD- and FPGA-based lab courses.
NEWEarlier introduction of HDL-based digital design.
HDL concepts can be used throughout the course.
NEWHDL coverage and examplesIncludes VHDL as well as ABEL.
VHDL is an industry-standard language that also provides a good foundation for Verilog if required.
NEWProgramming examples written in C rather than Pascal.
NEWFaster progression through non-automated methodsSuch as Karnaugh maps and state-machine synthesis.
While these are used to illustrate some basic concepts, more emphasis is given to the methods and tools that are actually used on the job.
NEWDescription of automated methods including simulation and synthesis.
NEWMore and larger design examples.
More opportunity to "learn by example."
NEWDrill problems and exercises.
NEWIncludes CD-ROMS with the complete Xilinx Foundation 1.5 (Student Edition), including schematic entry, ABEL, VHDL, and Verilog compilers, simulator, and documentation.
Users with a PC can create and simulate designs using a high-quality set of commercial tools, and thereby learn the practical side of digital design first-hand.
Easy-to-follow, practical writing style and extensive use of illustrations.
High-quality, user-friendly color production.
--This text refers to an out of print or unavailable edition of this title.
Excerpt. © Reprinted by permission. All rights reserved.
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.
Chapter Descriptions
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.
www.ddpp.com
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 an out of print or unavailable edition of this title.