AN 796: Cyclone® V and Arria® V SoC Device Design Guidelines
ID
683360
Date
3/30/2022
Public
1. Overview of the Design Guidelines for Cyclone® V SoC FPGAs and Arria® V SoC FPGAs
2. Background: Comparison between Cyclone® V SoC FPGA and Arria® V SoC FPGA HPS Subsystems
3. Design Guidelines for HPS portion of SoC FPGAs
4. Board Design Guidelines for SoC FPGAs
5. Embedded Software Design Guidelines for SoC FPGAs
A. Support and Documentation
B. Additional Information
4.2.1.1. Boot Source
4.2.1.2. Select Desired Flash Device
4.2.1.3. BSEL Options
4.2.1.4. Boot Clock
4.2.1.5. CSEL Options
4.2.1.6. Selecting NAND Flash Devices
4.2.1.7. Determine Flash Programming Method
4.2.1.8. For QSPI and SD/MMC/eMMC Provide Flash Memory Reset
4.2.1.9. Selecting QSPI Flash Devices
4.5.1. HPS EMAC PHY Interfaces
4.5.2. USB Interface Design Guidelines
4.5.3. QSPI Flash Interface Design Guidelines
4.5.4. SD/MMC and eMMC Card Interface Design Guidelines
4.5.5. NAND Flash Interface Design Guidelines
4.5.6. UART Interface Design Guidelines
4.5.7. I2C Interface Design Guidelines
4.5.8. SPI Interface Design Guidelines
5.1.1. Assembling the Components of Your Software Development Platform
5.1.2. Selecting an Operating System for Your Application
5.1.3. Assembling your Software Development Platform for Linux
5.1.4. Assembling a Software Development Platform for a Bare-Metal Application
GUIDELINE: It is recommended using HWLibs only if you are familiar with developing a run time provision to manage your application.
GUIDELINE: Use the HWLibs Project Generator to create your customized HWLibs project.
5.1.5. Assembling your Software Development Platform for a Partner OS or RTOS
5.1.6. Choosing Boot Loader Software
5.1.7. Selecting Software Tools for Development, Debug and Trace
5.5.1.1. Enable Runtime Calibration Report
5.5.1.2. Change DLEVEL To Get More Debug Information
5.5.1.3. Enable Example Driver for HPS SDRAM
5.5.1.4. Change Data Pattern in Example Driver
5.5.1.5. Example Code to Write and Read from All Addresses
5.5.1.6. Read/Write to HPS Register in Preloader
5.5.1.7. Check HPS PLL Lock Status in Preloader
5.1.4. Assembling a Software Development Platform for a Bare-Metal Application
Intel® hardware libraries (HWLibs) are low level bare metal software libraries provided with SoC EDS and various components of the HPS. The HWLibs are also typically used by Intel® ’s OS partners to build board support packages for operating systems.
The HWLibs have two components:
- SoC Abstraction Layer (SoCAL): Symbolic register abstraction later that enables direct access and control of HPS device registers within the address space.
- Hardware Manager (HWMgr): APIs that provide more complex functionality and drivers for higher level use case scenarios.
Figure 13. HWLibs Overview
Note that not all hardware is covered by SoCAL and HWMgr, therefore writing custom code might be necessary depending on the application. Software applications that use HWLibs should have run time provisions to manage the resources of the MPU subsystem, the cache and memory. These provisions are typically what the operating systems provide.
GUIDELINE: It is recommended using HWLibs only if you are familiar with developing a run time provision to manage your application.
GUIDELINE: Use the HWLibs Project Generator to create your customized HWLibs project.
Intel recommends that you create your custom HWLibs project using the HWLibs Project Generator tool, available on RocketBoards.