This article describes how to obtain & generate a reference design for a genuine Intel development kit with a SoC FPGA (Arm embedded device).
Introduction
Reference designs called GHRD and GSRD have been available for Altera® (Intel®) OEM development kits with SoC FPGAs. These reference environments used to be included in the SoC FPGA Embedded Development Suite (SoC EDS), but now they are no longer provided in the SoC EDS package and can be downloaded individually from the web.
- GHRD (Golden Hardware Reference Design): Quartus® design example (FPGA H/W)
- GSRD (Golden System Reference Design): Linux Boot Image (HPS S/W)
This article describes the steps from downloading GHRD to project generation and compilation.
Please refer to the following link for the official procedure, which includes both GSRD and GHRD build instructions.
Reference: Golden System Reference Design (GSRD) User Manuals | Documentation | RocketBoards.org : Links to GSRD, including previous versions (see v20.1 for the latest)
Below are links to the latest versions by device family.
- Agilex SoC GSRD | Documentation | RocketBoards.org
- Stratix 10 SoC GSRD | Documentation | RocketBoards.org
- Arria 10 SoC GSRD | Documentation | RocketBoards.org
- Cyclone V SoC GSRD | Documentation | RocketBoards.org
1. Public repositories of GHRDs
The latest GHRD is available at altera-opensource/ghrd-socfpga (github.com).
Figure 1 shows an image of the page. Since the GHRD is maintained on github.org, you can check the update history, refer to the usage instructions (READMD.md), download, etc., from your Web browser.
Figure 1. Image of GHRD Public Repository
2. Preparation
The following environment is required to download and compile GHRD.
- Quartus® Prime development software
- Edition that corresponds to the target family
- Recommended tool versions are those listed in GHRD's README.md
- Terminal environment with path to Quartus® Prime development software
- Nios II Command Shell or SoC Embedded Command Shell can be used, its environment variable for PATH to Quartus® Prime installation directory is already set up.
- Make must be installed to use the make command.
Tip:
If you are using the Nios II Command Shell, you must also install make separately during setup. The following commands will also install make
sudo apt update
sudo apt upgrade
sudo apt install build-essential
3. obtaining (downloading) the design project
The GHRD design project can be obtained from the public repository altera-opensource/ghrd-socfpga (github.com) using the git command.
Below are two ways to download the project via a web browser. Download the project using either method. After the download is complete, extract (unzip) the archive to your working directory.
Method 1: Download from the Code menu on the Repository Top screen
Figure 2. Example of downloading from the Code menu of the Repository Top screen
Method 2: Download from the list of tags in the repository
Figure 3. Example of downloading from the repository tag list
4. Design Generation
From here on, work in a terminal environment with a path to Quartus® Prime development software, such as Nios II Command Shell.
4-1. Start the terminal - Move to the GHRD project
On the terminal, go to the Top directory of the GHRD project (ghrd-socpfga) and check the contents. If the following 5 folders are displayed, it is as expected.
- cv_soc_devkit_ghrd: for Cyclone® V SX SoC Development Kit
- a10_soc_devkit_ghrd_std: for Arria® 10 SX SoC Development Kit (Standard Edition)
- a10_soc_devkit_ghrd_pro: For Arria® 10 SX SoC Development Kit (Pro Edition)
- s10_soc_devkit_ghrd: for Stratix® 10 SX SoC Development Kits
- agilex_soc_devkit_ghrd: for Agilex™ F-Series Transceiver-SoC Development Kit
Figure 4. Top directory of GHRD project (ghrd-socpfga)
4-2. Selecting the Target Device Family
Navigate to the sub-directory with the name of the target device family.
Figure 5 shows an example of execution when targeting Agilex™ (agilex_soc_devkit_ghrd).
Figure 5. Select the target device family.
4-3. Confirmation and selection of optional items
README.md in the directory for each device family describes the build procedure and option items. If you want to change an option, edit the Makefile or specify the option as an argument when executing make generate_from_tcl in the following procedure.
Tip: When generating
standard GHRD, you do not need to specify any option items.
Figure 6 shows an excerpt from README.md that describes the build procedure and optional items.
Figure 6. Explanation of build procedure and optional items in README.md
4-4. Execution of design generation (make generate_from_tcl)
Run "maQuartus ate_from_tcl" on the terminal. This operation will create a Quartus® Prime design project is generated under the device family directory.
Normally, the following command is used to generate a design
make generate_from_tcl
If you want to specify optional items, follow with the option specification:
make generate_from_tcl [ specify options (e.g., BOOTS_FIRST="fpga")
Figure 7 shows an example of the BOARD_TYPE and BOOTS_FIRST options.
Figure 7. Example of execution when BOARD_TYPE and BOOTS_FIRST are specified as optional items.
5. Checking and Compiling the Design
Compilation of the design can also be performed with the "make" command. Entering "make sof" or "make all" on the terminal executes full compilation of GHRD and generates a .sof file.
make sof or make all
To verify the design on the Quartus® Prime development software, execute the quartus command on the terminal and open ghrd_*.qpf (Quartus Project File).
Figure 8. Confirming the design on Quartus® Prime development software
Conclusion
Since the GHRD is now published on github.org, design updates can be made at any time, even outside of tool releases, making it possible to get new designs earlier. We recommend that you check the status of the public repositories for updates when starting a design based on a reference design.
In addition to the standard GHRDs, there are several examples of designs that are supported by optional items, so please also check the optional items for each device family.