Embedded Systems Design with Platform FPGAs

Principles and Practices

By

  • Ronald Sass, Professor, Department of Electrical and Computer Engineering, University of North Carolina at Charlotte
  • Andrew Schmidt

This book will introduce professional engineers and students alike to system development using Platform FPGAs. The focus is on embedded systems but it also serves as a general guide to building custom computing systems. The text describes the fundamental technology in terms of hardware, software, and a set of principles to guide the development of Platform FPGA systems. The goal is to show how to systematically and creatively apply these principles to the construction of application-specific embedded system architectures. There is a strong focus on using free and open source software to increase productivity.

The organization of each chapter in the book includes two parts. The white pages describe concepts, principles, and general knowledge. The gray pages include a technical rendition of the main issues of the chapter and show the concepts applied in practice. This includes step-by-step details for a specific development board and tool chain so that the reader can carry out the same steps on their own. Rather than try to demonstrate the concepts on a broad set of tools and boards, the text uses a single set of tools (Xilinx Platform Studio, Linux, and GNU) throughout and uses a single developer board (Xilinx ML-510) for the examples.

View full description

Audience

Embedded Software, Hardware and Systems Engineers, Designers, Developers and Architects, Field Application Engineers, Digital Designers, Upper-level Undergraduate and Graduate Students in Electrical & Computer Engineering

 

Book information

  • Published: July 2010
  • Imprint: MORGAN KAUFMANN
  • ISBN: 978-0-12-374333-6


Table of Contents

Chapter 1: Introduction
1.1 Embedded Systems
1.2 Design Challenges
1.3 Platform FPGAs
1.A Spectrometer Example
1.B Introducing the Platform FPGA Tool Chain

Chapter 2: The Target
2.1 CMOS Transistor
2.2 Programmable Logic Devices
2.3 Field-Programmable Gate Array
2.4 Hardware Description Languages
2.5 From HDL to Configuration Bit stream
2.A Xilinx Virtex 5
2.B Xilinx Integrated Software Environment

Chapter 3: System Design
3.1 Principles of System Design
3.2 Control Flow Graph
3.3 Hardware Design
3.4 Software Design

Chapter 4: Partitioning
4.1 Overview of Partitioning Problem
4.2 Analytical Solution to Partitioning
4.3 Communication
4.4 Practical Issues
4.A Profiling with Gprof
4.B Linux Kernel

Chapter 5: Spatial Design
5.1 Principles of Parallelism
5.2 Identifying Parallelism
5.3 Spatial Parallelism with Platform FPGAs
5.A Useful VHDL Topics for Spatial Design
5.B Debugging Platform FPGA Designs

Chapter 6: Managing Bandwidth
6.1 Balancing Bandwidth
6.2 Platform FPGA Bandwidth Techniques
6.3 Scalable Designs

Chapter 7: Outside World
7.1 Point-to-Point Communication
7.2 Inter-Networking Communication