The Zynq Book: Embedded Processing with the Arm Cortex-A9 on the Xilinx Zynq-7000 All Programmable Soc
This book is about the Zynq-7000 All Programmable System on Chip, the family of devices from Xilinx that combines an application-grade ARM Cortex-A9 processor with traditional FPGA logic fabric. Catering for both new and experienced readers, it covers fundamental issues in an accessible way, starting with a clear overview of the device architecture, and an introduction to the design tools and processes for developing a Zynq SoC. Later chapters progress to more advanced topics such as embedded systems development, IP block design and operating systems. Maintaining a 'real-world' perspective, the book also compares Zynq with other device alternatives, and considers end-user applications. The Zynq Book is accompanied by a set of practical tutorials hosted on a companion website. These tutorials will guide the reader through first steps with Zynq, following on to a complete, audio-based embedded systems design.
Why Read This Book
You will learn how to tame the Xilinx Zynq-7000 SoC by combining ARM Cortex-A9 software with FPGA logic in real projects, using the vendor toolchain and practical design patterns. The book balances clear architecture explanation with hands-on tutorials so you can move from board bring-up to building integrated PS–PL systems and running embedded Linux or bare-metal firmware.
Who Will Benefit
Embedded engineers, firmware developers, and FPGA designers with some prior exposure to digital logic or C who want to build real-world systems using the Zynq-7000 platform and its toolchain.
Level: Intermediate — Prerequisites: Basic C programming and familiarity with digital logic concepts or HDL (Verilog/VHDL) are recommended; prior exposure to Linux and embedded toolchains is helpful but not required.
Key Takeaways
- Configure and use the Zynq-7000 processing system (PS) and programmable logic (PL) together via AXI interconnects
- Create and integrate custom FPGA IP blocks and connect them to the ARM Cortex‑A9 using Vivado/EDK workflows
- Build, boot, and debug bare-metal applications and embedded Linux systems (PetaLinux/U-Boot) on Zynq boards
- Use Xilinx tools (Vivado, SDK) and the GNU toolchain to synthesize, program, and profile hardware/software systems
- Design device-tree entries and Linux drivers for PS–PL peripherals and perform hardware/software co‑debugging
- Evaluate design trade-offs between Zynq, traditional FPGA-only solutions, and other SoC choices for end applications
Topics Covered
- Introduction to the Zynq-7000 All Programmable SoC
- Zynq Architecture: Processing System (PS) and Programmable Logic (PL)
- AXI Interconnects, Memory Interfaces, and PS–PL Communication
- Design Tools and Workflows: Vivado, SDK, and the Companion Tutorials
- Creating and Integrating Custom IP in the PL
- Board Bring-up: Boot, Clocks, Resets, and Power Considerations
- Bare-metal Development and Debugging on the Cortex‑A9
- Embedded Linux on Zynq: U-Boot, Device Tree and PetaLinux
- Drivers, DMA, and High-performance Data Paths
- Hardware/Software Co-design and Partitioning Strategies
- Performance Measurement, Profiling and Optimization
- Case Studies, Application Examples and Device Comparisons
- Appendices: Commonly Used Tools, Reference Designs, and Tutorial Index
Languages, Platforms & Tools
How It Compares
Compared with Jonathan Valvano's ARM books (which focus on microcontroller programming), this title uniquely emphasizes PS–PL integration and FPGA IP design for Zynq; compared to FPGA-focused texts like Pong Chu's, it prioritizes SoC-level hardware/software co-design and embedded Linux workflows.













