在 AMD (Xilinx) 最新的 Vitis 统一软件平台架构下,FPGA 的开发被清晰地划分为两个世界。理解这两个世界的区别,是看懂现代 FPGA 论文和技术文档的关键。
逻辑一:自底向上的'硬件构建'逻辑 (Vivado Flow)
——'我是芯片设计师,我在造一台电脑。'
这是经典的、传统的 FPGA 开发方式。
1. 核心思维
- 关注点:时钟周期、复位信号、状态机翻转、AXI 总线位宽、时序收敛 (Timing Closure)。
Xilinx FPGA 开发分为 Vivado 硬件构建流与 Vitis 软件加速流。Vivado 流关注底层时序与 Bitstream 生成,适合板卡设计;Vitis 流基于 C++ Kernel 与 XRT 运行时,实现软硬件解耦,适合算法加速。现代 Vitis 推荐使用 C++ 编写内核配合#pragma 指令优化,通过 v++ 编译器自动链接 Shell 生成 xclbin。开发者应根据角色选择:板卡设计用 Vivado,算法加速用 Vitis。
在 AMD (Xilinx) 最新的 Vitis 统一软件平台架构下,FPGA 的开发被清晰地划分为两个世界。理解这两个世界的区别,是看懂现代 FPGA 论文和技术文档的关键。
——'我是芯片设计师,我在造一台电脑。'
这是经典的、传统的 FPGA 开发方式。
.bit 文件(Bitstream),控制 FPGA 上的每一个查找表 (LUT) 和触发器 (FF)。在这种逻辑下,HLS (High-Level Synthesis) 只是一个**'零件加工厂'**。
——'我是系统架构师,我在写一个异构程序。'
这是 OpenCL 所在的领域,也是相关技术文档使用的逻辑,更是 AMD 目前大力推崇的 Vitis 加速流。
.xclbin 文件(二进制容器)和一个主机可执行文件 (Host Exe)。在这种模式下,FPGA 不再被视为'电路板',而被视为一个**'可编程的函数库'**。
OpenCL 是这一逻辑的'鼻祖'和'标准'。
clEnqueueWriteBuffer)。__kernel void ...)。'OpenCL 写 FPGA'其实是 Vitis Flow 的早期形态(当时叫 SDAccel)。现在,AMD 已经将这套逻辑进化得更加灵活。
在最新的 Vitis 2023/2024 版本中,开发逻辑如下:
虽然 Vitis 依然完美支持 OpenCL C 语言写内核,但 AMD 现在更推荐用 C++ 来写内核(Vitis HLS 风格)。
restrict, __global 等修饰符,语法受限。#pragma HLS 指令。Vitis 编译器会自动把它包装成符合 OpenCL 调用规范的内核(自动加上 AXI 接口)。这是连接软件和硬件的桥梁。
clCreateContext 等)。.xclbin,分配显存,启动内核。在 Vivado Flow (逻辑一) 里,要改一个设计:
修改 RTL -> 更新 Block Design -> 重新连线 -> 综合 (1 小时) -> 布局布线 (2 小时) -> 失败重来。
在 Vitis Flow (逻辑二) 里,要改一个设计:
v++ --link ...
打开 C++ Kernel 代码。修改一行参数:const int PARALLEL_FACTOR = 8; (原本是 4)。运行脚本。编译器自动调用 HLS 生成新 IP,自动调用 Vivado 重新布局布线,自动生成新的 .xclbin。
这就是 OpenCL/Vitis Flow 的威力。它允许研究人员像编译软件一样,通过脚本批量生成 100 种不同资源占用率的 FPGA 镜像,从而画出论文里那种漂亮的'面积 vs 吞吐量'曲线图。
#pragma 标签优化流水线。v++ 编译器把 Kernel 连入 Alveo 卡的 Shell。
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online