Zynq-7000 SOC动态加载PL文件:Linux下FPGA Manager与xdevcfg驱动

13 下载量 43 浏览量 更新于2024-08-03 1 收藏 364KB PDF 举报
“xilinx zynq PL(编程逻辑) 动态加载实现” 在Xilinx Zynq-7000 System-on-Chip (SoC) 的应用中,编程逻辑(PL)的加载有三种常见方法。这些方法针对不同的使用场景,从调试到稳定版本的部署,各有特点。 1. Fsbl加载: 这种方法通过Xilinx SDK加载.bit文件,利用Xilinx的编程流程来更新FPGA。这种方式适用于开发阶段的调试,但其缺点是电源断开后,加载的信息会丢失。 2. U-boot加载: 在这个方法中,通过Petalinux工具,将.bit文件整合到BOOT.BIN文件中,然后通过SD卡或闪存启动加载。这种方式通常用于生产稳定版本的系统烧录,但由于涉及的步骤较多,相对复杂。 3. Linux动态加载: 这是最便捷且适用于调试的方法。在Linux系统运行时,可以动态地加载.bit文件。自Vivado 2018.1版本起,Xilinx引入了FPGA Manager驱动来替代xdevcfg驱动,使得在Linux环境下加载PL文件更为简便。 以下重点介绍Linux动态加载的方式: 首先,我们需要一个特定的硬件和软件环境,如Zynq-7000 SoC、Xilinx SDK、Ubuntu 16.04操作系统以及Petalinux 2018工具链。 1. 内核配置: 在Petalinux环境中,需要配置内核以便支持FPGA Manager驱动。这可以通过运行`petalinux-config -c kernel`命令进入配置界面进行设置。 2. 设备树配置: 检查设备树配置文件(例如`zynq-7000.dtsi`),确保没有包含devcfg的设备树节点,因为我们将使用FPGA Manager。 3. bootgen工具: 使用bootgen工具生成加载所需的文件。在Ubuntu中,创建一个bootgen目录,编写`bootgen.bif`配置文件,然后执行bootgen命令生成`system_top_wrapper.bit.bin`文件。值得注意的是,bootgen命令必须在Petalinux 2018环境下运行,不适用于Windows或早期版本的Petalinux。 4. Linux系统中的PL文件加载: - Petalinux 2018系统: 将`system_top_wrapper.bit.bin`文件复制到Linux文件系统中,并创建一个名为`loadPL.sh`的脚本来执行加载操作。这个脚本通常包括调用FPGA Manager驱动的命令,以加载新的.bit文件。 - Petalinux 2014系统: 对于2014版本的Petalinux,加载流程基本相同,但也需要将生成的文件复制到系统并创建相应的加载脚本。 动态加载PL文件在Linux系统中提供了灵活性,使得开发者能够在不重启系统的情况下更新FPGA配置,这对于调试和测试新的设计更改非常有利。同时,它简化了流程,提高了工作效率。