From the Inside Flap
After teaching in the field of electrical engineering and computer science for twenty years, I am well aware of the challenges that confront instructors and students in an introductory logic design course. Thus, from the very beginning, I designed this text to be up-to-date, comprehensive, and pragmatic in its approach. It aims to provide balanced coverage of concepts, techniques, and practices; and to do so in a way that is, at the same time, both scholarly and supportive of the needs of the typical student reader. I wanted to give students a clear picture of fundamental concepts, effective problem-solving techniques, and appropriate exposure to modern technologies, design techniques, and applications. Through the mutual support of textural material, worked examples, end-of-chapter problems, and other pedagogical features, I have attempted to show how theoretical ideas, physical devices, and design methodologies can all come together to form a successful digital system. Audience for Introduction to Digital Logic Design
This work is intended as a college text for a first course in digital logic design at about the sophomore or junior level. No specific prerequisites are assumed, nor is any knowledge of electrical circuits or electronics required. As a mainstream introduction to logic design, this book covers the basics of switching theory and logic design necessary to analyze and design combinational and sequential logic circuits at switch, gate, and register (or register-transfer) levels, with the main emphasis on the gate level. It can be used as the text for a one- or two-term course (semesters or quarters); it is useful for self-study. Building Understanding from the Bottom Up
Introduction to Digital Logic Design builds student understanding from the bottom up -- starting with simple binary numbers and codes, moving through the switch, gate, and register levels, and concluding with an introduction to system architecture. Each chapter progresses through more advanced levels of design and abstraction, tying together concepts previously introduced. Students will find that the circuits they learned to construct in the early chapters are used as primitive design elements in the later chapters, and that this progression greatly aids their comprehension and retention of the material.
Systematic Development of the Material
The nine chapters in this book are grouped into three parts that present digital logic design in a sequence familiar to most course instructors. Chapters 1-3 start students off with a general introduction to the digital design process, binary numbers and arithmetic, elementary logic circuits in terms of both switches and gates, and Boolean algebra. The next four chapters examine in detail the theory and techniques of designing gate-level logic circuits under the two traditional headings, combinational and sequential circuits. Here, students learn to analyze and design circuits of small and medium complexity, such as those found in SSI and MSI integrated circuits (ICs). Chapter 8 presents logic design at the higher register level, its components include storage registers, arithmetic elements, and other circuits constructed from moderate numbers of gates. The register level is appropriate to using MSI ICs as components, as well as to the internal design of large- or very large-scale ICs. Using LSI/VLSI components, we can specify the structure and behavior of a digital computer, a topic addressed in the final chapter.
Sound Coverage of Basics
This text is designed to give a thorough grounding in core fundamentals like number systems, combinational and sequential design, and register-level logic. In addition, there are numerous opportunities to expand traditional coverage with the inclusion of important topics like wired logic, heuristic design methods, programmable logic devices (PLDs), and testability considerations. These optional sections are presented as self-contained modules so they can be easily incorporated into the rest of the chapter material, but not interfere with the organizational flow of the chapter. We have arranged the material so that students see slowly increasing levels of design detail and abstraction. The building-block philosophy allows students to gain conceptual understanding gradually. This successful teaching approach is supplemented by careful management of detail, thorough explanations, and clear, evenly-paced prose.
Balance of Concepts, Techniques, and Practices
Our primary goal in writing this text was to achieve a careful balance among the important issues that beginning students must face: understanding of principles, acquisition of basic problem-solving skills, application of principles and skills in analysis and design, and exposure to real-world implementation issues. We arrange many of the chapters by first developing the basic theory, and then showing how that theory is used in design. We thus try to provide a deeper, more thorough discussion of fundamental material, in addition to accessible, self-contained treatment of principles underlying the more difficult design problems.
Emphasis on Design Thinking
Introduction to Digital Logic Design attempts to integrate practical design issues into every chapter. Chapter 1 serves as a broad introduction to the discipline of engineering design. From then on, chapter by chapter, students learn to consider such design issues as timing and clocking, fan-in and fan-out, reliability, and cost--topics that often receive inadequate consideration in other texts. We explore issues like how number systems and codes are implemented in real-world digital systems; the design of testable sequential circuits using scannable flip-flops; and the entire design process as implemented in a modern CAD (computer-aided design) framework. Students receive exposure to key analysis and design criteria, and are made aware of the decisions and trade-offs that must be made as a working system is being created.
Modern Topical Coverage
Because it is important to a student's success in the workplace toe exposed to state-of-the-art topics in digital logic design, we have tried to capture the flavor of recent technological developments. In addition to the fundamental logic design topics, we address, in an integrated manner, application-specific logic structures like PLDs; the impact and requirements of VLSI technology; testing issues and design for testability; and the theory needed to understand such important implementation technologies as tri-state logic and CMOS circuits. We have made a point to consistently integrate computer-aided design throughout the text, so that students will be aware of the role and value of CAD in the design process. We focus on what CAD can and cannot do, rather than on the specifics of any single CAD system.
This is perhaps the first text to use a technology-independent approach known as switch-level modeling to explain the structure and behavior of elementary logic circuits. This innovative technique treats transistors, pull-up resistors, and the like, as purely logical devices from which abstract logical models can be easily derived and explained. With Introduction to Digital Logic Design, students who have no electronics background will be able to understand how logic gates are designed and operate. Thus, students gain exposure to sophisticated design ideas--how tri-state circuits and PLDs work, for example--within the rigorous and complete framework provided by the switch-level approach.
Highlights of Topical Coverage
Unique Introductory Chapter
In the first chapter, we introduce the discipline of engineering design, which then serves as a foundation for the later, detailed coverage of design theory and practice. This chapter examines the nature and role of digital systems; provides an early orientation to key design issues; and acquaints students with basic concepts such as logical modeling, computer-aided design methodology, and design trade-offs like cost, reliability, and testability. The aim of Chapter 1 is to motivate students by giving them an initial taste of the design process and a broad view of the role of digital systems in the real world.
Implementation of Number Systems and Codes
Chapter 2 presents a thorough treatment of binary numbers and codes and their role in logic design. We attempt to enliven this sometimes dull subject with examples ranging from secret writing to the familiar universal product (bar) code. We provide many illustrations that show how abstract number ideas are put to use in actual systems. Our coverage of this standard topic exemplifies the blend of practical implementation and theoretical concepts found throughout this book. This chapter also contains a section on floating-point arithmetic that goes beyond the fixed-point numbers found in most introductory texts.
Early and Integrated Treatment of ICs and PLDs
We introduce integrated circuits, from SSI to VLSI in Chapter 3, and programmable logic devices (PLDs) in Chapter 4. The relatively early appearance of ICs and PLDs in the text should facilitate introduction of these devices in the digital laboratory experiments that often accompany a logic design course. Furthermore, the discussion of ICs and PLDs teaches students to analyze the trade-offs associated with alternative implementation technologies.
Presentation of Fundamental Theory
Recent texts have tended to gloss over basic principles, perhaps in reaction to pat overemphasis on theory. As a result, students often do not acquire the basic elements of Boolean algebra, minimization theory, or the timing models needed to understand logic circuits or the CAD tools used in their design. We address this problem by providing coverage of basic concepts that is comprehensive, clearly related to current design practice, and accessible to the average student.
Coverage of Testing and Testability
The issue of testing circuits and circuit systems for physical faults occurring during or after manufacture has become critical (and often expensive) issue in industry. Testing problems can no longer be an afterthought in the design process. In the last three sections of Chapter 7, we study the basic techniques for modeling faults and deriving tests at the gate level. We also present some practical design methods such as scan design to enhance a circuit's testability.
Systematic Approach to Register-Level Design
Using a well-defined set of building blocks of the kind found in typical hardware or software design libraries--most of which the student has seen designed in earlier chapters--Chapter 8 attempts to place register-level logic design on a solid footing. It exposes students to systems that are partitioned data processing (datapath) and control units, and introduces the design of programmable control units. We also show how a relatively complex sequential system can be precisely specified and implemented using formal descriptive methods and a CAD-like framework based on the well-regarded algorithmic-state-machine (ASM) approach.
Coverage of the Architecture Level
Chapter 9 aims to complete the student's perspective of digital systems by providing an overview of the architecture of computers and computer-based microcontrollers. Although optional, this chapter covers the basics of computer organization and microprocessor interfacing in a self-contained manner. It can also serve as a useful bridge to more advanced courses in the computer systems curriculum. Features That Support Teaching and Enhance Learning
Modular and Accessible Format
Recognizing that the topics covered in digital logic design courses vary widely, the book has been designed to allow course instructors to follow many paths through it. Each chapter consists of three or four major parts, which in turn consist of three or four numbered sections. These sections are designed to be relatively independent and self-contained so that, in the case of the less central topics, they can be skipped, if desired. We also make liberal use of subheadings within the numbered sections, both to modularize the material and to make it easy for the student to find a particular topic quickly.
Clear and Consistent Interior Design
We employ an open, two-color interior design that helps students to organize and absorb information efficiently. We have carefully aligned illustrations and text in our layout to motivate the reader and to provide a consistent format from chapter to chapter. Color is used where it seems pedagogically effective: to highlight key text elements and to identify important information within the illustrations.
Over 600 Two-Color Illustrations
We have included over 600 high-quality illustrations and corresponding captions to depict the key conceptual ideas and systems that logic design students need to know. Again, we have not employed color gratutiously; within the figures, for instance, color is used to label input/output signals, and to highlight other crucial pieces of information.
To orient the student to the subject at hand, each chapter of Introduction to Digital Logic Design opens with an abbreviated table of contents and a short, introductory paragraph that summarizes the goals and contents of that chapter. These objectives aim to provide a sense of context for students and to help them tie together information presented in previous chapters with the new concepts to be presented. Shorter (re)statements of objectives appear throughout the book.
Comprehensive, Worked Examples
We present some 80 (numbered) examples to illustrate key design techniques and applications. They serve as small, self-contained case studies that summarize and integrate key principles developed in the preceding text. These and other (unnumbered) examples sprinkled throughout the text demonstrate a variety of useful analysis and design procedures, and also encourage effective problem-solving behavior on the student reader's part.
To help students solve problems systematically, we present clearly marked, step-by-step procedures to highlight and summarize important design and analysis techniques. These procedures are written in ordinary language to maximize comprehensive.
We have provided nearly 600 homework problems ranging from simple drill exercises to subtle, thought-provoking problems to enable teachers to better support the needs of a diverse student group. These class-tested problem sets balance simple and difficult problems, as well as design and analysis issues.
Complete Instructors Manual
A solutions manual will be available to all adopters of this text for course use. This comprehensive supplement contains complete, worked-out solutions to every end-of-chapter problem. For convenience, we have also included the problem statements in this manual.
Summary Margin Notes
Margin notes, one or two per page, summarize key facts and terminology. They also serve as a concise and easily accessible running summary of the text.
Further Readings Sections
A short, annotated set of references, which mainly comprise textbooks or other reference materials suitable for use by undergraduates, appears at the conclusion of each chapter to encourage further study.
Bulleted End-of-Chapter Summaries
Each chapter ends with a detailed, bulleted summary of key concepts and procedures found in that chapter.
To make this text as useful as possible, it has been thoroughly tested in its intended market. In addition to testing various drafts in the classroom at several universities, we obtained over 100 reviews of the manuscript, illustrations, homework problems, and table of contents from approximately forty-five individual reviewers. The end-of-chapter problems have been class-tested for accuracy and effectiveness.
This book has ample material for a one- or two-term course on digital logic design. The material has been organized in a modular fashion to allow course instructors considerable flexibility in the topics they choose to cover, as well as in depth of coverage. In a typical 15-week course, for example, the following sequence of topics may be followed:
Week 1: Introduction to digital design; Binary numbers (Ch. 1, Sec. 2.1-2.4)
Week 2: Binary arithmetic and codes; Switch-level concepts (Sec. 2.5-2.9 and 3.1-3.3)
Week 3: Gate-level concepts; Basic gates and circuits; Boolean algebra and its uses (Sec. 3.4-3.5 and 3.6-3.8)
Week 4: Combinational design; PLDs; Two-level minimization (Sec. 4.1-4.2 and 4.5-4.7)
Week 5: Combinational design: The K-Map method (Sec. 5.1-5.4)
Week 6: Combinational design: The tabular method (Sec. 5.5-5.6)
Week 7: Combinational design: Multiplexers, decoders, adders, subtracters (Sec. 5.8-5.9)
Week 8: Sequential circuit concepts: Delays and latches; State behavior (Sec. 6.1-6.4)
Week 9: Sequential design: Triggering methods; Flip-flops and their uses (Sec. 6.5 and 6.7)
Week 10: Sequential design: Circuit analysis; Clocking issues (Sec. 7.1-7.3)
Week 11: Sequential design: Synthesis methods; Design examples; Testing (Sec. 7.4-7.7)
Week 12: Register-level design: Characteristics and design components (Sec. 8.1-8.3)
Week 13: Register-level design: Datapath and control unit design methods (Sec. 8.4-8.8)
Week 14: Architecture-level design: Basic computer organization (Sec. 9.1-9.3)
Week 15: Computer organization (continued); Microprocessor-based systems (Sec. 9.6-9.7)
In a two-term course sequence, the treatment of various topics listed above can be expanded, and extra topics can be added such as: floating-point numbers (Sec. 2.12), wired logic (Sec. 4.3), ROMs and PLAs (Sec. 4.4), heuristic design methods (Sec. 5.7), asynchronous circuits (Sec. 6.8-6.10), and test generation and design for testability (Sec. 7.8-7.9). In courses that emphasize computer design, there is an extensive discussion of CPU architecture and assembly-language programming concepts (Sec. 9.4-9.5). Acknowledgments
I would like to express my deep appreciation to Harold Stone for his incisive comments concerning early versions of the manuscript. I am grateful to Michael Driscoll for his diligent and thoughtful technical review of later versions of the manuscript, and for his participation in the refinement of the chapter summaries. Special thanks are due to Keith Hoover for his thorough technical reviews, and for generously sharing his experience and insights as a teacher of logic design.
Finally, this work could not have been completed without the enthusiastic support--from proof reading to providing midnight snacks--of my wife Terrie, to whom the book is lovingly dedicated.
John P. Hayes
Ann Arbor, Michigan
From the Back Cover
John P. Hayes, a well-known authority in the area of computer engineering, now brings his expertise to digital logic design. Intended as a mainstream introduction for the first course, Introduction to Digital Logic Design provides a presentation which is both scholarly and highly supportive of student learning. In addition, it presents the traditional core topics including sequential and combinational design and register level logic. This is the first introductory text that provides balanced coverage of concepts, techniques and practice. Also, the text includes excellent coverage of the most modern topics and technologies -- programmable logic devices (PLD's), the testability, and computer aided design (CAD). This text has an attractive, practical design that highlights a number of features that support student learning.