Introduction to Digital Systems: Modeling, Synthesis, and Simulation Using VHDL
()
About this ebook
Digital systems design requires rigorous modeling and simulation analysis that eliminates design risks and potential harm to users. Introduction to Digital Systems: Modeling, Synthesis, and Simulation Using VHDL introduces the application of modeling and synthesis in the effective design of digital systems and explains applicable analytical and computational methods. Through step-by-step explanations and numerous examples, the author equips readers with the tools needed to model, synthesize, and simulate digital principles using Very High Speed Integrated Circuit Hardware Description Language (VHDL) programming.
Extensively classroom-tested to ensure a fluid presentation, this book provides a comprehensive overview of the topic by integrating theoretical principles, discrete mathematical models, computer simulations, and basic methods of analysis. Topical coverage includes:
-
Digital systems modeling and simulation
-
Integrated logic
-
Boolean algebra and logic
-
Logic function optimization
-
Number systems
-
Combinational logic
-
VHDL design concepts
-
Sequential and synchronous sequential logic
Each chapter begins with learning objectives that outline key concepts that follow, and all discussions conclude with problem sets that allow readers to test their comprehension of the presented material. Throughout the book, VHDL sample codes are used to illustrate circuit design, providing guidance not only on how to learn and master VHDL programming, but also how to model and simulate digital circuits.
Introduction to Digital Systems is an excellent book for courses in modeling and simulation, operations research, engineering, and computer science at the upper-undergraduate and graduate levels. The book also serves as a valuable resource for researchers and practitioners in the fields of operations research, mathematical modeling, simulation, electrical engineering, and computer science.
Related to Introduction to Digital Systems
Related ebooks
Digital Design of Signal Processing Systems: A Practical Approach Rating: 5 out of 5 stars5/5Digital Engineering: Complex System Design Rating: 0 out of 5 stars0 ratingsDigital Electronics with Arduino: Learn How To Work With Digital Electronics And MicroControllers Rating: 5 out of 5 stars5/5Modeling and Simulation of Discrete Event Systems Rating: 0 out of 5 stars0 ratingsBuilding Software for Simulation: Theory and Algorithms, with Applications in C++ Rating: 0 out of 5 stars0 ratingsCognitive Computing and Big Data Analytics Rating: 0 out of 5 stars0 ratingsDigital Electronics for Beginners: 1, #1 Rating: 0 out of 5 stars0 ratingsEnterprise Artificial Intelligence Transformation Rating: 0 out of 5 stars0 ratingsData Science with .NET and Polyglot Notebooks: Programmer's guide to data science using ML.NET, OpenAI, and Semantic Kernel Rating: 0 out of 5 stars0 ratingsMastering C: Advanced Techniques and Tricks Rating: 0 out of 5 stars0 ratingsDeep Belief Nets in C++ and CUDA C: Volume 2: Autoencoding in the Complex Domain Rating: 0 out of 5 stars0 ratingsObject –Oriented Analysis and Design Using UML Rating: 5 out of 5 stars5/5C++ Advanced Programming: Building High-Performance Applications Rating: 0 out of 5 stars0 ratingsSystems Programming: Concepts and Techniques Rating: 0 out of 5 stars0 ratingsPragmatic Machine Learning with Python: Learn How to Deploy Machine Learning Models in Production Rating: 0 out of 5 stars0 ratingsEmbedded Systems Programming with C++: Real-World Techniques Rating: 0 out of 5 stars0 ratingsAn Elementary Introduction to Statistical Learning Theory Rating: 0 out of 5 stars0 ratingsPLCs for Beginners: An introductory guide to building robust PLC programs with the Structured Text language Rating: 0 out of 5 stars0 ratingsMastering the Craft: Unleashing the Art of Software Engineering Rating: 0 out of 5 stars0 ratingsMachine Learning Mastery for Engineers Rating: 0 out of 5 stars0 ratingsC++ Programming: Effective Practices and Techniques Rating: 0 out of 5 stars0 ratingsModel-Based System Architecture Rating: 0 out of 5 stars0 ratingsAI for Healthcare with Keras and Tensorflow 2.0: Design, Develop, and Deploy Machine Learning Models Using Healthcare Data Rating: 0 out of 5 stars0 ratingsAdvanced Backend Code Optimization Rating: 0 out of 5 stars0 ratingsDataflow and Reactive Programming Systems Rating: 0 out of 5 stars0 ratingsASP.NET Core 1.0 High Performance Rating: 0 out of 5 stars0 ratings
Mathematics For You
What If?: Serious Scientific Answers to Absurd Hypothetical Questions Rating: 5 out of 5 stars5/5Quantum Physics for Beginners Rating: 4 out of 5 stars4/5My Best Mathematical and Logic Puzzles Rating: 4 out of 5 stars4/5Algebra - The Very Basics Rating: 5 out of 5 stars5/5Basic Math & Pre-Algebra For Dummies Rating: 4 out of 5 stars4/5The Little Book of Mathematical Principles, Theories & Things Rating: 3 out of 5 stars3/5Relativity: The special and the general theory Rating: 5 out of 5 stars5/5Calculus Made Easy Rating: 4 out of 5 stars4/5Algebra II For Dummies Rating: 3 out of 5 stars3/5How to Solve It: A New Aspect of Mathematical Method Rating: 4 out of 5 stars4/5Math Magic: How To Master Everyday Math Problems Rating: 3 out of 5 stars3/5Alan Turing: The Enigma: The Book That Inspired the Film The Imitation Game - Updated Edition Rating: 4 out of 5 stars4/5Logicomix: An epic search for truth Rating: 4 out of 5 stars4/5The Everything Everyday Math Book: From Tipping to Taxes, All the Real-World, Everyday Math Skills You Need Rating: 5 out of 5 stars5/5Precalculus: A Self-Teaching Guide Rating: 4 out of 5 stars4/5Standard Deviations: Flawed Assumptions, Tortured Data, and Other Ways to Lie with Statistics Rating: 4 out of 5 stars4/5Basic Math & Pre-Algebra Workbook For Dummies with Online Practice Rating: 4 out of 5 stars4/5Mental Math Secrets - How To Be a Human Calculator Rating: 5 out of 5 stars5/5Real Estate by the Numbers: A Complete Reference Guide to Deal Analysis Rating: 0 out of 5 stars0 ratingsAlgebra I Workbook For Dummies Rating: 3 out of 5 stars3/5Pre-Calculus For Dummies Rating: 5 out of 5 stars5/5ACT Math & Science Prep: Includes 500+ Practice Questions Rating: 3 out of 5 stars3/5Intermediate Algebra Rating: 0 out of 5 stars0 ratingsMental Math: Tricks To Become A Human Calculator Rating: 5 out of 5 stars5/5The Golden Ratio: The Divine Beauty of Mathematics Rating: 5 out of 5 stars5/5Sneaky Math: A Graphic Primer with Projects Rating: 0 out of 5 stars0 ratingsThe Math of Life and Death: 7 Mathematical Principles That Shape Our Lives Rating: 4 out of 5 stars4/5
Reviews for Introduction to Digital Systems
0 ratings0 reviews
Book preview
Introduction to Digital Systems - Mohammed Ferdjallah
Preface
Digital system design requires rigorous modeling and simulation analysis that eliminates design risks and potential harm to users. Thus, the educational objective of this book is to provide an introduction to digital system design through modeling, synthesis, and simulation computer-aided design (CAD) tools. This book provides an introduction to analytical and computational methods that allow students and users to model, synthesize, and simulate digital principles using very high-speed integrated-circuit hardware description language (VHDL) programming. We present the practical application of modeling and synthesis to digital system design to establish a basis for effective design and provide a systematic tutorial of how basic digital systems function. In doing so, we integrate theoretical principles, discrete mathematical models, computer simulations, and basics methods of analysis. Students and users will learn how to use modeling, synthesis, and simulation concepts and CAD tools to design models for digital systems that will allow them to gain insights into their functions and the mechanisms of their control. Students will learn how to integrate basic models into more complex digital systems. Although the approach designed in this book focuses on undergraduate students, it can also be used for modeling and simulation students who have a limited engineering background with an inclination to digital systems for visualization purposes.
The book includes nine chapters. Each chapter begins with learning objectives that provide a brief overview of the concepts that the reader is about to learn. In addition, the learning objectives can be used as points for classroom discussion. Each chapter ends with problems that will enable students to practice and review the concepts covered in the chapter. Chapter 1 introduces modeling and simulation and its role in digital system evolution. The chapter provides a brief history of modeling and simulation in digital systems, VHDL programming, programmable and reconfigurable systems, and advantages of using modeling and simulation in digital system design. Chapter 2 introduces the mathematical foundations of digital systems and logical reasoning. Described are Boolean theory, its axioms and theorems, and basic logic gates as well as early modeling in digital system design using algebraic manipulations.
Chapter 3 provides an overview of number representations, number conversions, and number codes. The relationships between decimal representation and the less obvious digital number representations are described. Chapter 4 provides a brief history of VHDL programming, the reasons for its creation, and its impact on the evolution of digital systems and modern computer systems. Described are CAD tools, programming structure, and instructions and syntax of VHDL. Chapter 5 provides a simplified view of the progression of integrated systems and their application in digital logic circuits and computer systems. The role of modeling and simulation in the optimization and verification of digital system design at the transistor level is described. Chapter 6 provides graphical means and Karnaugh maps to streamline and simplify digital system design using visualization schemes. Although these methods are used only when designing circuits with a small number of gates, they provide rudimentary means for the design of automatic CAD tools.
Chapter 7 introduces combinational logic and its applications in multiplexers, decoders, and arithmetic and logic circuits and systems. Chapter 8 introduces sequential logic, with a focus on sequential logic elementary circuits and their applications in complex circuits such as counters and registers. Chapter 9 provides an overview of finite-state machines, especially the synchronous sequential circuit models used to design simple finite-state machines. Also described is asynchronous sequential logic and its advantages and disadvantages for digital systems. All chapters illustrate circuit design using VHDL sample codes that allow students not only to learn and master VHDL programming but also to model and simulate digital circuits.
Mohammed Ferdjallah
Chapter 1
Digital System Modeling and Simulation
1.1 Objectives
The objectives of the chapter are to:
Describe digital systems
Provide a brief history of digital systems
Describe standard chips
Describe custom-designed chips
Describe programmable logic devices
Describe field-programmable gated arrays
1.2 Modeling, Synthesis, and Simulation Design
Modeling and simulation have their roots in digital systems. Long before they became the basis of an interdisciplinary field, modeling and simulation were used extensively in digital system design. As electronic and computer technology advanced, so did modeling and simulation concepts. Today, the many computer-aided design (CAD) tools are pushing the limit of modeling, synthesis, and simulation technology. We focus on the implementation of modeling, synthesis, and simulation in digital systems.
A digital system is a system that takes digital signals as inputs, processes them, and produces digital output signals. A digital signal is a signal in which discrete steps are used to represent information and change values only at discrete (fixed) time intervals. In contrast, analog signals have continuous
variations in signal amplitude over time. At a given instant of time, an analog signal has infinite possible values. A digital signal has discrete amplitude and time. Digital systems are very useful in the areas of signal processing (i.e., audio, images, speech, etc.), computing, communication, and data storage, among others. Digital systems are so commonplace in today's world that we tend to miss seeing them. Almost all electronic systems are partially or totally digitally based. Of course, real-world signals are all analog, and interfacing to the outside world requires conversion of a signal (information) from digital to analog. However, simplicity, versatility, repeatability, and the ability to produce large and complex (as far as functionality is concerned) systems economically make them excellent for processing and storing information (data).
1.3 History of Digital Systems
One of the earliest digital systems was the dial telephone system. Pulses generated by activating a spinning dial were counted and recorded by special switches in a central office. After all the numbers had been dialed and recorded, switches were set to connect the user to the desired party. A switch is a digital device that can take one of two states: open or closed.
In 1939, Harvard University built the Harvard Mark I, which went into operation in 1943. It was used to compute ballistic tables for the U.S. Navy. In the next few years, more machines were built in research laboratories around the world. The ENIAC (Electronic Numerical Integrator and Computer) was placed in operation at the Moore School of Electrical Engineering at the University of Pennsylvania, component by component, beginning with the cycling unit and an accumulator in June 1944. This was followed in rapid succession by the initiating unit and function tables in September 1945 and the divider and square-root unit in October 1945. Final assembly of this primitive computer system took place during the fall of 1945.
The first commercially produced computer was Univac I, which went into operation in 1951. More large digital computers were introduced in the next decade. These first-generation computers used vacuum tubes and valves as primary electronic components and were bulky, expensive, and consumed immense amounts of power. The invention of the transistor in 1948 at the Bell Telephone Laboratories by physicists John Bardeen, Walter Brattain, and William Shockley revolutionized the way that computers were built. Transistors are used as electrical switches that can be in the on
or off
state and so can be used to build digital circuits and systems. Transistors were used initially as discrete components, but with the arrival of integrated circuit (IC) technology, their utility increased exponentially. ICs are inexpensive when produced in large numbers, reliable, and consume much less power than do vacuum tubes. IC technology makes it possible to build complete digital building blocks into single, minute silicon chips.
The size of transistors has been shrinking ever since their birth, and today, a complete computer is on one chip (microprocessor), and even large systems are being integrated into a single chip (system-on-a-chip).
1.4 Standard Logic Devices
Many commonly used logic circuits are readily available as integrated circuits. These are referred to as standard chips because their functionality and configuration meet agreed-upon standards. These chips generally have a few hundred transistors at most. They can be bought off-the-shelf, and depending on the application, the designer can build supporting circuitry on a PCB (printed circuit board) or breadboard. The advantages of using standard chips are their ease of use and ready availability. However, their fixed functionality has proved disadvantageous. Also, the fact that they generally do not have complex functionality means that many such chips have to be put together on a PCB, leading to a requirement for more area and components. Examples of standard chips are those in the 7400 series, such as the 7404 (hex inverters) and 7432 (quad two-input OR gates).
1.5 Custom-Designed Logic Devices
Chips designed to meet the specific requirements of an application are known as application-specific integrated circuits (ASICs) or custom-designed chips. The logic chip is designed from scratch. The logic circuitry is designed according to the specifications and then implemented in an appropriate technology. The main advantage of ASICs is that since they are optimized for a specific application, they perform better than do functionally equivalent circuits built from off-the-shelf ICs or programmable logic devices. They occupy very little area, as all of the logic can be built into one chip. Thus, less PCB area would be required, leading to some cost savings. The disadvantage of ASICs is that they can be justifiable economically only when there is bulk production of the ICs. Typically, hundreds of thousands of ASICs must be manufactured to recover the expenditures necessary in the design, manufacturing and testing stages. Another drawback of the custom-design approach is that it requires the work of highly skilled engineers in the design, manufacturing, and test stages. The design time needed for these chips is also high, as a lot of verification has to be carried out to check for correct functionality. The circuitry in the chip cannot be altered once it is fabricated.
1.6 Programmable Logic Devices
Advances in VLSI technology made possible the design of special chips, which can be configured by a user to implement different logic circuits. These chips, known as programmable logic devices (PLDs), have a very general structure and contain programmable switches, which allow the user to configure the internal circuitry to perform the desired function. The programmer (end user) has simply to change the configuration of these switches. This is usually done by writing a program in a hardware description language (HDL) such as VHDL or Verilog and downloading
it into the chip. Most types of PLDs are reprogrammable for a fixed number of times (generally, a very high number). This makes PLDs excellent for use in prototyping of ASICs and standard chips. A designer can program a PLD to perform a particular function and then make changes and reprogram it for retesting on the same chip. Also, there is a great cost savings in using a device that is reprogrammable for prototyping purposes. The main disadvantage of PLDs is that they may not be the best performing. The performance of a functionally equivalent ASIC or standard chip is likely to be better. This is because all functions have to be realized from existing blocks of logic inside the PLD. The most popular types of PLDs include:
Simple programmable logic devices (SPLDs)
Programmable array logic (PAL)
Programmable logic array (PLA)
Generic array logic (GAL)
Complex programmable logic devices (CPLDs)
FPGA (field-programmable gate arrays)
FPIC (field-programmable interconnect)
These different types of PLDs vary in their internal architectures. Different manufacturers of PLDs choose different architectures for implementing the logic blocks and the programmable interconnection switch matrices. FPGAs have the highest gate count among the various PLDs, which can accommodate much larger designs than can SPLDs and CPLDs. Today's FPGAs have millions of transistors in one chip. PALs and PLAs generally carry just a few hundred or a few thousand gates. PLD manufacturers include, among others, Altera Corporation, Xilinx Inc., Lattice Semiconductor, Cypress Semiconductor, Atmel, Actel, Lucent Technologies, and QuickLogic.
1.7 Simple Programmable Logic Devices
Simple programmable logic devices (SPLDs) include programmable logic arrays (PLAs) and programmable array logic (PALs). Early SPLDs were simple and consisted of an array of AND gates driving an array of OR gates. An AND gate (known as an AND plane or AND array) feeds a set of OR gates (an OR plane). This helps in realizing a function in the sum-of-products form.
Figure 1.1 shows the general architecture of PLAs and PALs. The most common housing of PLAs and PALs was a 20-pin dual-in-line package (DIP). The difference between PALs and PLAs is that in PLA, both the AND and OR planes are programmable, whereas in PALs, the AND plane is programmable but the OR plane is fixed. PLAs were expensive to manufacture and offered somewhat poor performances, due to propagation delays. Therefore, PALs were introduced for their ease of manufacturability, lower cost of production, and better performance. PALs usually contain flip-flops connected to the OR gates to implement sequential circuits. Both PLAs and PALs use antifuse switches, which remain in a high-impedance state until programmed into a low-impedance (fused) state. These devices are generally programmed only once. Generic array logic devices (GALs) are similar to PALs but can be reprogrammed. PLAs, PALs, and GALs are programmed using a PAL programmer device (a burner).
Figure 1.1 Schematic Structure of PALs and PLAs
1.8 Complex Programmable Logic Devices
PALs and PLAs are useful for small digital circuits which do not require more than 32 inputs and outputs. To implement circuits that need more inputs and outputs, multiple PLAs or PALs can be used. However, this will compromise the performance of the design and also occupy more area on the PCB. In such situations, a complex programmable device (CPLD) would be a better choice. A CPLD comprises multiple circuit blocks on a single chip. Each block is similar to a PLA or PAL. There could be as few as two such blocks in a CPLD and 100 or more such blocks in larger CPLDs. These logic blocks are interconnected through a programmable switch matrix or interconnection array, which allows all blocks of the CPLD to be interconnected. Figure 1.2 shows the internal structure of a CPLD. As a result of this configuration, the architecture of the CPLD is less flexible. However, the propagation delay of a CPLD is predictable. This advantage allowed CPLDs to emulate ASIC systems, which operate at higher frequencies.
Figure 1.2 CPLD Internal Structure
1.9 Field-Programmable Gate Arrays
Field-programmable gate arrays (FPGAs) differ from the other PLDs and generally offer the highest logic capacity. An FPGA consists of an array of complex logic blocks (CLBs) surrounded by programmable I/O blocks (IOBs) and connected by a programmable interconnection network. The IOBs provide the control between the input–output package pins and the internal signal lines, and the programmable interconnect resources provide the correct paths to connect the inputs and outputs of CLBs and IOBs into the appropriate networks. The logic cells combinational logic may be implemented physically as a small lookup table memory (LUT) or a set of multiplexers and gates. An LUT is a 1-bit-wide memory array; the memory address lines are logic block inputs and the 1-bit-memory output is the lookup table output.
A typical FPGA may contain tens of thousands of (configurable) logic blocks and an even greater number of flip-flops. The user's logic function is implemented by closing the switches in the interconnect matrix that specify the logic function for each logic cell. Complex designs are then created by combining these basic blocks to create the desired circuit.