1. 开篇:为什么说ZYNQ是嵌入式开发的“瑞士军刀”?
如果你之前玩过普通的单片机或者FPGA,可能会觉得它们各有各的“脾气”。单片机编程灵活,但硬件功能固定;FPGA硬件可定制,但软件生态相对薄弱。而Xilinx的ZYNQ-7000系列,第一次把这两者真正“焊”在了一起——它在一个芯片里,既有高性能的双核ARM Cortex-A9处理器(我们称之为PS, Processing System),也有一大片可编程逻辑单元(我们称之为PL, Programmable Logic)。这就像给你的项目团队同时配了一位软件架构师和一位硬件工程师,他俩还能随时面对面高效沟通。
我刚开始接触ZYNQ时,也被它复杂的开发流程绕晕过。Vivado负责硬件,Vitis负责软件,中间还有个叫BOOT.bin的启动文件需要“组装”。但踩过几次坑之后,我发现只要理清PS和PL协同工作的脉络,整个流程就会变得异常清晰和强大。今天,我就以最经典的“流水灯+串口打印”为例,手把手带你从零开始,用Vivado 2021.1和Vitis搭建一个完整的PS+PL工程,并最终生成能在SD卡和QSPI Flash里启动的固件。无论你是想验证想法的新手,还是需要标准化开发流程的工程师,这篇实战指南都能让你少走弯路。
2. 环境准备:工欲善其事,必先利其器
在开始敲代码和画框图之前,把“厨房”收拾好至关重要。ZYNQ开发涉及的工具链比较庞大,安装和配置是第一步,也是最容易出问题的一步。
2.1 硬件与软件清单
首先,你需要一块ZYNQ-7000系列开发板,比如流行的ZC702、Zybo或者国产的ALINX AX7010等。它们核心的PS部分都是兼容的。软件方面,我们选择Vivado 2021.1和与之配套的Vitis。这里有个关键点:从2019.2版本开始,Xilinx用Vitis统一了之前的SDK(软件开发)和SDSoC(高层次综合)等工具。所以,如果你看到教程里还在提“SDK”,那可能是针对旧版本的,我们需要在Vitis里完成所有软件工作。
我个人的工作环境是Windows 10主机,但为了模拟一些Linux下的编译流程,我在虚拟机里安装了Ubuntu 18.04。对于新手,我强烈建议先在Windows下完成整个流程,这样能避开很多因环境变量、权限问题导致的诡异错误。软件的安装包可以直接从AMD(Xilinx)官网下载,选择“Vivado HLx 2021.1”版本,在安装类型里务必勾选上Vitis。安装过程可能需要几十GB空间和数小时,请耐心等待。
2.2 一个容易忽略的坑:用户路径
这里分享一个我踩过的坑。Vivado和Vitis对工程路径的深度和中文字符非常敏感。如果你的用户名是中文,或者把工程放在像“D:\学习资料\FPGA项目\ZYNQ测试\”这样的深层中文目录下,极有可能在综合、生成比特流或者启动Vitis时遭遇莫名其妙的失败。我的建议是,在磁盘根目录创建一个简短、全英文的路径,比如D:/ZYNQ_Projects/。这个习惯能为你省下大量排查环境问题的时间。
3. 创建PL端硬件:让LED先“流”起来
我们的目标是软硬件协同,那就从硬件开始,先让PL端的LED灯闪烁起来。这一步相当于先打造一个硬件舞台。
3.1 在Vivado中创建工程与编写逻辑
打开Vivado 2021.1,点击“Create Project”。项目名称可以定为zynq_ps_pl_led_uart。在“Project Type”页面,保持默认的“RTL Project”并勾选“Do not specify sources at this time”,这样我们可以稍后再添加文件。接下来是关键的一步:选择正确的芯片型号。这需要根据你的开发板手册来确定。例如,对于XC7Z010-1CLG400C芯片,你需要在下拉筛选器中准确选择。选错型号会导致后续引脚分配和比

343

被折叠的 条评论
为什么被折叠?



