Architecting and Building High-Speed SoCs: Design, develop, and debug complex FPGA-based systems-on-chip
- Length: 426 pages
- Edition: 1
- Language: English
- Publisher: Packt Publishing
- Publication Date: 2022-12-09
- ISBN-10: 1801810990
- ISBN-13: 9781801810999
- Sales Rank: #1455255 (See Top 100 Books)
Design a high-speed SoC while gaining a holistic view of the FPGA design flow and overcoming its challenges.
Purchase of the print or kindle book includes a free eBook in the PDF format.
Key Features
- Use development tools to implement and verify an SoC, including ARM CPUs and the FPGA logic
- Overcome the challenge of time to market by using FPGA SoCs and avoid the prohibitive ASIC NRE cost
- Understand the integration of custom logic accelerators and the SoC software and build them
Book Description
Modern and complex SoCs can adapt to many demanding system requirements by combining the processing power of ARM processors and the feature-rich Xilinx FPGAs. You’ll need to understand many protocols, use a variety of internal and external interfaces, pinpoint the bottlenecks, and define the architecture of an SoC in an FPGA to produce a superior solution in a timely and cost-efficient manner.
This book adopts a practical approach to helping you master both the hardware and software design flows, understand key interconnects and interfaces, analyze the system performance and enhance it using the acceleration techniques, and finally build an RTOS-based software application for an advanced SoC design.
You’ll start with an introduction to the FPGA SoCs technology fundamentals and their associated development design tools. Gradually, the book will guide you through building the SoC hardware and software, starting from the architecture definition to testing on a demo board or a virtual platform. The level of complexity evolves as the book progresses and covers advanced applications such as communications, security, and coherent hardware acceleration.
By the end of this book, you’ll have learned the concepts underlying FPGA SoCs’ advanced features and you’ll have constructed a high-speed SoC targeting a high-end FPGA from the ground up.
What you will learn
- Understand SoC FPGAs’ main features, advanced buses and interface protocols
- Develop and verify an SoC hardware platform targeting an FPGA-based SoC
- Explore and use the main tools for building the SoC hardware and software
- Build advanced SoCs using hardware acceleration with custom IPs
- Implement an OS-based software application targeting an FPGA-based SoC
- Understand the hardware and software integration techniques for SoC FPGAs
- Use tools to co-debug the SoC software and hardware
- Gain insights into communication and DSP principles in FPGA-based SoCs
Who this book is for
This book is for FPGA and ASIC hardware and firmware developers, IoT engineers, SoC architects, and anyone interested in understanding the process of developing a complex SoC, including all aspects of the hardware design and the associated firmware design. Prior knowledge of digital electronics, and some experience of coding in VHDL or Verilog and C or a similar language suitable for embedded systems will be required for using this book. A general understanding of FPGA and CPU architecture will also be helpful but not mandatory.
Cover Title Page Copyright page Contributors Table of Contents Preface Part 1: Fundamentals and the Main Features of High-Speed SoC and FPGA Designs Chapter 1: Introducing FPGA Devices and SoCs Xilinx FPGA devices overview A brief historical overview FPGA devices and penetrated vertical markets An overview of the Xilinx FPGA device families An overview of the Xilinx FPGA devices features Xilinx SoC overview and history A short survey of the Xilinx SoC FPGAs based on an ARM CPU Xilinx Zynq-7000 SoC family hardware features Zynq-7000 SoC APU Zynq-7000 SoC memory controllers Zynq-7000 I/O peripherals block Zynq-7000 SoC interconnect Xilinx Zynq Ultrascale+ MPSoC family overview Zynq UltraScale+ MPSoC APU Zynq UltraScale+ MPSoC RPU Zynq UltraScale+ MPSoC GPU Zynq UltraScale+ MPSoC VCU Zynq UltraScale+ MPSoC PMU Zynq UltraScale+ MPSoC DMA channels Zynq UltraScale+ MPSoC memory interfaces Zynq-UltraScale+ MPSoC IOs Zynq UltraScale+ MPSoC IOP block Zynq-UltraScale+ MPSoC interconnect SoC in ASIC technologies High-level design steps of an SoC in an ASIC Summary Questions Chapter 2: FPGA Devices and SoC Design Tools Technical requirements FPGA hardware design flow and tools overview FPGA hardware design flow FPGA hardware design tools FPGA SoC hardware design tools Using the Vivado IP Integrator to create a sample SoC hardware FPGA and SoC hardware verification flow and associated tools Adding the cross-triggering debug capability to the FPGA SoC design FPGA SoC software design flow and associated tools Vitis IDE embedded software design flow overview Vitis IDE embedded software design terminology Vitis IDE embedded software design steps Summary Questions Chapter 3: Basic and Advanced On-Chip Buses and Interconnects On-chip buses and interconnects overview On-chip bus overview On-chip interconnects ARM AMBA interconnect protocols suite ARM AMBA standard historical overview APB bus protocol overview AXI bus protocol overview AXI Stream bus protocol overview ACE bus protocol overview OCP interconnect protocol OCP protocol overview OCP bus characteristics OCP bus interface signals OCP bus-supported transactions DMA engines and data movements IP-integrated DMA engines overview IP-integrated DMA engines topology and operations Standalone DMA engines overview Central DMA engines topology and operations Data sharing and coherency challenges Data access atomicity Cache coherency overview Summary Questions Chapter 4: Connecting High-Speed Devices Using Buses and Interconnects Legacy off-chip interconnects overview SPI overview Zynq-7000 SoC SPI controller overview I2C overview Zynq-7000 SoC I2C controller overview Introduction to the PCIe interconnect Historical overview of the PCIe interconnect PCIe interconnect system topologies PCIe protocol layers PCIe controller example PCIe subsystem data exchange protocol example using DMA PCIe system performance considerations Ethernet interconnect Ethernet speeds historical evolution Ethernet protocol overview Ethernet interface of the Zynq-7000 SoC overview Introduction to the Gen-Z protocol Gen-Z protocol architectural features SoC design and Gen-Z fabric CCIX protocol and off-chip data coherency CCIX protocol architectural features Summary Questions Chapter 5: Basic and Advanced SoC Interfaces Interface definition by function SoC interface characteristics SoC interface quantitative considerations Processor cache fundamentals Processor cache organization Processor MMU fundamentals Memory and storage interface topology DDR memory controller Static memory controller On-chip memory controller Summary Questions Part 2: Implementing High-Speed SoC Designs in an FPGA Chapter 6: What Goes Where in a High-Speed SoC Design The SoC architecture exploration phase SoCs PS processors block features Memory and storage interfaces Communication interfaces PS block dedicated hardware functions FPGA SoC device general characteristics SoC hardware and software partitioning A simple SoC example – an electronic trading system Hardware and software interfacing and communication Data path models of the ETS Introducing the Semi-Soft algorithm Using the Semi-Soft algorithm approach in the Zynq-based SoCs Using system-level alternative solutions Introduction to OpenCL Exploring FPGA partial reconfiguration as an alternative method Early SoC architecture modeling and the golden model System modeling using Accellera SystemC and TLM2.0 System modeling using Synopsys Platform Architect System modeling using the gem5 framework System modeling using the QEMU framework and SystemC/TLM2.0 Summary Questions Chapter 7: FPGA SoC Hardware Design and Verification Flow Technical requirements Installing the Vivado tools on a Linux VM Installing Oracle VirtualBox and the Ubuntu Linux VM Installing Vivado on the Ubuntu Linux VM Developing the SoC hardware microarchitecture The ETS SoC hardware microarchitecture Design capture of an FPGA SoC hardware subsystem Creating the Vivado project for the ETS SoC Configuring the PS block for the ETS SoC Adding and configuring the required IPs in the PL block for the ETS SoC Understanding the design constraints and PPA What is the PPA? Synthesis tool parameters affecting the PPA Specifying the synthesis options for the ETS SoC design Implementation tool parameters affecting the PPA Specifying the implementation options for the ETS SoC design Specifying the implementation constraints for the ETS SoC design SoC hardware subsystem integration into the FPGA top-level design Verifying the FPGA SoC design using RTL simulation Customizing the ETS SoC design verification test bench Hardware verification of the ETS SoC design using the test bench Implementing the FPGA SoC design and FPGA hardware image generation ETS SoC design implementation ETS SoC design FPGA bitstream generation Summary Questions Chapter 8: FPGA SoC Software Design Flow Technical requirements Major steps of the SoC software design flow ETS SoC XSA archive file generation in the Vivado IDE ETS SoC software project setup in Vitis IDE ETS SoC MicroBlaze software project setup in the Vitis IDE ETS SoC PS Cortex-A9 software project setup in the Vitis IDE Setting up the BSP, boot software, drivers, and libraries for the software project Setting up the BSP for the ETS SoC MicroBlaze PP application project Setting up the BSP for the ETS SoC Cortex-A9 core0 application project Setting up the BSP for the ETS SoC boot application project Defining the distributed software microarchitecture for the ETS SoC processors A simplified view of the ETS SoC hardware microarchitecture A summary of the data exchange mechanisms for the ETS SoC Cortex-A9 and the MicroBlaze IPC The ETMP protocol overview The ETS SoC system address map The Ethernet MAC and its DMA engine software control mechanisms The AXI INTC software control mechanisms Quantitative analysis and system performance estimation The ETS SoC Cortex-A9 software microarchitecture The ETS SoC MicroBlaze PP software microarchitecture Building the user software applications to initialize and test the SoC hardware Specifying the linker script for the ETS SoC projects Setting the compilation options and building the executable file for the Cortex-A9 Summary Questions Chapter 9: SoC Design Hardware and Software Integration Technical requirements Connecting to an FPGA SoC board and configuring the FPGA The emulation platform for running the embedded software Using QEMU in the Vitis IDE with the ETS SoC project Using the emulation platform for debugging the SoC test software Embedded software profiling using the Vitis IDE Summary Questions Part 3: Implementation and Integration Of Advanced High-Speed FPGA SoCs Chapter 10: Building a Complex SoC Hardware Targeting an FPGA Technical requirements Building a complex SoC subsystem using Vivado IDE System performance analysis and the system quantitative studies Addressing the system coherency and using the Cortex-A9 ACP port Overview of the Cortex-A9 CPU ACP in the Zynq-7000 SoC FPGA Implications of using the ACP interface in the ETS SoC design Summary Questions Chapter 11: Addressing the Security Aspects of an FPGA-Based SoC FPGA SoC hardware security features ARM CPUs and their hardware security paradigm ARM TrustZone hardware features Software security aspects and how they integrate the hardware’s available features Building a secure FPGA-based SoC Summary Questions Chapter 12: Building Complex Software with an Embedded Operating System Flow Technical requirements Embedded OS software design flow for Xilinx FPGA-based SoCs Customizing and generating the BSP and the bootloader for FreeRTOS Building a user application and running it on the target Summary Questions Chapter 13: Video and Image Processing and DSP Principles in an FPGA and SoCs DSP techniques using FPGAs Zynq-7000 SoC FPGA Cortex-A9 processor cluster DSP capabilities Zynq-7000 SoC FPGA logic resources and DSP improvement Zynq-7000 SoC FPGA DSP slices DSP in an SoC and hardware acceleration mechanisms Accelerating DSP computation using the FPGA logic in FPGA-based SoCs Video and image processing implementation in FPGA devices and SoCs Xilinx AXI Video DMA engine Video processing systems generic architecture Using an SoC-based FPGA for edge detection in video applications Using an SoC-based FPGA for machine vision applications Summary Questions Chapter 14: Communication and Control Systems Implementation in FPGAs and SoCs Communication protocol layers OSI model layers overview Communication protocols topology Example communication protocols and mapping to the OSI model Communication protocol layers mapping onto FPGA-based SoCs Control systems overview Control system hardware and software mappings onto FPGA-based SoCs Summary Questions Index Other Books You May Enjoy
Donate to keep this site alive
How to download source code?
1. Go to: https://github.com/PacktPublishing
2. In the Find a repository… box, search the book title: Architecting and Building High-Speed SoCs: Design, develop, and debug complex FPGA-based systems-on-chip
, sometime you may not get the results, please search the main title.
3. Click the book title in the search results.
3. Click Code to download.
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.