Book description
Explores the unique hardware programmability of FPGA-based embedded systems, using a learn-by-doing approach to introduce the concepts and techniques for embedded SoPC design with Verilog
An SoPC (system on a programmable chip) integrates a processor, memory modules, I/O peripherals, and custom hardware accelerators into a single FPGA (field-programmable gate array) device. In addition to the customized software, customized hardware can be developed and incorporated into the embedded system as well—allowing us to configure the soft-core processor, create tailored I/O interfaces, and develop specialized hardware accelerators for computation-intensive tasks.
Utilizing an Altera FPGA prototyping board and its Nios II soft-core processor, Embedded SoPC Design with Nios II Processor and Verilog Examples takes a "learn by doing" approach to illustrate the hardware and software design and development process by including realistic projects that can be implemented and tested on the board.
Emphasizing hardware design and integration throughout, the book is divided into four major parts:
Part I covers HDL and synthesis of custom hardware
Part II introduces the Nios II processor and provides an overview of embedded software development
Part III demonstrates the design and development of hardware and software of several complex I/O peripherals, including a PS2 keyboard and mouse, a graphic video controller, an audio codec, and an SD (secure digital) card
Part IV provides several 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
While designing and developing an embedded SoPC can be rewarding, the learning can be a long and winding journey. This book shows the trail ahead and guides readers through the initial steps to exploit the full potential of this emerging methodology.
Table of contents
- Cover Page
- Title Page
- Copyright
- DEDICATION
- CONTENTS
- PREFACE
- ACKNOWLEDGMENTS
- CHAPTER 1: OVERVIEW OF EMBEDDED SYSTEM
- PART I: BASIC DIGITAL CIRCUITS DEVELOPMENT
-
PART II: BASIC NIOS II SOFTWARE DEVELOPMENT
- CHAPTER 9: NIOS II PROCESSOR OVERVIEW
-
CHAPTER 10: NIOS II SYSTEM DERIVATION AND LOW-LEVEL ACCESS
- 10.1 DEVELOPMENT FLOW REVISITED
- 10.2 NIOS II HARDWARE GENERATION TUTORIAL
- 10.3 NIOS II SBT GUI TUTORIAL
- 10.4 SYSTEM ID CORE FOR HARDWARE-SOFTWARE CONSISTENCY
- 10.5 DIRECT LOW-LEVEL I/O ACCESS
- 10.6 ROBUST LOW-LEVEL I/O ACCESS
- 10.7 SOME C TECHNIQUES FOR LOW-LEVEL I/O OPERATIONS
- 10.8 SOFTWARE DEVELOPMENT
- 10.9 BIBLIOGRAPHIC NOTES
- 10.10 SUGGESTED EXPERIMENTS
- 10.11 COMPLETE PROGRAM LISTING
-
CHAPTER 11: PREDESIGNED NIOS II I/O PERIPHERALS
- 11.1 OVERVIEWS
- 11.2 PIO CORE
- 11.3 JTAG UART CORE
- 11.4 INTERNAL TIMER CORE
- 11.5 ENHANCED FLASHING-LED NIOS II SYSTEM
- 11.6 SOFTWARE DEVELOPMENT OF ENHANCED FLASHING-LED SYSTEM
- 11.7 DEVICE DRIVER ROUTINES
- 11.8 TASK ROUTINES
- 11.9 SOFTWARE CONSTRUCTION AND TESTING
- 11.10 BIBLIOGRAPHIC NOTES
- 11.11 SUGGESTED EXPERIMENTS
- 11.12 COMPLETE PROGRAM LISTING
- CHAPTER 12: PREDESIGNED NIOS II I/O DRIVERS AND HAL API
- CHAPTER 13: INTERRUPT AND ISR
-
PART III: CUSTOM I/O PERIPHERAL DEVELOPMENT
- CHAPTER 14: CUSTOM I/O PERIPHERAL WITH PIO CORES
- CHAPTER 15: AVALON INTERCONNECT AND SOPC COMPONENT
-
CHAPTER 16: SRAM AND SDRAM CONTROLLERS
- 16.1 MEMORY RESOURCES OF DE1 BOARD
- 16.2 BRIEF OVERVIEW OF TIMING AND CLOCK MANAGEMENT
- 16.3 OVERVIEW OF SRAM
- 16.4 SRAM CONTROLLER IP CORE
- 16.5 OVERVIEW OF DRAM
- 16.6 OVERVIEW OF SDRAM
- 16.7 SDRAM CONTROLLER AND PLL
- 16.8 TESTING SYSTEM
- 16.9 BIBLIOGRAPHIC NOTES
- 16.10 SUGGESTED EXPERIMENTS
- 16.11 COMPLETE PROGRAM LISTING
-
CHAPTER 17: PS2 KEYBOARD AND MOUSE
- 17.1 INTRODUCTION
- 17.2 PS2 RECEIVING SUBSYSTEM
- 17.3 PS2 TRANSMITTING SUBSYSTEM
- 17.4 COMPLETE PS2 SYSTEM
- 17.5 PS2 CONTROLLER IP CORE DEVELOPMENT
- 17.6 PS2 DRIVER
- 17.7 KEYBOARD DRIVER
- 17.8 MOUSE DRIVER
- 17.9 TEST
- 17.10 USE OF BOOK'S CUSTOM IP CORES
- 17.11 BIBLIOGRAPHIC NOTES
- 17.12 SUGGESTED EXPERIMENTS
- 17.13 COMPLETE PROGRAM LISTING
-
CHAPTER 18: VGA CONTROLLER
- 18.1 INTRODUCTION
- 18.2 VGA SYNCHRONIZATION
- 18.3 SRAM-BASED VIDEO RAM CONTROLLER
- 18.4 PALETTE CIRCUIT
- 18.5 VIDEO CONTROLLER IP CORE DEVELOPMENT
- 18.6 VIDEO DRIVER
- 18.7 MOUSE PROCESSING ROUTINES
- 18.8 TESTING PROGRAM
- 18.9 BITMAP FILE PROCESSING
- 18.10 BIBLIOGRAPHIC NOTES
- 18.11 SUGGESTED EXPERIMENTS
- 18.12 SUGGESTED PROJECTS
- 18.13 COMPLETE PROGRAM LISTING
- CHAPTER 19: AUDIO CODEC CONTROLLER
-
CHAPTER 20: SD CARD CONTROLLER
- 20.1 OVERVIEW OF SD CARD
- 20.2 SPI CONTROLLER
- 20.3 SPI CONTROLLER IP CORE DEVELOPMENT
- 20.4 SD CARD PROTOCOL
- 20.5 SPI AND SD CARD DRIVER
- 20.6 FILE ACCESS
- 20.7 TESTING PROGRAM
- 20.8 PERFORMANCE OF SD CARD DATA TRANSFER
- 20.9 BIBLIOGRAPHIC NOTES
- 20.10 SUGGESTED EXPERIMENTS
- 20.11 SUGGESTED PROJECTS
- 20.12 COMPLETE PROGRAM LISTING
-
PART IV: HARDWARE ACCELERATOR CASE STUDIES
- CHAPTER 21: GCD ACCELERATOR
-
CHAPTER 22: MANDELBROT SET FRACTAL ACCELERATOR
- 22.1 INTRODUCTION
- 22.2 FIXED-POINT ARITHMETIC
- 22.3 SOFTWARE IMPLEMENTATION OF CALC_FRAC_POINT()
- 22.4 HARDWARE IMPLEMENTATION OF CALC_FRAC_POINT()
- 22.5 MANDELBROT SET FRACTAL ACCELERATOR IP CORE DEVELOPMENT
- 22.6 TESTING PROGRAM
- 22.7 DISCUSSION
- 22.8 BIBLIOGRAPHIC NOTES
- 22.9 SUGGESTED EXPERIMENTS
- 22.10 SUGGESTED PROJECTS
- 22.11 COMPLETE PROGRAM LISTING
- CHAPTER 23: DIRECT DIGITAL FREQUENCY SYNTHESIS
- REFERENCES
- INDEX
Product information
- Title: Embedded SoPC Design with Nios II Processor and Verilog Examples
- Author(s):
- Release date: May 2012
- Publisher(s): Wiley
- ISBN: 9781118011034
You might also like
book
FSM-based Digital Design using Verilog HDL
As digital circuit elements decrease in physical size, resulting in increasingly complex systems, a basic logic …
book
Design Recipes for FPGAs: Using Verilog and VHDL
Design Recipes for FPGAs: Using Verilog and VHDL provides a rich toolbox of design techniques and …
book
Programming with STM32: Getting Started with the Nucleo Board and C/C++
Create your own STM32 programs with ease! Get up and running programming the STM32 line of …
book
Embedded Systems Design with Platform FPGAs
Embedded Systems Design with Platform FPGAs introduces professional engineers and students alike to system development using …