ZYNQ作为一款集成了ARM处理器和FPGA的可编程SoC,在开源社区中有大量精彩的项目。这些项目涵盖了从底层硬件设计到上层软件应用的全栈式开发。
Linux 与操作系统
这是ZYNQ最活跃的领域之一,因为其双核Cortex-A9可以运行完整的Linux系统。
Xilinx Linux GitHub (官方)
linux-xlnx: Xilinx维护的Linux内核。
u-boot-xlnx: Xilinx维护的U-Boot。
device-tree-xlnx: 设备树生成器相关源码。
说明:这是Xilinx官方维护的Linux内核、U-Boot(Bootloader)、设备树等源码仓库。几乎所有ZYNQ开源项目都基于此。
链接:https://github.com/Xilinx关键仓库:
Buildroot
说明:一个简单、高效、易于定制的嵌入式Linux构建工具,可以快速构建一个精简的根文件系统、工具链和内核。
链接:https://buildroot.org/
注意:Buildroot的源码包里已经包含了对ZedBoard, ZC702等众多ZYNQ开发板的默认配置。
Yocto Project / PetaLinux
说明:PetaLinux是Xilinx基于Yocto项目定制的SDK,用于构建嵌入式Linux系统。虽然PetaLinux本身不完全开源,但它构建的系统和使用的配方(recipes)很大程度上是基于开源的Yocto项目。
链接:https://www.yoctoproject.org/
FPGA 加速与HLS
这类项目展示了如何利用ZYNQ的PL(FPGA)部分为特定应用进行硬件加速。
PYNQ
说明:一个革命性的开源框架。它将ZYNQ的PL部分封装成Python库,允许软件工程师和数据科学家通过Python脚本直接调用硬件加速模块,而无需深入理解FPGA设计。社区提供了大量PYNQ兼容的Overlay(比特流+驱动)。
链接:http://www.pynq.io/
GitHub:?https://github.com/Xilinx/PYNQ
Vitis Accelerated Libraries & Vitis AI
-
-
- Vitis加速库:?https://github.com/Xilinx/Vitis_LibrariesVitis AI:?https://github.com/Xilinx/Vitis-AI
-
说明:虽然是Xilinx(现在是AMD)主导,但它们是开源的。提供了一系列针对常见算法(如图像处理、数据压缩、金融、AI推理等)的、经过优化的硬件加速IP核。
链接:
HLS(高层次综合)示例
说明:Xilinx官方和社区提供了大量用C/C++/OpenCL编写并通过HLS生成硬件IP核的示例,例如图像滤波器、矩阵乘法、加密算法等。
链接:https://github.com/Xilinx/HLS_Example_Designs?(以及Vitis和Pynq的GitHub中都有大量HLS示例)
裸机与实时应用
对于需要低延迟、高确定性的应用,ZYNQ也可以运行裸机程序或实时操作系统(RTOS)。
FreeRTOS
说明:非常流行的开源RTOS。Xilinx为其提供了官方移植和驱动支持,适合用于ZYNQ的实时控制任务。
链接:https://www.freertos.org/
Xilinx移植: 在Vitis或Vivado的安装目录中可以找到示例工程。
Zephyr OS
说明:一个新兴的、模块化的小型实时操作系统,支持ZYNQ平台,并且社区活跃。
链接:https://www.zephyrproject.org/
特定应用与完整系统
这些项目展示了如何用ZYNQ构建一个完整的、功能特定的系统。
Zynq Radio
说明:一个开源的软件定义无线电(SDR)项目,基于AD-FMCOMMSx板卡。
链接:https://github.com/analogdevicesinc/zynq-radio
OpenCPI (Open Component Portability Infrastructure)
说明:一个用于嵌入式系统(尤其是FPGA和处理器混合平台如ZYNQ)的组件化开发框架。
链接:https://opencpi.github.io/
LiteX / Linux-on-LiteX-Vexriscv
-
-
- LiteX:?https://github.com/enjoy-digital/litexLinux-on-LiteX-Vexriscv:?https://github.com/litex-hub/linux-on-litex-vexriscv
-
说明:LiteX是一个用Python构建FPGA核的框架,非常灵活。它可以在ZYNQ的PL部分创建一个软核CPU(如VexRiscv),然后在这个软核上运行Linux。这虽然“绕过了”ZYNQ自带的ARM硬核,但展示了极大的灵活性,是一个很酷的研究项目。
链接:
自制CPU/计算机架构
说明:许多计算机架构的教学项目会选择ZYNQ作为平台,在PL部分实现一个简单的RISC-V或MIPS CPU,然后让PS部分作为外设控制器或监控器。
如何开始?
选择一块开发板,从官方资源入手,参与社区,根据你的兴趣方向(AI、SDR、工业控制、网络加速等),总能找到相关的开源项目作为起点。
关注微信公众号『ZYNQ』,回复“加群”加入fpga/zynq技术交流群。
720