1. Agilex SoC架构总览
Altera Agilex SoC 是面向高带宽、低延迟与异构计算场景的 FPGA 器件系列,其核心特征是在同一芯片中同时集成可编程逻辑(FPGA fabric)与硬核处理器系统(HPS,Hard Processor System)。与早期“FPGA + 软核 CPU”的方案不同,Agilex SoC 的 HPS 是硬化的 ARM 处理器子系统,具备独立的缓存、内存控制器与外设接口,并通过高带宽片上互连与 FPGA fabric 紧耦合。理解这一架构,是后续进行硬件设计、驱动开发与软硬件协同调试的前提。
产品定位与系列划分
Agilex 系列按性能与功耗分为多个子系列,常见包括 Agilex 3、Agilex 5、Agilex 7、Agilex 9 等,数字越大通常代表更高的逻辑密度、收发器速率与计算能力。其中带 “SoC” 后缀的型号才集成 HPS。选型时需要同时关注三类资源:FPGA 侧的逻辑单元(LE/ALM)、DSP 块、M20K 存储块与高速收发器数量;HPS 侧的处理器核数量与主频、DDR 通道数、外设接口种类;以及两者之间的互连带宽。典型应用场景包括工业视觉与运动控制、5G 基带与射频前端、数据中心加速卡、汽车 ADAS 域控制器以及测试测量设备。这些场景的共同点是:需要 CPU 负责控制流、协议栈与操作系统,同时需要 FPGA 承担确定性并行数据通路与实时接口。
异构计算架构:FPGA fabric 与 HPS 的分工
Agilex SoC 的异构性体现在“控制”与“数据”两条主线的分离与协同。HPS 运行 Linux 或 RTOS,负责任务调度、文件系统、网络协议栈、人机界面以及对外设的通用管理;FPGA fabric 则实现硬实时的数据采集、协议解析、流水线运算与自定义接口。两者并非简单并列,而是通过 AXI 总线桥、片上存储器与中断机制形成紧耦合。例如,FPGA 侧采集的高速 ADC 数据可以先写入共享的片上 RAM,再通过中断通知 HPS 读取;HPS 也可以通过 AXI-Lite 寄存器配置 FPGA 侧的 IP 参数,实现运行时可重构。
HPS 硬核处理器系统的组成
Agilex SoC 的 HPS 通常包含双核或四核 ARM Cortex-A 系列处理器,配备多级缓存与一致性互连。其关键组件包括:DDR 内存控制器,支持 LPDDR5、DDR4 等标准,为操作系统和应用程序提供主存;外设接口控制器,涵盖 USB、以太网、SDIO、UART、I2C、SPI 等,用于连接外部设备;中断控制器(GIC),负责将 FPGA 侧产生的中断路由到处理器核;系统管理器,处理时钟、复位与电源域控制。HPS 内部通过片上网络(NoC)或 AXI 交换矩阵连接各主从设备,保证高并发访问时的带宽与延迟可控。
需要特别注意的是,HPS 的引脚与 FPGA fabric 的引脚在物理上是复用的。在硬件设计阶段,必须通过引脚规划工具明确哪些外设分配给 HPS 硬核控制器,哪些分配给 FPGA 侧的自定义逻辑。这一分配一旦确定,就决定了后续设备树与驱动程序的编写方式。
开发流程全景
Agilex SoC 的开发流程可以概括为“硬件先行、软件跟进、联合调试”三条主线。硬件侧使用 Quartus Prime 与 Platform Designer 完成系统集成:在 Platform Designer 中添加 HPS 组件、配置 DDR 参数、挂载 FPGA 侧 IP,并生成握手信号与地址映射。随后进行引脚分配、时序约束与编译,生成 SOF 配置文件。软件侧则基于 HPS 的硬件信息生成设备树(Device Tree),编译 U-Boot、Linux 内核与根文件系统,并通过 SD 卡或 QSPI 启动。联合调试阶段,常用手段包括 SignalTap 观察 FPGA 内部信号、通过 UART 查看 Linux 启动日志、利用 devmem 或自定义字符设备驱动读写 FPGA 寄存器。
典型应用场景与架构选择
以工业视觉为例:FPGA fabric 实现多路 Camera Link 或 MIPI 接收、图像预处理(去噪、边缘检测)与帧缓存;HPS 运行 Linux,负责图像后处理、网络传输与人机界面。此时数据流为:图像传感器 → FPGA 接口 IP → 片上 RAM → HPS DDR → 应用程序。若实时性要求极高,可让 FPGA 直接输出处理结果到外部接口,HPS 仅做配置与监控。再以 5G 基带为例:FPGA 承担 OFDM 调制解调与波束成形,HPS 运行协议栈与调度算法,两者通过共享内存与中断进行毫秒级协同。
| 应用场景 | FPGA Fabric 职责 | HPS 职责 | 关键接口 |
|---|---|---|---|
| 工业视觉 | 图像采集、预处理、帧缓存 | 后处理、网络传输、HMI | MIPI / AXI / DDR |
| 5G 基带 | OFDM、波束成形、信道编解码 | 协议栈、调度、管理 | JESD204B / 共享内存 |
| 数据中心加速 | 数据压缩、加密、过滤 | 任务调度、驱动、虚拟化 | PCIe / AXI |
| 汽车 ADAS | 传感器融合、实时目标检测 | 决策规划、车控通信 | CAN / 以太网 / AXI |
学习路径与关键概念
掌握 Agilex SoC 需要同时具备三方面知识:FPGA 数字设计(Verilog/SystemVerilog、时序约束、Platform Designer)、嵌入式 Linux(设备树、内核驱动、根文件系统)以及软硬件接口(AXI 协议、中断机制、地址映射)。后续章节将依次展开 Quartus 工程创建、HPS 配置、设备树编写、驱动开发与联合调试。建议在学习过程中始终围绕一个具体目标,例如“让 HPS 通过 AXI-Lite 控制 FPGA 侧的 LED 与按键”,以此串联各个知识点,避免陷入工具细节而失去整体架构感。