Embedded Systems Design with Platform FPGAs: Principles and Practices
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.
- Explains how to use the Platform FPGA to meet complex design requirements and improve product performance
- Presents both fundamental concepts together with pragmatic, step-by-step instructions for building a system on a Platform FPGA
- Includes detailed case studies, extended real-world examples, and lab exercises
Why Read This Book
You should read this book if you want a system-level, practical guide to building embedded systems around platform FPGAs. It walks you through hardware/software partitioning, common bus/memory/peripheral patterns, and real toolflow practices (including open-source options), so you can design complete, deployable FPGA-based systems rather than only RTL blocks.
Who Will Benefit
Embedded systems engineers, FPGA designers, and senior students who need to architect and implement complete FPGA-based systems and bridge the gap between HDL design and embedded software.
Level: Intermediate — Prerequisites: Solid understanding of digital logic and RTL (Verilog or VHDL), familiarity with C programming and basic embedded software concepts, and some exposure to FPGA development flows (synthesis/place-and-route) is recommended.
Key Takeaways
- Partition hardware and software effectively to meet performance, cost, and development-time goals for platform FPGA systems.
- Design and integrate common on-chip buses, memory subsystems, and peripheral interfaces used in platform FPGAs.
- Build and customize soft/hard processor subsystems and run embedded OSes (including Linux/uClinux) on FPGA platforms.
- Use vendor and open-source toolchains to create, debug, and deploy FPGA-based embedded systems.
- Optimize system-level trade-offs for performance, area, power, and maintainability in platform FPGA designs.
Topics Covered
- Introduction to Platform FPGAs and system-level design
- FPGA architecture and implementation technologies
- Principles of hardware/software co-design and partitioning
- On-chip interconnects, buses, and memory subsystems
- Processor subsystems (soft/hard cores) and IP integration
- Peripherals, I/O, and interfacing off-chip devices
- Embedded operating systems and driver development
- Toolflows: synthesis, implementation, debugging, and open-source alternatives
- Performance, power, and area trade-offs; optimization strategies
- Case studies and worked examples of complete platform FPGA systems
- Design practices, verification, and deployment considerations
Languages, Platforms & Tools
How It Compares
Covers similar system-level and HW/SW co-design ground as Wayne Wolf's 'FPGA-Based System Design' but Sass emphasizes platform FPGA toolflows, embedded OS integration, and practical vendor/open-source examples tailored to engineers building deployable systems.












