Synopsis Digital Circuit Design with an Introduction to CPLDs and FPGAs by : Steven T. Karris
This book is an undergraduate level textbook presenting a thorough discussion of state-of-the-art digital devices and circuits. It supplements our Electronic Devices and Amplifier Circuits, ISBN 0-9744239-4-7. It is self-contained; begins with the basics and ends with the latest developments of the digital technology. The intent is to prepare the reader for advanced digital circuit design and programming the powerful Complex Programmable Logic Devices (CPLDs), and Field Programmable Gate Arrays (FPGAs). The prerequisites for this text are just basic high-school math; Accordingly, it can be read and understood by high-school seniors, trade-school, community college, and 4-year university students. It is ideal for self-study.Chapter 1 is an introduction to the decimal, binary, octal, and hexadecimal numbers, their representation, and conversion from one base to another. Chapter 2 presents an introduction to arithmetic operations in binary, octal, and hexadecimal numbers. The tens complement and nines complements in the decimal system and the twos complement and ones complements in the binary system are discussed and illustrated with numerous examples. Chapter 3 begins with an introduction to sign magnitude representation of binary numbers. It concludes with a discussion on floating point arithmetic for representing large numbers and the IEEE standard that specifies single precision (32 bit) and double precision (64 bit) floating point representation of numbers. Chapter 4 describes the most commonly used binary codes. The Binary Coded Decimal (BCD), the Excess-3 Code, the 2*421 Code, the Gray Code, and the American Standard Code for Information Interchange (ASCII) code are introduced as well as the use of parity bits. Chapter 5 begins with the basic logic operations and continues with the fundamentals of Boolean algebra and the basic postulates and theorems as applied to electronic logic circuits. Truth tables are defined and examples are given to illustrate how they can be used to prove Boolean algebra theorems or equivalent logical expressions. Chapter 6 introduces the standard forms of expressing Boolean functions; the minterms and maxterms, also known as standard products and standard sums respectively. A procedure is also presented to show how one can convert one form to the other. This topic is essential in understanding the programming of Programmable Logic Arrays (PLAs) discussed in Chapter 11.Chapter 7 is an introduction to combinational logic circuits. It begins with methods of implementing logic diagrams from Boolean expressions, the derivation of Boolean expressions from logic diagrams, input and output waveforms, and the use of Karnaugh maps for simplifying Boolean expressions. Chapter 8 is an introduction to sequential logic circuits. It begins with a discussion of the different types of flip flops, and continues with the analysis and design of binary counters, registers, ring counters, and ring oscillators. Chapter is an introduction to computer memory devices. We discuss the random-access memory (RAM), read-only memory (ROM), row and column decoders, memory chip organization, static RAMs (SRAMs) dynamic RAMs (DRAMs), volatile, nonvolatile, programmable ROMs (PROMs), Erasable PROMs (EPROMs), Electrically Erasable PROMs (EEPROMs), flash memories, and cache memory. Chapter 10 begins with an introduction to the basic components of a digital computer. It continues with a discussion of the basic microprocessor operations, and concludes with the description of more advanced arithmetic and logic operations.We consider Chapter 11 as the highlight of this text. It is an introduction to Field Programmable Devices (FPDs), also referred to as Programmable Logic Devices (PLDs). It begins with the description and applications of Programmable Logic Arrays (PLAs), continues with the description of Simple PLDs (SPLDs) and Complex PLDs (CPLDs), and concludes with the description of Field Programmable Gate Arrays (FPGAs).This text includes also four appendices; Appendix A is an overview of the Advanced Boolean Equation Language (ABEL) which is an industry-standard Hardware Description Language (HDL) used in Programmable Logic Devices (PLDs). Appendix B describes the VHSIC Hardware Description Language briefly referred to as VHDL. This language was developed to be used for documentation, verification, and synthesis of large digital designs. Appendix C introduces the Verilog Hardware Description Language (HDL). Like VHDL introduced in Appendix B, Verilog is a programming language used to describe a digital system and its components. Appendix D is a brief discussion on the boundary-scan architecture and the new technology trends that make using boundary-scan essential for the reduction in development and production costs.