Electrical and Computer Engineering
Design Using Programmable Gate Arrays
Bookstand Publishing 2008, ISBN 978-1-58909-486-4, 320 pages with downloadable complete Xilinx ISE WebPACK project files. The text announcement can be downloaded here.
This text is intended as a supplementary text and laboratory manual for undergraduate students in a contemporary course in digital logic and embedded systems. Professionals who have not had an exposure to the fine grained FPGA, the Verilog HDL, an EDA software tool or the new paradigm of the controller and datapath and the FSM will find that this text and the Xilinx Spartan-3E Starter Board provides the necessary experience in this emerging area of electrotechnology.
Embedded Design Using Programmable Gate Arrays describes the analysis and design of modern embedded systems using the field programmable gate array (FPGA). The FPGA has traditionally provided support for embedded design by implementing customized peripherals and controller and datapath algorithmic state machines. Although microprocessor-based computer systems have usually been used for the design of larger scale embedded systems, the paradigm of the FPGA now challenges that notion of such a fixed architecture especially with the constraints of real-time.
This new paradigm in embedded system design machine describes the Verilog behavioral synthesis of finite state machine as a controller and datapath architecture in digital signal processing (DSP), digital communications, digital control and data communication utilizing the FPGA, the integration of external interface hard peripherals and the implementation of a custom internal soft core peripherals and soft core processors.
The transition to embedded system design now in the massively parallel and fine grained architecture of the modern FPGA is described in-part by the translation of C/C++ program segments for real-time processing to a controller and datapath architecture or an algorithmic state machine. However, the emergence of the Xilinx 8-bit PicoBlaze and 32-bit MicroBlaze soft core processors now also challenges the conventional microprocessor with its fixed architecture for embedded system design.
Embedded Design Using Programmable Gate Arrays features the Xilinx Spartan-3E™ FPGA and the Digilent Basys Board and the Spartan-3E Starter Board, the Xilinx Integrated Synthesis Environment (ISE) WebPACK design environment in Verilog HDL, the Xilinx CORE Generator for LogiCORE Verilog modules and the Xilinx Embedded Development Kit (EDK) for the Xilinx 8-bit PicoBlaze soft core processor. The complete Xilinx ISE WebPACK Verilog source code modules for the projects delineated in the text and executing on the the Spartan-3E Starter Board are provided for download. A limited number of Xilinx ISE WebPACK projects can execute on the less expensive Diligent Spartan-3E Basys Board (www.digilentinc.com)
EE3622 Embedded System Design Projects
Here are some Laboratory projects used in the undergraduate ECE course that utilize the Spartan-3E Starter Board and the Xilinx ISE design environment (solutions are not generally available).
Rotary shaft encoder
SPI bus master-slave data transmission and solution
Square root calculation and sine-cosine output using LogiCORE CORDIC
Articles and Reviews
An excerpt from the text entitled DSP on the Spartan-3E Starter Board was published on Programmable Logic Design Line (www.pldesignline.com) and available for download here.
The IEEE Philadelphia Section sponsored a Workshop utilizing the text and a review is available here.
The Most Practical Verilog Book,
Chapter 1's C language to Verilog procedure is a tool that you can add directly to your toolbox. This C2Verilog procedure is the first of many thrusts into behavioral synthesis. Chapter 1 also has a decent introduction to Verilog, making this book a standalone volume for electrical engineers and computer scientists with a background in digital design and C language embedded systems.
Chapter 2 is an in-depth discussion of the Xilinx ISE, with an abundance of screen shots. There is really no other way to guide someone through such a tool, and the book's treatment is very thorough. Chapter 3 discusses applications on two readily available evaluations boards, showing how to interface to board peripherals such as display, mouse, and keyboard. This is usually a job for driver software, but if you have no CPU, this chapter describes what you have to do. Chapter 4 highlights some practical DSP applications complete with the background theory, equations, and Xilinx FIR LogiCore Compiler tool examples. Practical communications examples are also thrown into this chapter, including UART (serial port) transmitter and receiver Verilog source code.
If you are working with such FPGA parts, your toolbox would not be complete without some knowledge of softcore processors. Chapter 5 is a quick introduction to the PicoBlaze CPU. This chapter acts as a connection to other volumes within the subject of software design. The reader should have some additional background before making architectural design decisions between hardware and software implementations, though.
The text can be purchased at Bookstand Publishing
Announcement The text announcement can be downloaded here
Chapter One Verilog Hardware Description Language
Programmable Logic Devices
Hardware Description Language
Verilog Syntax and Concepts
Signal Data Types
Strings and Arrays
Structural Models in Verilog
User Defined Primitives
Behavioral Models in Verilog
Blocking and Non-Blocking Assignments
Functions and Tasks
C to Verilog Translation
FPGA and Microprocessor Comparison
Chapter Two Verilog Design Automation
Xilinx ISE WebPACK
Xilinx CORE Generator
Xilinx Verilog Language Templates
Xilinx Architecture Wizard
Xilinx LogiCORE Blocks
Warnings and Errors in Synthesis
Chapter Three Programmable
Gate Array Hardware
Spartan-3E Starter Board
Selection of an Evaluation Board
User Control File
Hardware Components and Peripherals
Crystal Clock Oscillator
Light Emitting Diodes
Push Buttons and Slide Switches
Rotary Shaft Encoder
Seven Segment Display
Liquid Crystal Display
PS/2 Mouse Port
Starter Board DAC
Basys Board DAC
Spartan-3E Starter Board
Preamplifier and ADC
Basys Board ADC
Auxiliary Hardware Peripherals
Chapter Four Digital Signal
Processing, Communications and Control
Sampling and Quantization
Discrete Time Sequences
Discrete Frequency Response
DSP Embedded System
IIR Digital Filter
FIR Digital Filter
Wavefront DSP System
Sine-Cosine Look-Up Table
Direct Digital Synthesis Compiler
Frequency Shift Keying
Phase Shift keying
Quaternary Phase Shift Keying
Linear Finite Shift Register
Pulse Width Modulation
Embedded Soft Core Processors
Programmable Gate Array Processors
Xilinx PicoBlaze Development Tools
Xilinx PicoBlaze Processor Architecture
Xilinx PicoBlaze Reference Projects
Programmable Amplifier and Analog-to-Digital Converter
Pulse Width Modulation and Control
Soft-core Processors and Peripherals
Project File Download