ZYNQ自带ARM核处理器的FPGA芯片烧写及最小系统搭建,bit文件烧写

  • 1. 烧写背景

FPGA芯片,如果是ZYNQ系列这种自带ARM处理核的器件,包含PS和PL处理部分,只是逻辑的debug可以只使用PL部分。但是如果要实现文件的烧写就必须通过PS部分进行烧写。因为与外部flash芯片相连的QSPI是通过PS部分连接的,且也需要PS部分对FPGA的boot进行配置。

 

Zynq7000 SOC 芯片上电后,运行的是 ARM 系统(PS)。然后再通过 ARM 系统软件部分加载 FPGA 的比特流文件.bit 至 FPGA(PL),启动 FPGA 的逻辑功能。

  • 2. 烧写步骤
2.1.  PL端步骤

  PL部分逻辑测试完成后,开始添加PS部分调用。

  1. IP INTEGRATOR –> Create Block Design–>add–> ZYNQ7 Processing System生成一个PS的调用模块

  

2. 点击 Peripheral I/O Pins ,会出现以下的 IO 配置界面。
点亮下面Quad SPI Flash,还有UART0,如果还有其他管脚,也对应的点亮就行。

 

3. 在MIO Configuration中配置对应的管脚和电频,要与peripheral I/O pins中绿色部分一致。

 

4. 时钟配置

 5. DDR存储配置,也可以不enable DDR。DDR的信号,例如MT41K256M16HA-125黄色这部分型号必须一致,其他的可以不一样。

 

6. 完成后 Run Block Automation,自动将管脚的输入输出引脚加上了。

 

点击完成后变成:

 

7. 这两个脚可能需要连线,有的教程没有这一步,开发板入门教程连起来了,但是如果不连起来,可能会报错,可能与版本有关。

 

8. 在 Source 窗口中选中 design_1.bd,右键并先后选择Generate Output Projects 和 Create HDL Wrapper 选项操作。生成后如下图所示:

 

9.  把design_1.v例化进工程顶层,修改顶层代码,并将接口引出到顶层输出接口。PS端的接口不用编写XDC文件。

 

10 .保存并重新生成bit文件,再导出硬件。

选择菜单 File->Export->Export Hardware…导出,包含bitstream 文件。

硬件导出后,选择菜单 File->Launch SDK,启动 SDK 开发环境,完成PL端的操作。

 

2.2.  PS端步骤

PS端用于生成配置文件和引导文件,在SDK中进行操作。

  1. 建立hello word工程

File–New–Application Project,设置如下:

 

 

  1. 建立fsbl工程

这里的FSBL文件就是通过QSPI启动需要的引导文件,需要我们在SDK中新建,具体操作与建HELLO WORD工程一致,在Templates页面选择Zynq FSBL即可。

   

 

 

2.3.  生成.bin/.mcs格式文件

将程序烧写到Flash中实际就是将.bin文件或.mcs文件写入Flash,这里生成我们需要的.bin文件或.mcs文件,.bin格式文件用于SD卡启动与QSPI Flash启动,.mcs格式只能用于QSPI Flash启动。

1. 右击hello_test工程,选择create boot image

 

标记1:可以选择生成文件格式。

标记2:生成.bin/.mcs主要需要3个文件,分别是fsbl.elf文件,PL端生成的.bit文件与SDK中工程的.elf文件,需要注意的是这三个文件的顺序一定要正确。

由于这里用的是hello例程,系统已将3个文件导入。如果系统没有导入需要我们自己到工程文件夹下依次添加。

可以在工程文件夹下找到boot的文件了

 

 

  • 程序固化
3.1 通过SDK软件固化

打开 Xilinx–Program Flash烧写界面
1.导入生成的.bin文件。
2.导入fsbl工程下的fsbl.elf文件。
3.在擦除和烧写完成是进行自检。也可以不要3这个步骤速度更快

 

然后点击Program就可以完成烧写。

3.2 通过Vivado软件固化

通过JTAG连接板卡,在FPGA芯片选项右键,选择Add Configuration Memory Device,然后选择板卡上对应的Flash型号。

这个界面也是选择的在SDK生成的.bin文件以及FSBL文件,然后点OK就可以完成烧写。

以上就是全部ZYNQ系列FPGA通过QSPI启动的固化方式的介绍。

注意:一定要正确配置PS核的信息,包括DDR3型号和BANK的电压

  • 烧写不成功处理

建一个这样类型的design,需要注意一下方面:

1.上电后不能让FPGA加载一个错误的版本,如空的rt的bin,如果已经有错误的则一直按着复位键,让版本不启动再烧写。

2.bd问题,要及时更新,如果之前出现有错误的版本,需要全部删除了,重新再建工程。

3.三大步的流程问题。

4.如果选择了DDR,DDR的设定位宽一定要与实际中的位宽设定一致,是16bit还是32bit。

5.修改win11的环境变量(可能没什么用)

在系统环境变量里面加入

XIL_CSE_ZYNQ_UBOOT_QSPI_FREQ_HZ = 10000000

重启电脑

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2023年12月6日
下一篇 2023年12月6日

相关推荐