从 Vivado 2017.4 到 2025.2:FPGA 软硬件协同开发流程演变与全新 BSP 生成指南
从 Vivado 2017.4 到 2025.2FPGA 软硬件协同开发流程演变与全新 BSP 生成指南文章目录从 Vivado 2017.4 到 2025.2FPGA 软硬件协同开发流程演变与全新 BSP 生成指南前言一、 开发流程核心差异对比核心改变解析二、 Vivado 2025.2 下如何生成与配置 BSP步骤 1从 Vivado 2025.2 导出硬件 (XSA)步骤 2启动 Vitis Unified IDE步骤 3创建 Platform Component平台组件以生成 BSP步骤 4配置 BSP 参数等同于旧版 BSP Editor步骤 5创建 Application Component 并使用该 BSP三、 开发建议与总结前言在 Xilinx/AMD 的 FPGA 开发生态中Vivado 2017.4 是一个经典的里程碑版本至今仍有许多高校教学和工业界存量项目在使用。然而随着器件架构的演进以及软件技术的发展最新的Vivado 2025.2已经在开发工作流、底层数据交互格式以及嵌入式软件开发工具链上发生了深刻的变化。最显著的变化莫过于彻底废弃了原有的 Xilinx SDK转而全面推行Vitis 统一软件平台在 2025.2 中表现为基于 VS Code 架构的 Vitis Unified IDE。本文将客观对比这两个版本在开发流程上的主要差异并详细演示在 2025.2 版本中如何导出硬件并生成/配置板级支持包BSP。一、 开发流程核心差异对比为了让大家直观了解这几年的技术演进我们首先将核心差异总结如下对比维度Vivado 2017.4Vivado 2025.2嵌入式开发软件Xilinx SDK(基于传统 Eclipse 架构)Vitis Unified IDE(基于 VS Code/Theia 架构)硬件描述文件格式.hdf(Hardware Definition File).xsa(Xilinx Support Archive) 统一压缩格式工程组织架构直接的 Application 工程 关联的 BSP 工程组件化架构 (Component-based)分为 Platform Component平台组件和 Application Component应用组件底层 BSP 解析引擎基于传统的 MSS 规范及 Tcl 生成逻辑基于SDT (System Device Tree)机制利用SDTgen提取设备树并由Lopper生成驱动核心改变解析从 HDF 到 XSA2017.4 使用的.hdf实际上是一个包含硬件设计元数据的文件夹或简单压缩包。而 2025.2 采用的.xsaXilinx Support Archive不仅包含硬件描述还整合了更多的多核处理器拓扑结构以及元数据是一个标准化、更易于在工具间传递的归档文件。从 Eclipse (SDK) 到 VS Code 架构 (Vitis Unified)老版的 Xilinx SDK 基于 Eclipse界面较为繁琐且在现代高分屏下的适配以及插件生态上略显落后。2025.2 采用的 Vitis Unified IDE 基于 Theia 框架提供了类似 VS Code 的轻量化、现代化编码体验并支持更好的版本控制Git 友好性。引入“组件化Component”概念在旧版中我们习惯于在工作空间内直接创建 App Project 和 BSP Project。而在 2025.2 中开发对象被抽象为“组件”。你需要先创建一个Platform Component它负责管理硬件 XSA 并在其内部生成 BSP/Domain然后再创建一个基于该平台的Application Component。二、 Vivado 2025.2 下如何生成与配置 BSP在 2017.4 中我们习惯于直接在 Vivado 中点击File - Launch SDK自动同步并生成 BSP。在 2025.2 中由于工具链的解耦该流程转变为“导出 XSA 并在 Vitis 中构建 Platform Component”。以下是具体的操作步骤步骤 1从 Vivado 2025.2 导出硬件 (XSA)在 Vivado 中完成您的 Block Design 设计依次运行 Synthesis综合、Implementation实现并生成 Bitstream。在主菜单栏中选择File - Export - Export Hardware…。在弹出的向导中点击 Next选择Include bitstream如果需要下载和调试裸机程序建议包含比特流再次点击 Next。指定导出路径和文件名如system_wrapper.xsa点击 Finish。步骤 2启动 Vitis Unified IDE您可以在 Vivado 菜单栏中点击Tools - Launch Vitis IDE唤醒软件。或者在操作系统中单独运行 Vitis指定一个文件夹作为您的Workspace工作空间。步骤 3创建 Platform Component平台组件以生成 BSP在 Vitis 2025.2 中BSP 不能作为独立项目单独创建而是作为 Platform Component 的一部分即域 Domain被自动生成进入 Vitis 主页在 “Welcome” 页面点击Create Platform Component或通过菜单栏File - New Component - Platform。Component Name为您的平台命名例如custom_hw_platform点击 Next。Hardware Specification点击 Browse选择在步骤 1 中导出的.xsa文件点击 Next。Operating System Processor选择目标操作系统裸机开发选择standalone亦可选择freertos等。选择目标处理器例如 Zynq 设备的ps7_cortexa9_0或 MicroBlaze、MPSoC 的相应核心。点击 Finish。此时Vitis 会自动解析 XSA 文件并为您生成基础的 BSP。步骤 4配置 BSP 参数等同于旧版 BSP Editor在开发中我们经常需要开启某些库例如文件系统xilffs、轻量级网络协议栈lwip或修改外设的驱动配置具体操作如下在左侧Explorer视图中展开刚创建的 Platform 文件夹双击打开配置文件vitis-comp.json。在主视窗的平台管理界面中定位到您的 Domain例如standalone on ps7_cortexa9_0。在Quick Links栏目下方点击Board Support Package链接。此时右侧会展现 BSP 配置界面Modify BSP Settings在此处勾选您需要启用的库。Drivers在此处可以查看硬件外设对应的驱动版本并修改其配置参数。配置修改完成后按下快捷键Ctrl S保存更改。右键点击您的 Platform Component在菜单中选择Build进行编译。编译完成后BSP 相关的库文件和驱动就完全生成并编译就绪了。步骤 5创建 Application Component 并使用该 BSP点击菜单栏File - New Component - Application。输入应用组件的名称如hello_world_app点击 Next。在选择 Platform 的页面勾选您刚才创建并编译好的Platform Component点击 Next。选择对应的 Domain即您配置了对应 BSP 的那个处理器核心域点击 Next。选择模板例如Hello World点击 Finish。此时您的应用工程就已经与该 BSP 正确关联。右键应用组件选择Build即可编译出可执行文件。三、 开发建议与总结从旧版的 Vivado SDK 流程迁移到现代的 Vivado Vitis Unified 流程开发者可能需要一些时间来适应新的 UI 交互和“组件化”概念。版本控制友好新版的 Vitis Unified 更加贴近软件工程实践项目结构清晰不再像 Eclipse 版本那样容易因为相对路径问题导致工作空间损坏。建议在使用 2025.2 时将.xsa和vitis-comp.json等关键配置文件纳入 Git 进行版本管理。驱动迁移注意由于底层采用了系统设备树SDT进行硬件描述部分自定义 IP 的驱动生成机制可能与旧版有所不同。如果是老项目移植建议阅读 AMD 官方提供的移植白皮书以应对底层Lopper工具链在解析某些老旧 IP 驱动时可能出现的微调需求。