Request for consultation

Thanks for your request. You’ll soon be chatting with a consultant to get the answers you need.
{{formPostErrorMessage.message}} [{{formPostErrorMessage.code}}]
First Name is required. 'First Name' must contain at least 0 characters 'First Name' cannot exceed 0 characters Please enter a valid First Name
Last Name is required. 'Last Name' must contain at least 0 characters 'Last Name' cannot exceed 0 characters Please enter a valid Last Name
Institution is required.
Discipline is required.
Why are you contacting us today? is required. 'Why are you contacting us today?' must contain at least 0 characters 'Why are you contacting us today?' cannot exceed 0 characters Please enter a valid Why are you contacting us today?

Advanced Digital Logic Design Using VHDL, State Machines, and Synthesis for FPGA's 1st Edition

Sunggu Lee

  • Published
  • 488 Pages


This textbook is intended to serve as a practical guide for the design of complex digital logic circuits such as digital control circuits, network interface circuits, pipelined arithmetic units, and RISC microprocessors. It is an advanced digital logic design textbook that emphasizes the use of synthesizable VHDL code and provides numerous fully worked-out practical design examples including a Universal Serial Bus interface, a pipelined multiply-accumulate unit, and a pipelined microprocessor for the ARM THUMB architecture.

Sunggu Lee, Pohang University of Science and Technology

Sunggu Lee received the B.S.E.E. degree with highest distinction from the University of Kansas, Lawrence, in 1985 and the M.S.E. and Ph.D. degrees from the University of Michigan, Ann Arbor, in 1987 and 1990, respectively. He is currently an Associate Professor in the Department of Electronic and Electrical Engineering at the Pohang University of Science and Technology (POSTECH), Pohang, Korea. Prior to this appointment, he was an Assistant Professor in the Department of Electrical Engineering at the University of Delaware in Newark, Delaware, U.S.A. From June 1997 to June 1998, he spent one year as a Visiting Scientist at the IBM T. J. Watson Research Center. His research interests are in parallel computing using clusters, fault-tolerant computing, and real-time computing.
  • Emphasis on "advanced" digital logic design.
  • Uses synthesizable VHDL code throughout. Each code example can be synthesized into working hardware.
  • Includes many fully worked-out practical design examples. Students and engineers reading this textbook can learn many useful details about such designs.
  • Emphasizes the use of a systematic problem solving approach based on state machines. Student will learn how to approach a complex digital logic circuit design problem in a systematic manner.

Chapter 1 Condensed Overview of Introductory Digital Logic Design
1.1 Number Formats
1.2 Combinational Logic
1.2.1 Combinational Logic Devices
1.2.2 Combinational Logic Circuit Design
1.3 Sequential Logic
1.3.1 Sequential Logic Devices
1.3.2 Synchronous Sequential Circuit Design
1.3.3 Hazards and Glitches
1.3.4 Mestastability

Chapter 2 Digital Logic Design Using Hardware Description Languages
2.1 Hardware description Languages
2.2 Design Flow
2.3 Synthesis
2.4 Register Transfer Level Notation
2.5 Logic Simulation
2.6 Properties of Actual Circuits

Chapter 3 Introduction to VHDL and Test Benches
3.1 Overview
3.2 VHDL Basics
3.2.1 Entity and Architecture
3.2.2 Signals, Data, Types, Constants and Operators
3.2.3 Libraries and Packages
3.2.4 Structural and Behavioral
3.3 Testing and the Test Bench
3.3.1 Manufacturing Testing
3.3.2 Functional Testing
3.3.3 Test Benches
3.3.4 VHDL Test Bench
3.4 More Advanced VHDL Concepts
3.4.1 Concurrent and Sequential VHDL
3.4.2 Variables and Signals
3.4.3 Delay Modeling
3.4.4 Attributes
3.4.5 Procedures and Functions
3.4.6 Generics and Modeling a Bidirectional Bus
3.5 Construction of Complete VHDL Programs
3.5.1 Combinational Logic Circuits
3.5.2 Sequential Logic Circuits
3.5.3 Behavioral Modeling of More Complex Circuits

Chapter 4 High-Level VHDL Coding for Synthesis
4.1 Register Transfer Level Notation
4.2 Combinational Logic Synthesis
4.2.1 Using Concurrent Signal Assignment Statements for Combinational Logic
4.2.2 Using Process Blocks for Combinational Logic
4.2.3 Complex Combinational Logic Example
4.3 Sequential Logic Synthesis
4.4 Synthesis Heuristics
4.5 Synthesis Using a Commercial Tool
4.6 High-Level VHDL Coding

Chapter 5 State Machine Design
5.1 Manual State Machine Design
5.1.1 Pseudocode
5.1.2 RTL Program
5.1.3 Datapath
5.1.4 State Diagram
5.1.5 Control Logic
5.1.6 State Machine Design Using ASM Charts
5.2 Automatic Synthesis-Based State Machine Design
5.2.1 Automatic Synthesis-Based Design Procedure
5.2.2 Algorithm to HDL Code Conversion
5.3 Design Example: Vending Machine
5.3.1 Automatic State Machine Design for a Vending Machine
5.3.2 Manual State Machine Design for a Vending Machine
5.3.3 Timing Diagram
5.3.4 Correspondence Between Automatic and Manual Designs
5.4 Design Example: LCD Controller
5.4.1 Target LCD Module
5.4.2 VHDL Solution

Chapter 6 FPGA and Other Programmable Logic Devices
6.1 Programmable Logic Devices
6.1.1 Circuit Customization
6.1.2 Programmable Logic Arrays
6.1.3 Programmable Read Only Memories
6.1.4 Programmable AND-Array Logic
6.2 Field Programmable Gate Arrays
6.2.1 Gate Arrays
6.2.2 FPGA Overview
6.2.3 Xilinx FPGA Example
6.2.4 FPGA Configuration
6.2.5 Xilinx Spartan-II FPGA Configuration Example
6.2.6 Boundary Scan

Chapter 7 Design of a USB Protocol Analyzer
7.1 Overview of USB Full-Speed Mode
7.1.1 Packet Transfer Protocol
7.1.2 Initialization Sequence
7.1.3 Physical Layer Interface
7.1.4 USB Packets
7.1.5 Cyclic Redundancy Checks
7.1.6 Observation of Actual USB Signals
7.2 Design Overview
7.2.1 State Machine
7.2.2 Subcircuit Partitioning
7.3 VHDL Solution
7.3.1 Digital Phase Locked Loop
7.3.2 NRZI-to-Binary Converter
7.3.3 CRC Checker Subcircuits
7.3.4 Packet ID Recognizer
7.3.5 State Machine Subcircuit
7.3.6 Top-Level Circuit
7.3.7 Test Bench Code for Entire Circuit
7.4 Simulation Results

Chapter 8 Design of Fast Arithmetic Units
8.1 Adder Designs
8.1.1 Ripple Carry adder
8.1.2 Carry Lookahead Adder
8.1.3 Carry Save Adder
8.2 Multiplier Designs
8.2.1 Combinational Multiplier
8.2.2 Sequential Multiplier
8.2.3 Fast Multiplication
8.2.4 Multiply-Accumulate Units
8.3 Pipelined Functional Units
8.3.1 Introduction to Pipelining
8.3.2 Pipelined Multiply-Accumulate Units
8.4 HDL Implementations
8.4.1 HDL Implementation Overview
8.4.2 HDL Design for a Pipelined Multiply-Accumulate Unit
8.4.3 Test Bench and Simulation Results

Chapter 9 Design of a Pipelined RISC Microprocessor
9.1 Introduction to Microprocessors
9.1.1 Reduced Instruction Set Computers
9.1.2 Basic Computer Operation
9.2 The THUMB Microprocessor Architecture
9.2.1 Thumb Programming Model
9.2.2 Overview of the THUMB Instruction Set
9.3 Instruction Pipeline Design
9.3.1 Pipeline Hazards
9.3.2 Hazard Prevention Techniques
9.3.3 Pipeline Hazard Solutions Adopted
9.4 HDL Implementation of the THUMB Pipeline
9.4.1 VHDL THUMB Implementation
9.4.2 Test Bench Based Verification

A THUMB Instruction Set Listing

Cengage provides a range of supplements that are updated in coordination with the main title selection. For more information about these supplements, contact your Learning Consultant.


Companion Website for Hwang’s Digital Logic and Microprocessor Design with Interfacing

ISBN: 9781305859517
The Companion Site contains free helpful instructor-only resources, including a set of PowerPoint® Slides containing Lecture Notes for instructors. The Instructor’s Solutions Manual, Labs, and a supplemental chapter on Implementation Technologies are also available for download from this secure website. A verified instructor log-in is required to access the site.

Instructor’s Solutions Manual

ISBN: 9781337115568
Complimentary to faculty who adopt the text, the Instructor’s Solutions Manual contains solutions to all the problems in the main text. For your convenience, this manual is available for download from the password protected instructor’s section of the companion website. A verified instructor log-in is required to access the site.