For Digital Electronics courses requiring a comprehensive approach to Digital concepts with an emphasis on PLD programming and the integration of the latest Quartus II software. This text presents a step-by-step, practical approach to an enhanced and easy understanding of digital circuitry fundamentals with coverage of CPLD's, VHDL and Altera's Quartus II software. Coverage begins with the basic logic gates used to perform arithmetic operations, and proceeds up through sequential logic and memory circuits used to interface to modern PCs. The author combines extensive teaching experience with practical examples in order to bring entry level students up to speed in this emerging field.

Digital Electronics and Design with VHDL offers a friendly presentation of the fundamental principles and practices of modern digital design. Unlike any other book in this field, transistor-level implementations are also included, which allow the readers to gain a solid understanding of a circuit's real potential and limitations, and to develop a realistic perspective on the practical design of actual integrated circuits. Coverage includes the largest selection available of digital circuits in all categories (combinational, sequential, logical, or arithmetic); and detailed digital design techniques, with a thorough discussion on state-machine modeling for the analysis and design of complex sequential systems. Key technologies used in modern circuits are also described, including Bipolar, MOS, ROM/RAM, and CPLD/FPGA chips, as well as codes and techniques used in data storage and transmission. Designs are illustrated by means of complete, realistic applications using VHDL, where the complete code, comments, and simulation results are included. This text is ideal for courses in Digital Design, Digital Logic, Digital Electronics, VLSI, and VHDL; and industry practitioners in digital electronics. Comprehensive coverage of fundamental digital concepts and principles, as well as complete, realistic, industry-standard designs Many circuits shown with internal details at the transistor-level, as in real integrated circuits Actual technologies used in state-of-the-art digital circuits presented in conjunction with fundamental concepts and principles Six chapters dedicated to VHDL-based techniques, with all VHDL-based designs synthesized onto CPLD/FPGA chips

This Second Edition continues to use programmable logic as the primary vehicle for teaching digital design principles, and maintains its cutting-edge status by updating to Altera's newest Quartus II software, the most current method of digital design implementation. This Windows-based software allows users to design, test, and program CPLD designs in text-based (VHDL) and graphic (schematic entry) formats. The Second Edition introduces CPLDs earlier in the teaching sequence, laying a solid foundation for more advanced principles without neglecting underlying digital fundamentals such as Boolean algebra, logic minimization, and combinational and sequential circuits. VHDL and Quartus II applications are provided throughout.

Here is a laboratory workbook filled with interesting and challenging projects for digital logic design and embedded systems classes. The workbook introduces you to fully integrated modern CAD tools, logic simulation, logic synthesis using hardware description languages, design hierarchy, current generation field programmable gate array technology, and SoPC design. Projects cover such areas as serial communications, state machines with video output, video games and graphics, robotics, pipelined RISC processor cores, and designing computer systems using a commercial processor core.

The book is divided into four major parts. Part I covers HDL constructs and synthesis of basic digital circuits. Part II provides an overview of embedded software development with the emphasis on low–level I/O access and drivers. Part III demonstrates the design and development of hardware and software for several complex I/O peripherals, including PS2 keyboard and mouse, a graphic video controller, an audio codec, and an SD (secure digital) card. Part IV provides three case studies of the integration of hardware accelerators, including a custom GCD (greatest common divisor) circuit, a Mandelbrot set fractal circuit, and an audio synthesizer based on DDFS (direct digital frequency synthesis) methodology. The book utilizes FPGA devices, Nios II soft–core processor, and development platform from Altera Co., which is one of the two main FPGA manufactures. Altera has a generous university program that provides free software and discounted prototyping boards for educational institutions (details at http://www.altera.com/university ). The two main educational prototyping boards are known as DE1 ($99) and DE2 ($269). All experiments can be implemented and tested with these boards. A board combined with this book becomes a “turn–key” solution for the SoPC design experiments and projects. Most HDL and C codes in the book are device independent and can be adapted by other prototyping boards as long as a board has similar I/O configuration.

This ninth edition of Digital Electronics: A Practical Approach with VHDL provides the fundamentals of digital circuitry to students in engineering and technology curricula. The digital circuits are introduced using fixed-function 7400 ICs and evolve into FPGA (Field Programmable Gate Arrays) programmed with VHDL (VHSIC Hardware Description Language). (Note: Those schools not wishing to develop logic using VHDL and FPGAs can completely skip those sections of the textbook without affecting the continuity of the remainder of the text, which describes logic design and implementation using 7400-series ICs.) Coverage begins with the basic logic gates used to perform arithmetic operations and proceeds through sequential logic and memory circuits used to interface to modern PCs. Professor Kleitz uses his vast experience of teaching electronics online and in class from his best-selling textbooks to know what it takes for an entry-level student to be brought up to speed in this emerging field. It was important to design this new textbook to present practical examples, be easy to read, and provide all of the information necessary for motivated students to teach themselves this new subject matter. This makes it ideal for learning in an online environment as well as from conventional inclass lectures. Digital electronic ICs (integrated circuits) and FPGAs are the “brains” behind common microprocessor-based systems such as those found in automobiles, personal computers, and automated factory control systems. The most exciting recent development in this field is that students now have the choice to design, simulate, and implement their circuits using a programming language called VHDL instead of wiring individual gates and devices to achieve the required function. Each topic area in this text consistently follows a very specific sequence of steps, making the transition from problem definition, to practical example, to logic IC implementation, to VHDL and FPGA implementation. To accomplish this, the text first introduces the theory of operation of the digital logic and then implements the design in integrated circuit form (see Figure P–1). Once the fixed-function IC logic is thoroughly explained, the next step is to implement the design as a graphic design file and then to implement it using the VHDL hardware descriptive language, all within the free version of the Altera Quartus® II development software. Several examples are used to bolster the student’s understanding of the subject before moving on to system-level design and troubleshooting applications of the logic. This step-by-step method has proven over the years to be the most effective method to build the fundamental understanding of digital electronics before proceeding to implement the logic design in VHDL. The Altera Quartus® II software is a free download that allows students to either graphically design their circuit by drawing the logic (using logic gates or 7400 macrofunctions) or use VHDL to define their logic. The design can then be simulated on a PC before using the same software to download the logic to an FPGA on one of the commercially available FPGA programmer boards, such as the Altera DE2 illustrated in this text. The first eight editions were developed from an accumulation of 28 years of class notes. Teaching online from the eighth edition for the past 3 years has given me the opportunity to review several suggestions from my students and other faculty regarding such things as improving a circuit diagram, clarifying an explanation, and redesigning an application to make it easier to duplicate in lab. More than 140 schools have adopted the eighth edition. To write the ninth edition, I have taken advantage of the comments from these schools as well as my own experience and market research to develop an even more practical and easier-to-learn-from textbook. In addition to rewriting several of the examples and applications based on my classroom and online teaching experience, I have added the following material: • Greatly expanded coverage of programmable logic devices • Steps involved in converting from 7400-series ICs to FPGAs • Beginning- and intermediate-level VHDL programming taught by example (Note: VHDL and FPGA coverage is optional, and its omission will not affect the remainder of the text.) • New basic and intermediate-level problem sets • New MultiSIM® examples and problems to help facilitate online learning and experimentation • Real-world and “green” applications • Several new and revised annotated figures • WWW references throughout Chapter Organization Basically, the text can be divided into two halves: Chapters 1 to 8 cover basic digital logic and combinational logic, and Chapters 9 to 18 cover sequential logic and digital systems. Chapters 1 and 2 provide the procedures for converting between the various number systems and introduce the student to the electronic signals and switches used in digital circuitry. Chapter 3 covers the basic logic gates and introduces the student to timing analysis and troubleshooting techniques. Chapter 4 explains how to implement designs using FPGAs. Chapter 5 shows how several of the basic gates can be connected together to form combinational logic. Boolean algebra, De Morgan’s theorem, VHDL programming, and Karnaugh mapping are used to reduce the logic to its simplest form. Chapters 6, 7, and 8 discuss combinational logic used to provide more advanced functions, such as parity checking, arithmetic operations, and code converting. The second half of this book begins with a discussion of the operating characteristics and specifications of the TTL and CMOS logic families (Chapter 9). Chapter 10 introduces flip-flops and the concept of sequential timing analysis. Chapter 11 makes the reader aware of the practical limitations of digital ICs and some common circuits that are used in later chapters to facilitate the use of medium-scale ICs. Chapters 12 and 13 expose the student to the operation and use of several common medium-scale ICs and their VHDL equivalents used to implement counter and shift register systems. Chapter 14 deals with oscillator and timing circuits built with digital ICs and with the 555 timer IC. Chapter 15 teaches the theory behind analog and digital conversion schemes and the practical implementation of ADC and DAC IC converters. Chapter 16 covers semiconductor, magnetic, and optical memory as they apply to PCs and microprocessor systems. Chapter 17 introduces microprocessor hardware and software to form a bridge between digital electronics and a follow-up course in microprocessors. Chapter 18 provides a working knowledge of one of today’s most popular microcontrollers, the 8051. The book concludes with several appendices used to supplement the chapter material. Prerequisites Although not mandatory, it is helpful if students using this text have an understanding of, or are concurrently enrolled in, a basic electricity course. Otherwise, all of the fundamental concepts of basic electricity required to complete this text are presented in Appendix F. Margin Annotations Icons Several annotations are given in the page margins throughout the text. These are intended to highlight particular points that were made on the page. They can be used as the catalyst to develop a rapport between the instructor and the students and to initiate online team discussions among the students. Four different icons are used to distinguish between the annotations. Common Misconception: These annotations point out areas of digital electronics that have typically been stumbling blocks for students and need careful attention. Pointing out these potential problem areas helps students avoid making related mistakes. Team Discussion: These annotations are questions that tend to initiate a discussion about a particular topic. The instructor can use them as a means to develop cooperative learning by encouraging student interaction. Helpful Hint: These annotations offer suggestions for circuit analysis and highlight critical topics presented in that area of the text. Students use these tips to gain insights regarding important concepts. Inside Your PC: These annotations are used to illustrate practical applications of the theory in that section as it is applied inside a modern PC. This will help the student to understand many of the terms used to describe the features that define the capability of a PC. Basic Problem Sets A key part of learning any technical subject matter is for the student to have practice solving problems of varying difficulty. The problems at the end of each chapter are grouped together by section number. Within each section are several basic problems designed to get the student to solve a problem using the fundamental information presented in the chapter. In addition to the basic problems, there are three other problem types: D (Design): Problems designated with the letter D ask the student to modify an existing circuit or to design an original circuit to perform a specific task. This type of exercise stimulates creative thinking and instills a feeling of accomplishment on successful completion of a circuit design. T (Troubleshooting): Problems designated with the letter T present the student with a malfunctioning circuit to be diagnosed or ask for a procedure to follow to test for proper circuit operation. This develops the student’s analytical skills and prepares him or her for troubleshooting tasks that would typically be faced on the job. C (Challenging): Problems designated with the letter C are the most challenging to solve. They require a thorough understanding of the material covered and go a step beyond by requiring the student to develop some of his or her own strategies to solve a problem that is different from the examples presented in the chapter. This also expands the student’s analytical skills and develops critical thinking techniques. MultiSIM® (National Instruments) is a software simulation tool that is used to reinforce the theory presented in each chapter. It provides an accurate simulation of digital and analog circuit operations along with a simulation of instruments used by technicians to measure IC, component, and circuit characteristics. With the purchase of this software, you have the ability to build and test most of the circuits presented in this text. This provides a great avenue for in-class as well as online experimentation. Several MultiSIM® examples and problems are included within each chapter (see Figure P–3). The textbook companion website provides all of the circuit files and instructions needed to solve each circuit. There are three types of problems: (1) circuit interaction problems require the student to change input values and take measurements at the outputs to verify circuit operation, (2) design problems require the student to design, or modify, a circuit to perform a particular task, and (3) troubleshooting problems require the student to find and fix the fault that exists in the circuit that is given.

Fundamentals of Digital Logic With VHDL Design teaches the basic design techniques for logic circuits. It emphasizes the synthesis of circuits and explains how circuits are implemented in real chips. Fundamental concepts are illustrated by using small examples, which are easy to understand. Then, a modular approach is used to show how larger circuits are designed. VHDL is used to demonstrate how the basic building blocks and larger systems are defined in a hardware description language, producing designs that can be implemented with modern CAD tools. The book emphasizes the concepts that should be covered in an introductory course on logic design, focusing on: Logic functions, gates, and rules of Boolean algebra Circuit synthesis and optimization techniques Number representation and arithmetic circuits Combinational-circuit building blocks, such as multiplexers, decoders, encoders, and code converters Sequential-circuit building blocks, such as flip-flops, registers, and counters Design of synchronous sequential circuits Use of the basic building blocks in designing larger systems It also includes chapters that deal with important, but more advanced topics: Design of asynchronous sequential circuits Testing of logic circuits For students who have had no exposure to basic electronics, but are interested in learning a few key concepts, there is a chapter that presents the most basic aspects of electronic implementation of digital circuits. Major changes in the second edition of the book include new examples to clarify the presentation of fundamental concepts over 50 new examples of solved problems provided at the end of chapters NAND and NOR gates now introduced in Chapter 2 more complete discussion of techniques for minimization of logic functions in Chapter 4 (including the tabular method) a new chapter explaining the CAD flow for synthesis of logic circuits Altera's Quartus II CAD software provided on a CD-ROM three appendices that give tutorials on the use of Quartus II software

For courses in Digital Electronics, and Digital Logic.Digital Electronics with VHDL provides the fundamentals of digital circuitry, which are introduced using the fixed-function ICs and evolve into CPLDs (Complex Programming Logic Devices) programmed with VHDL (VHSIC Hardware Description Language). Basic logic gates are used to perform arithmetic operations; then the text proceeds through sequential logic and memory circuits to interface to modern PCs. This new textbook is designed to present practical examples; be easy to read, and to provide all of the information necessary for the motivated student to learn this new subject matter.

The perfect introduction to digital concepts, applications, and design, Digital Design with CPLD Applications uses a logical organization of topics, clear explanations, and current examples to present key information in a way that is easy to grasp. Unique in its approach, this book covers combinational and sequential logic circuits using CPLDs while still covering circuit design at the gate level using TTL/CMOS devices. The book begins by introducing combinational logic, including detailed explanations for implementing circuits in Altera Quartus II software and CPLDs. The material continues to be presented at the gate level, preparing readers to successfully navigate more complicated areas like functional circuits. Using formal problem-solving concepts, combinational design is then covered, which includes a large combinational design that includes the building and simulation of each component, marking a valuable departure from traditional books in the field which do not cover large-scale design at a combinational level. Additional coverage includes sequential circuits with an emphasis on relevant and useful circuits, and microprocessor and memory concepts.

This text offers a comprehensive treatment of VHDL and its applications to the design and simulation of real, industry-standard circuits. It focuses on the use of VHDL rather than solely on the language, showing why and how certain types of circuits are inferred from the language constructs and how any of the four simulation categories can be implemented. It makes a rigorous distinction between VHDL for synthesis and VHDL for simulation. The VHDL codes in all design examples are complete, and circuit diagrams, physical synthesis in FPGAs, simulation results, and explanatory comments are included with the designs. The text reviews fundamental concepts of digital electronics and design and includes a series of appendixes that offer tutorials on important design tools including ISE, Quartus II, and ModelSim, as well as descriptions of programmable logic devices in which the designs are implemented, the DE2 development board, standard VHDL packages, and other features. All four VHDL editions (1987, 1993, 2002, and 2008) are covered.This expanded second edition is the first textbook on VHDL to include a detailed analysis of circuit simulation with VHDL testbenches in all four categories (nonautomated, fully automated, functional, and timing simulations), accompanied by complete practical examples. Chapters 1--9 have been updated, with new design examples and new details on such topics as data types and code statements. Chapter 10 is entirely new and deals exclusively with simulation. Chapters 11--17 are also entirely new, presenting extended and advanced designs with theoretical and practical coverage of serial data communications circuits, video circuits, and other topics. There are many more illustrations, and the exercises have been updated and their number more than doubled.

Utilize the Latest VHDL Tools and Techniques for Desigining Embedded Cores, Cutting-Edge Processors, RT Level Components, and Complex Digital Systems Considered and industry classis, VHDL:Modular Design and Synthesis of Cores and Systems has been fully updated to cover methodologies of modern design and the latest uses of VHDL for digital system design. You'll learn how to utilize VHDL to create specific constructs for specific hardware parts, focusing on VHDL's new libraries and packages. The cutting-edge resource explores the design of RT level components, the application of these components in a core-based, and the development of a complete processor design with its hardware and software as a core in a system-on-a-chip(SOC). Filled with over 150 illustrations, VHDL:Modular Design and Synthesis of Cores and Systems features: An entire toolkit for register-transfer level digital system design Testbench development techniques New to this edition: Coverage of the latest uses of VHDL for digital system design, design of IP cores, interactive and self-checking testbench development, and VHDL's new libraries and packages Inside this State-of-the-Art VHDL Design Tool Design Methodology VHDL Overview Structure of VHDL Simulation Model Combinational Circuits Sequential Circuits Testbench Development Control-Data Partitioned Designs Design of RTL Embedded Cores CPU RT Level Design CPU Memory Indtruction Level Testing Software Tools Embedded System Design

Mit der deutschen Übersetzung zur fünfter Auflage des amerikanischen Klassikers Computer Organization and Design - The Hardware/Software Interface ist das Standardwerk zur Rechnerorganisation wieder auf dem neusten Stand - David A. Patterson und John L. Hennessy gewähren die gewohnten Einblicke in das Zusammenwirken von Hard- und Software, Leistungseinschätzungen und zahlreicher Rechnerkonzepte in einer Tiefe, die zusammen mit klarer Didaktik und einer eher lockeren Sprache den Erfolg dieses weltweit anerkannten Standardwerks begründen. Patterson und Hennessy achten darauf, nicht nur auf das "Wie" der dargestellten Konzepte, sondern auch auf ihr "Warum" einzugehen und zeigen damit Gründe für Veränderungen und neue Entwicklungen auf. Jedes der Kapitel steht für einen deutlich umrissenen Teilbereich der Rechnerorganisation und ist jeweils gleich aufgebaut: Eine Einleitung, gefolgt von immer tiefgreifenderen Grundkonzepten mit steigernder Komplexität. Darauf eine aktuelle Fallstudie, "Fallstricke und Fehlschlüsse", Zusammenfassung und Schlussbetrachtung, historische Perspektiven und Literaturhinweise sowie Aufgaben. In der neuen Auflage sind die Inhalte in den Kapiteln 1-5 an vielen Stellen punktuell verbessert und aktualisiert, mit der Vorstellung neuerer Prozessoren worden, und der Kapitel 6... from Client to Cloud wurde stark überarbeitetUmfangreiches Zusatzmaterial (Werkzeuge mit Tutorien etc.) stehtOnline zur Verfügung.

Fundamentals of Digital Logic with VHDL Design teaches the basic design techniques for logic circuits. It emphasizes the synthesis of circuits and explains how circuits are implemented in real chips. Fundamental concepts are illustrated by using small examples, which are easy to understand. Then, a modular approach is used to show how larger circuits are designed. The book emphasizes CAD through the use of Altera's Quartus II CAD software, a state-of-the-art digital circuit design package. This software produces automatic mapping of designs written in VHDL into Field Programmable Gate Arrays (FPGAs) and Complex Programmable Logic Devices (CPLDs).

Reflecting lengthy experience in the engineering industry, this bestseller provides thorough, up-to-date coverage of digital fundamentals–from basic concepts to microprocessors, programmable logic, and digital signal processing. Floyd's acclaimed emphasis on applications using real devices and on troubleshooting gives users the problem-solving experience they'll need in their professional careers. Known for its clear, accurate explanations of theory supported by superior exercises and examples, this book's full-color format is packed with the visual aids today's learners need to grasp often complex concepts. KEY TOPICS: The book features a comprehensive review of fundamental topics and a unique introduction to two popular programmable logic software packages (Altera and Xilinx) and boundary scan software. For electronic technicians, system designers, engineers.

Preface 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 firm 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 benefits 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. Technology and CAD Support The book discusses modern digital circuit implementation technologies. The emphasis is on programmable logic devices (PLDs), which is the most appropriate technology for use in a textbook for two reasons. First, PLDs are widely used in practice and are suitable for almost all types of digital circuit designs. In fact, students are more likely to be involved in PLDbased designs at some point in their careers than in any other technology. Second, circuits are implemented in PLDs by end-user programming. Therefore, students can be provided with an opportunity, in a laboratory setting, to implement the book’s design examples in actual chips. Students can also simulate the behavior of their designed circuits on their own computers. We use the two most popular types of PLDs for targeting of designs: complex programmable logic devices (CPLDs) and field-programmable gate arrays (FPGAs). OurCADsupport is based onAltera Quartus II software. Quartus II provides automatic mapping of a design into Altera CPLDs and FPGAs, which are among the most widely used PLDs in the industry. The features of Quartus II that are particularly attractive for our purposes are: • 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 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 student’s 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 efficient design method to use in practice. We describe in detail the IEEE Standard VHDLlanguage and use it extensively in examples. TheCADsystem 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 designer’s circuit. • It can be used on most types of popular computers. The version of Quartus II provided with the book runs on computers using MicrosoftWindows. However, through Altera’s 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, firsthand, all design examples. To teach the students how to use this software, the book includes three, progressively advanced, hands-on tutorials. 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. It also introduces the binary numbers. 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. x 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 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 testing. Chapter 12 presents a complete CAD flow that the designer experiences when designing, implementing, and testing a digital circuit. AppendixAprovides 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. What Can Be Covered in a Course All the material in the book can be covered in 2 one-quarter courses. A good coverage of the most important material can be achieved in a single one-semester, or even a onequarter, course. This is possible only if the instructor does not spend too much time teaching the intricacies of VHDL and CAD tools. To make this approach possible, we organized the VHDL material in a modular style that is conducive to self-study. Our experience in teaching different classes of students at the University of Toronto shows that the instructor may spend only 3 to 4 lecture hours on VHDL, concentrating mostly on the specification of sequential circuits. The VHDL examples given in the book are largely self-explanatory, 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 beneficial 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 1—section 1.6. • Chapter 2—all sections. • Chapter 3—sections 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 4—sections 4.1 to 4.7 and section 4.12. • Chapter 5—sections 5.1 to 5.5. • Chapter 6—all sections. • Chapter 7—all sections. • Chapter 8—sections 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 1—section 1.6. • Chapter 2—all sections. • Chapter 3—sections 3.1 to 3.3. • Chapter 4—sections 4.1 to 4.5 and section 4.12. • Chapter 5—sections 5.1 to 5.3 and section 5.5. • Chapter 6—all sections. • Chapter 7—sections 7.1 to 7.10 and section 7.13. • Chapter 8—sections 8.1 to 8.5. A More Traditional Approach The material in Chapters 2 and 4 introduces Boolean algebra, combinational logic circuits, and basic minimization techniques. Chapter 2 provides initial exposure to these topics using xii Preface onlyAND,OR, NOT,NAND,andNORgates. 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 definition of these gates. VHDL VHDLis 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 entireVHDLlanguage. In the book we present the importantVHDLconstructs 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 figures 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 De- Weerth, Georgia Institute of Technology; Clay Gloster, Jr., North Carolina State University (Raleigh); Carl Hamacher, Queen’s University; Vincent Heuring, University of Colorado; Yu Hen Hu, University ofWisconsin;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

Dieses Buch ist die deutsche Ubersetzung eines Klassikers der Programmierliteratur von Steve McConnell. Seine mit vielen Preisen ausgezeichneten Bucher helfen Programmierern seit Jahren, besseren und effizienteren Code zu schreiben. Das Geheimnis dieses Buches liegt in der Art, wie der Autor das vorhandene Wissen uber Programmiertechniken aus wissenschaftlichen Quellen mit den Erfahrungen aus der taglichen praktischen Arbeit am Code zusammenfuhrt und daraus die wesentlichen Grundvoraussetzungen der Softwareentwicklung und die effektivsten Arbeitstechniken ableitet. Verstandliche Beispiele und klare Anleitungen vermitteln dem Leser dieses Wissen auf unkomplizierte Weise. Dieses Buch informiert und stimuliert, ganz gleich, wie viel sie bereits uber Programmierung wissen, welche Entwicklungsumgebung und Sprache sie bevorzugen und welche Arten von Anwendungen sie normalerweise programmieren.

This lab manual, written around software and hardware developments of the past ten years, focuses on the fundamentals of digital electronics and use of Max+Plus II software by Altera Corporation. Lab sequences start with digital gates and logic control circuits, progress to MSI devices, latches and flip-flops, and cover clock dependent circuits, and the LPM_MACRO functions available in the software.