4. 开发工具链与设计流程
Agilex 系列(含 Agilex 7 FPGA、Agilex 5 SoC FPGA 及集成 AI Tensor Block 的版本)并不是靠单一工具完成开发的器件。它同时包含可编程逻辑、硬核处理器子系统(HPS,ARM Cortex-A 系列)、DSP 阵列与 AI Tensor Block,因此一条完整的设计链路往往横跨“硬件逻辑—高层次综合—AI 推理部署—主机加速”四个层面。理解 Quartus Prime Pro、oneAPI、OpenVINO、DSP Builder 与 HLS 工具各自负责哪一段、彼此之间用什么文件格式交接,是能否把算法真正落到 Agilex 上的关键。
各工具在链路中的定位
Quartus Prime Pro 是整条链路的“收口”工具:所有最终要变成 Agilex 配置位流(.sof/.rbf)的设计,无论来自 RTL、HLS 还是 DSP Builder,都必须进入 Quartus 完成综合、布局布线、时序收敛与引脚/接口约束。它同时提供 Platform Designer(原 Qsys)用于搭建 HPS、PCIe、外部存储器、AXI/AVMM 互联等系统级结构,是 SoC 集成的中枢。
DSP Builder 面向的是“信号处理数据通路”这一层。它以 Simulink 模型为输入,把定点/浮点运算、滤波器、FFT、抽取/内插等结构映射为 Agilex 的 DSP 阵列与逻辑资源,并可直接生成可综合的 HDL 或 IP。对于雷达、无线、音频、图像前端这类以数据流为核心的算法,DSP Builder 能在保持位真(bit-true)仿真的同时给出资源与时序的早期估计。
HLS 工具(如 Intel HLS Compiler / 高层次综合)面向的是“用 C++ 描述算法、自动生成流水线硬件”的场景。它适合控制逻辑较复杂、循环结构规整、需要 II=1 流水的算法,例如矩阵运算、图像滤波、加解密。HLS 输出的是 RTL 或 IP-XACT 形式的 IP,再交给 Quartus 集成。
oneAPI 与 OpenVINO 则处在“软件与 AI 推理”一侧。oneAPI 通过 DPC++/SYCL 让同一份代码面向 CPU、GPU、FPGA 加速卡编译,其中 FPGA 后端会生成 RTL 并调用 Quartus 完成位流构建;OpenVINO 面向推理部署,把训练好的模型(ONNX、TensorFlow、PyTorch 导出)经模型优化器转换为 IR,再通过插件在 Agilex 的 AI Tensor Block、DSP 或 HPS 上执行。二者与 Quartus 的关系是“上层生成、下层实现”。
协同工作流的实际组织方式
把上述工具串起来,通常按“自顶向下分解、自底向上集成”的方式推进。第一步是确定算法中哪些部分放 HPS(软件)、哪些放 DSP/AI Tensor Block(硬件加速)。判据是:规则、密集、可流水化的运算(卷积、矩阵乘、FIR、FFT)适合硬件;分支多、控制复杂、访存随机的部分留在 HPS 用 C/C++ 实现。
第二步是选择生成路径。若算法已在 Simulink 中完成定点建模,用 DSP Builder 直接生成 HDL 与 IP,并保留位真仿真结果作为后续比对的黄金参考。若算法是 C++ 且循环规整,用 HLS 加流水线指令(如 #pragma ii 1)生成 RTL。若是 AI 推理模型,先用 OpenVINO 模型优化器转 IR,再通过 FPGA 插件把子图映射到 Tensor Block 或 DSP。若希望同一份 SYCL 代码兼顾主机与加速卡,则用 oneAPI 的 FPGA 流程生成 RTL。
第三步是把生成的 IP 放进 Platform Designer,与 HPS、DDR、PCIe、DMA 互联,配置地址映射与中断,再在 Quartus 中加 SDC 约束、跑综合与布局布线。第四步是上板验证:用 Signal Tap 观察数据通路握手,用 System Console 读写寄存器,用 OpenVINO/oneAPI 运行时测端到端时延与吞吐。
一个可参考的配置示例
假设要在 Agilex 7 上实现一个 256×256 的 3×3 卷积加速,示例参数如下(属教学假设,非实测):输入 INT8,输出 INT32 累加,目标 200 MHz,单帧 65536 像素。用 HLS 描述行缓冲与 3×3 窗口,设置流水线 II=1,每周期处理 1 个像素;用 DSP Builder 生成乘加阵列映射到 DSP 块;用 Platform Designer 挂 AXI4-Stream 输入、AXI4-Lite 控制寄存器与 DMA;Quartus 中约束输入时钟 200 MHz、DDR 接口时序,并检查 DSP 与 BRAM 占用。上板后用 OpenVINO 或 oneAPI 运行时喂入图像,观察帧率与资源报告是否匹配预期。
理解这条链路的本质,是理解“谁生成、谁实现、谁运行”三层分工:DSP Builder、HLS、oneAPI、OpenVINO 负责把算法变成可综合的硬件描述或可部署的模型;Quartus Prime Pro 与 Platform Designer 负责把描述变成 Agilex 上真实可运行的位流与系统;运行时负责在 HPS 或主机侧调度与验证。三者边界清晰、交接格式明确,协同工作流才能稳定复现。