引言
在嵌入式系统设计与开发的广阔领域中,Xilinx Zynq平台以其独特的ARM处理器与FPGA可编程逻辑(PL)的结合,成为了众多创新项目的首选。然而,随着技术的不断进步,Zynq PL的编程方式也经历了从经典到现代的转变。今天,我们就来回顾一下,在2018.1版本之前与之后,Zynq PL编程解决方案的演变,从xdevcfg到FPGA Manager的跨越。
一、2018.1之前:zynq PL编程解决方案(With xdevcfg)
在2018.1版本之前,xilinx_devcfg.c驱动是Zynq平台下进行PL编程的主流方式。这个驱动通过/dev/xdevcfg设备文件,允许用户在Linux系统启动后,直接向FPGA的可配置逻辑(CL)写入bitstream文件。这种方法简单直接,但在新版本中被逐渐淘汰,以支持更加先进和灵活的管理机制。
二、2018.1之后:zynq PL编程解决方案(With FPGA Manager)
随着Xilinx在2018.1版本后引入FPGA Manager,Zynq PL的编程方式迎来了重大变革。这一新的解决方案不仅提升了编程的灵活性和可靠性,还简化了开发流程。现在,我们来看看如何使用FPGA Manager来加载bitstream文件。
步骤1:从.bit文件生成.bin文件
首先,使用Bootgen工具将.bit文件转换为.bin格式,这是FPGA Manager所要求的。通过编写一个.bif文件来描述bitstream文件,然后利用Bootgen进行转换。
Full_Bitstream.bif 文件应该包含如下内容:
all:{design_1_wrapper.bit /* Bitstream file name */}
然后执行如下命令:
bootgen -image Full_Bitstream.bif -arch zynq -process_bitstream bin
步骤2:通过sysfs接口加载Bitstream
Linux系统启动后,可以通过sysfs接口来设置和加载bitstream。首先,设置相应的标志位,然后将.bin文件复制到/lib/firmware目录,并通过写入/sys/class/fpga_manager/fpga0/firmware来加载bitstream。
1)Set flags for Full Bitstream.
echo 0 > /sys/class/fpga_manager/fpga0/flags
2) Loading Bitstream into PL.
mkdir -p /lib/firmware
cp /media/design_1_wrapper.bit.bin /lib/firmware/
echo design_1_wrapper.bit.bin > /sys/class/fpga_manager/fpga0/firmware
结语
从xdevcfg到FPGA Manager,Zynq PL编程解决方案的升级不仅体现了技术的进步,也为开发者提供了更加高效、灵活的工具。随着Zynq平台在更多领域的应用,我们有理由相信,未来的FPGA编程将更加智能化、自动化。让我们一同期待,并积极参与这一激动人心的变革吧!
更多内容可观注微&信&公共号:T型码农要学习



















![World of Warcraft [CLASSIC] Engineering 335-420](https://i-blog.csdnimg.cn/direct/6e692cb9c39e4efb9cfb3642857def5b.jpeg)