如何在 AUP-ZU3 Zynq UltraScale+ 上定制 LED 闪烁功能
扫描二维码
随时随地手机看文章
最近,我开始使用来自赛灵思公司的 AUP-ZU3(Zynq UltraScale+) FPGA 开发板,并成功地完成了硬件设计,方法是创建并整合了一个用于 LED 闪烁的定制 IP 核。
该项目的目标并非仅仅是点亮一个 LED 灯,而是要全面了解 FPGA 设计流程,包括定制 IP 的创建、系统集成以及硬件验证。
项目概述
这个项目展示了如何:
•用 Verilog 语言设计一个硬件模块
•将其打包成一个可重复使用的定制专用集成电路模块。
•将其整合到 Vivado 块设计中
•将其部署在实际的 FPGA 硬件上
这种方法与实际的 FPGA 系统设计相一致,在这种设计中,可复用的 IP 块是可扩展架构的基础。
我所做之事
1. 用 Verilog 语言设计了一个参数化的 LED 闪烁模块
2. 使用 Vivado IP 包装器将该模块打包成一个定制的 IP 核。
3. 将该知识产权(IP)集成到一个 Vivado 块设计中
4. 将 IP 连接到 Zynq 处理系统(PS)上以进行时钟控制
5. 生成了比特流
6. 对 AUP-ZU3 FPGA 板进行了编程操作
7. 通过在板上运行位流,验证了硬件上的 LED 的闪烁情况
方法论
定制化 IP 设计
文件夹结构
知识产权:
•接受来自系统的时钟输入
•采用基于计数器的方法来划分时钟频率
•以可见的速度切换 LED 输出状态
随后,这一设计被整合进了一个可重复使用的知识产权模块中,从而使其能够在未来轻松地融入更大的现场可编程门阵列系统中。
系统集成
该定制的知识产权被整合进了一个名为“Vivado 块设计”的系统中,该系统与“Zynq UltraScale+ 处理系统”一同使用。
分析与见解
该项目引入了几个重要的 FPGA 设计理念:
定制化 IP 开发:为可扩展系统创建可复用的硬件模块
时序行为:确保设计符合时钟时序要求
硬件映射:将内部逻辑与外部物理设备相连接
关键整合点:
•处理系统提供了时钟(PL 时钟)
•该定制的集成电路会消耗时钟并生成 LED 信号。
•LED 的输出通过约束条件被映射到物理的 FPGA 引脚上。
挑战与经验教训
其中一个主要的挑战在于解决与未约束的 I/O 端口相关的 Vivado DRC 错误。起初,LED 输出(led_0)未被映射到物理引脚,这导致无法生成有效的比特流。
这一问题通过创建一个约束文件(.xdc)并正确地将 LED 分配到相应的 FPGA 包装引脚和 I/O 标准上得以解决。
另一个重要的学习要点是理解 Zynq 设备的系统级行为。由于该设计依赖于处理系统来提供时钟,因此必须对处理系统进行初始化,以便可编程逻辑能够正常运行。
这些挑战为我们提供了宝贵的经验教训,让我们得以深入了解:
•FPGA 引脚映射
•知识产权整合
•Zynq 系统中的时序依赖关系分析
结果
在解决了集成和约束方面的问题后,该设计得以成功部署到硬件上。
AUP-ZU3 板上的 LED 按预期方式闪烁,这证实了:
•定制 IP 的正常功能
•与处理系统的成功整合
•适当的约束设置
未来工作
该项目为更高级的基于 FPGA 的系统奠定了基础。接下来的计划步骤包括:
•扩展定制的 IP 以控制多个 LED 灯
•添加用于处理器控制操作的 AXI 接口
•连接按钮和外部设备
•实现基于脉宽调制的 LED 调光
•为实时应用开发硬件加速器
结论
该项目成功地展示了在 AUP-ZU3 平台上创建、封装及部署自定义 FPGA 硬件内核的过程。
这标志着朝着利用基于可复用知识产权的设计方法构建更复杂、模块化且高性能的 FPGA 系统迈出了重要的第一步。
这项工作是更大规模努力的一部分,旨在开发基于 FPGA 的嵌入式系统,以满足诸如机器人技术、感知以及智能交通等实时应用的需求。
媒体(包括)
已实施设备视图
本文编译自hackster.io





