【教程】Agilex 5 SoC 的两种启动模式的开发演示(一)(FPGA Configuration First)

一、前言

Agilex 5 SoC FPGA 集成了高性能 FPGA 结构与双集群 ARM 处理器系统(HPS,包含双核 Cortex‑A76 与双核 Cortex‑A55),为嵌入式开发者提供了兼具硬件可重构性与强大软件处理能力的异构计算平台。针对系统复位后由 FPGA 还是 HPS 主导启动流程,Altera定义了两种不同的引导模式:FPGA Configuration First和HPS Boot First。

本文将首先介绍这两种启动模式的工作方式,然后在 DE25‑Nano 开发板上完整演示其开发与验证流程。

二、Agilex 5 SoC 启动模式概述

FPGA Configuration First Mode

当选择FPGA Configuration First模式时,系统安全器件管理器(SDM)会首先完成FPGA的完整配置,随后配置HPS的SDRAM引脚,加载HPS的第一级引导程序(FSBL),最后将HPS从复位状态释放。在此模式下,FPGA逻辑阵列在HPS退出复位之前便已开始工作,即FPGA在HPS启动前已完全就绪。需要注意的是,FPGA Configuration First模式不支持HPS在运行时对FPGA进行重配置。

HPS Boot First Mode

当您选择HPSBoot First时,SDM会先配置HPS的SDRAM引脚,加载HPS的FSBL并将HPS从复位状态释放,之后由HPS在稍后的时间点再完成FPGA I/O和FPGA逻辑阵列的配置。HPS优先选项具有以下优势:最小化SDM所需的闪存容量;最小化HPS软件启动所需的时间;支持HPS在运行过程中对FPGA进行重配置。

选择 HPS Boot First 还是 FPGA Configuration First,核心在于权衡 HPS 的启动速度 、FPGA 的早期可用性,以及后期FPGA是否可以重配置等。这取决于你的应用场景更侧重哪个方面。

三、准备工作

硬件准备:

  1. DE25-Nano开发板

  2. 5V电源适配器(随板附带)

  3. USB Type-C数据线(用于UART串口通信和JTAG编程,随板附带)

  4. MicroSD卡(建议8GB以上,随板附带)

  5. 读卡器

  6. 一台Ubuntu电脑

软件准备:

  1. Altera Quartus Prime Pro Edition 25.1.1(支持Agilex 5器件)

  2. DE25-Nano GHRD工程(从友晶官网下载https://dl2.terasic.com/resources/de25-nano/DE25-Nano_revB_v.1.0.0_ResourcePackage.zip)

  3. DE25-Nano Linux镜像(从友晶官网下载https://dl2.terasic.com/resources/de25-nano/de25_nano_sdcard_console_v1.1.zip)

  4. 串口终端软件(如PuTTY、minicom等)

  5. Win32DiskImager工具(也可以用命令直接在Ubuntu电脑烧写SD卡)

四、模式设置

可以在 Quartus 的图形界面中进行设置,路径为:Assignments > Device > Device and Pin Options > Configuration > HPS/FPGA Configuration order:

Quartus 默认设置是FPGA Configuration First模式(即HPS/FPGA configuration order 默认设置是After INIT_DONE),如果想改成HPS Boot First模式,可在GUI界面选择HPS First或者在.qsf文件里面添加约束:

复制代码
set_global_assignment -name HPS_INITIALIZATION "HPS FIRST"

五、DE25-Nano 开发板 FPGA Configuration First 模式演示

首先固化QSPI Flash,这个固化工作可以在Windows和Ubuntu系统下操作。

Windows下固化QSPI Flash

双击DE25-Nano_revB_v.1.0.0_ResourcePackage\Demonstration\SoC_FPGA\GHRD\sof_with_hps.bat将GHRD编译生成的golden_top.sof文件转化为golden_top_hps.sof文件。

然后双击

DE25-Nano_revB_v.1.0.0_ResourcePackage\Demonstration\SoC_FPGA\GHRD\sof_to_jic.bat将golden_top_hps.sof文件转化为golden_top_hps.jic文件。

最后双击Nano_revB_v.1.0.0_ResourcePackage\Demonstration\SoC_FPGA\GHRD\output_files\program_qspi_flash\flash_program.bat文件将golden_top_hps.jic文件固化到QSPI Flash当中:

Ubuntu下固化Flash

设置Quartus的环境变量:

复制代码
export QUARTUS_ROOTDIR=/home/doreen/altera_pro/25.1.1/quartusexport PATH=$QUARTUS_ROOTDIR/bin:$PATH

在GHRD工程的目录下执行如下命令生成golden_top_hps.sof文件

复制代码
quartus_pfg -c output_files/golden_top.sof output_files/golden_top_hps.sof -o hps_path=software/u-boot/spl/u-boot-spl-dtb.hex

然后执行如下命令生成golden_top_hps.jic文件:

复制代码
quartus_pfg -c output_files/golden_top_hps.sof output_files/golden_top_hps.jic -o device=MT25QU128 -o flash_loader=A5EB013BB23B -o mode=ASX4

最后执行如下命令将golden_top_hps.jic文件下载到DE25-Nano的QSPI flash当中:

复制代码
quartus_pgm -m jtag -c 1 -o "pvi;output_files/golden_top_hps.jic"

启动开发板观察测试结果

参考【教程】Linux上用命令烧写SD卡和Windows上用Win32DiskImager工具一键烧写SD卡烧写SD卡并启动开发板。可以看到在Uart串口打印开发板Linux系统启动的过程中fpga led已经亮起,且有一个led闪烁:

本文部分图参考Altera文档:

相关推荐
hahaha601615 小时前
3NRD降噪算法FPGA实现8并行度设计
fpga开发
松小白song16 小时前
一次“载电流显示为 0“的排查经历:负值钳位引发的踩坑
fpga开发
yingheceping19 小时前
复旦微FPGA开发板厂商TOP5甄选榜:2026选型参考
fpga开发·fpga
NamoAmitabha1281 天前
PL 端的 GPIO IP(AXI GPIO)---PS控制----deepseek
fpga开发·zynq--ps
hahaha60161 天前
3D降噪算法YUV降噪FPGA实现
fpga开发
Hello-FPGA2 天前
基于RFSOC FPGA ZCU216 的CoaXPress 采集demo
fpga开发
9527华安2 天前
FPGA基于ADV7182解码PAL视频,Video Processing Subsystem去隔行,提供6套工程源码和技术支持
fpga开发·音视频·pal·adv7182
hahaha60162 天前
数字图像时域滤波或者3D降噪算法FPGA实现
算法·计算机视觉·fpga开发
GateWorld2 天前
Xilinx 7系列FPGA时钟网络详解
fpga开发·时钟网络·xilinx 7系列
szxinmai主板定制专家3 天前
X86 工控机 vs RK3588 异构主控:AMR 控制器 BOM、散热、长期运维对比
运维·stm32·单片机·嵌入式硬件·fpga开发·am62x