问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

ZYNQ 7020纯PL端程序固化操作流程详解

创作时间:
作者:
@小白创作中心

ZYNQ 7020纯PL端程序固化操作流程详解

引用
CSDN
1.
https://blog.csdn.net/weixin_45137708/article/details/141194839

ZYNQ纯PL端程序固化方式

前言

当我们要将开发完成的程序下载到芯片上板验证的时候一般都是通过JTAG线将程序下载到FPGA芯片内部,这种情况下当板子重新上电之后,我们先前下载进去的程序便会丢失,如果想要开发板重新上电之后依旧要执行我们想要的功能时,就需要将程序固化到FLASH或者SD卡中,并将开发板启动方式进行相应的设置。

纯逻辑的FPGA开发板程序固化是没什么问题的,但是对于ZYNQ来说分成了PS和PL侧,如果工程中同时使用了PS和PL同样的也能进行固化,但是如果我们只使用PL侧的资源进行功能开发,又该如何固化程序呢?不带ARM的程序固化没问题,但是对于ZYNQ来说想要只固化PL端的程序必须要用PS打配合,本文将以按键点灯为例子实现ZYNQ PL端的程序固化。

环境准备:

  • 软件:Vivado2020.2、Vitis2020.2
  • 硬件:正点原子领航者开发板ZYNQ7020

下面以简单程序按键点灯为例,将要固化工程进行引脚约束、时序约束、上板验证无误后进行如下操作:

1、调用IP创建块设计(Create Block Design)

输入模块设计名称后点击ok

搜索并添加ZYNQ IP核

双击调用的IP模块进行设置

点击 Peripheral I/O Pins进入IO配置界面

勾选使能Quad SPI Flash、SD0、UART1外设

展开SD0,勾选Card Detect,点击其中引脚47使其变绿

点击左侧菜单栏MIO Configuration选项

修改 Quad SPI Flash 和SD0 speed为fast,以及bank1 IO Voltage为LVCOMS1.8V

点击DDR Configuration,进行DDR设置,memory part需要设置为对应开发板上DDR的型号或者推荐的型号

点击OK完成设置

将下图中两个引脚进行连接,否则后续编译可能会报错

在Diagram空白处点击右键选择Add Module添加工程的RTL模块

然后点击Run Connection Automation进行自动连线

勾选全部模块自动连线,时钟源选择ZYNQ FCLK端口提供的50MHz时钟

连线后如下图:

这里我添加的模块只有一个输出端口“led”,需要右键模块中的led端口,然后选择"Make External"选项,将该信号导出到外部连接到LED管脚

选中rst_n端口点击右键,选择create port,创建复位端口

同理选中key_in端口,点击右键选择create port,创建输入端口

完成后击Run Block Automation

点击OK

完成后验证设计有没有问题

弹出如下窗口表示设计无误

点击选中左侧Source栏中的BD模块(keyLedBD),右键点击选择Generate Output Products

点击Generate

Generate完成

同样选中BD模块(keyLedBD),右键点击选择Create HDL Wrapper

点击OK

完成后Source中生成如下文件

将Block Design位置为顶层,否则后续引脚约束时没有DDR和FIXED_IO的引脚,我这里已经设置成了顶层,所以Set as Top是灰色

对引脚进行约束

保存更改,然后重新编译工程,生成Bit流文件

编译完成后导出硬件,点击菜单栏File—>Export—>Export Hardware进行导出,包含Bit流文件


下图为导出的硬件设计文件.xsa,Vivado2019之前的版本导出的硬件设计文件后缀是.hdf

2、进入Vitis IDE,Launch Vitis IDE,生成配置文件并烧录

点击菜单栏Tools—>Launch Vitis IDE,打开 Vitis IDE 开发环境

选择工作区路径

点击菜单栏File—>New—>Application Project

选择之前导出的硬件文件.xsa

填写工程名称

选择Zynq FSBL模板

编译工程生成elf文件

点击菜单栏Xilinx—>Create Boot Image,生成BOOT.bin文件

点击菜单栏Xilinx—>Program Flash,选择刚刚生成的BOOT.bin和FSBL.elf文件路径,注意:此时要确保开发板启动方式为JTAG模式

程序固化中…

终端打印固化过程信息

固化完成

然后将开发板断电,并将启动模式拨码开关拨至FLASH方式启动,重新上电后将从FLASH中读取程序开始运行。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号