- 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部分调用。
- 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中进行操作。
- 建立hello word工程
File–New–Application Project,设置如下:
- 建立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文章来源:https://www.toymoban.com/news/detail-718505.html
重启电脑文章来源地址https://www.toymoban.com/news/detail-718505.html
到了这里,关于ZYNQ自带ARM核处理器的FPGA芯片烧写及最小系统搭建,bit文件烧写的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!