FPGA基础入门篇(三) 程序的固化和下载

FPGA基础入门篇(三)——程序的固化和下载
本系列博客采用ZYNQ 7000系列的开发板。使用的是vivado 2017.4 Xinlinx的软件, 本章也可只使用其他开发板,后续主要以ZYNQ嵌入式SOC学习为主。
FPGA程序的固化和下载基于上次的流水灯实验进行固化和下载。

一、

原理图:
XC7020-2CLG400内部soc接口
在这里插入图片描述
在这里插入图片描述

  1. 固化流程
    在这里插入图片描述
    SD固化:将镜像文件你拷贝至SD卡,设置拨码开关,使系统从SD模式启动。那么断电重启后,系统都会从SD模式启动。
    QSPI-FLASH 固化:将镜像文件你拷贝至FLASH,设置拨码开关,使系统从QSPI-FLASH 启动。那么断电重启后,系统都会从FLASH启动。
  2. 固化准备
    如果要固化ZYNQ的程序,需要为这个程序做一个镜像文件。
    a. PL部分需要bit文件。PS部分需要elf文件。还需要把这两个文件安置好,还需要FSBL.elf文件
    需要三个文件:
    FSBL.elf
    .bit
    .elf
    即:BOOT.bin = FSBL.elf + .bit + .elf 。
    关键是FSBL.elf的制作生成。我们可以SDK生成。

二、 BOOT.bin制作过程

  1. 创建工程
    打开之前的已经写好并且编译下载好的流水灯工程
    在此基础上添加 Block Design.
    按如下操作:
    在这里插入图片描述
    输入ZYNQ并回车找到自己的芯片。等待创建IP,可以看到最后已经创建了ZYNQ CPU IP.
    在这里插入图片描述
    双击ZYNQ,可以看到下面的配置界面。
    在这里插入图片描述

  2. 修改MIO接口配置
    如果不是配套的开发板,请参考自己的原理图进行查看
    a. 首先修改bank电压。
    bank1电压为1.8V, 对应原理图中的bank501.
    bank0电压为3.3V, 对应原理图中的bank500.
    在这里插入图片描述
    b. 配置QSPI Flash 接口
    在这里插入图片描述
    c. 配置SDIO接口(TF卡)
    在这里插入图片描述
    d. 配置串口
    在这里插入图片描述
    e. 时钟配置
    CPU时钟,开发板为33.33333M,默认设置
    DDR 采用默认设置。
    CPU默认的主频为默认667M,对于不同速度的CPU,等级是不一样的。
    QSPI改到125M,否则无法加载到FLASH.
    在这里插入图片描述
    f. 修改DDR
    根据不同型号来设置。
    在这里插入图片描述
    g. 去掉默认的GP接口
    在这里插入图片描述
    h. 操作完以上步骤即可以保存设置,并run block automation
    在这里插入图片描述
    可以看到右图配置好接口后的ZYNQ.
    注:如果需要修改的地方,双击ZYNQ芯片会出现配置,设置完成后重新保存。即可。

  3. source窗口中可以看到已经创建好的bd文件,修改我们的flow_led的程序,增加ZYNQ IP接口调用部分来调用BD。
    在这里插入图片描述
    a. 右键bd文件,创建一个顶层文件。
    在这里插入图片描述
    b. 利用上面自动产生的system_wrapper.v文件。将其中的模块调用复制到我们的flow_led中实现调用。
    在这里插入图片描述
    c. 赋值模块接口到我们的folw_led中的接口中,并修改为逗号。
    以下的io 定义是不需要自己定义的,都是ARM自带的功能,可以直接从顶层文件中复制过来。也不需要进行约束。
    在这里插入图片描述
    d. 保存后可以看到flow-led下有bd文件。
    在这里插入图片描述
    e. 然后删除顶层文件
    这个过程其实是将arm的部分添加到FPGA的部分中。只是arm的接口之类不需要我们自己定义。(arm的IO是固定的不需要重新分配管脚),也不需要修改管脚约束。
    在这里插入图片描述
    f. 最后编译生成bit文件。
    右上角显示编译过程,需要等待几分钟。
    在这里插入图片描述

  4. 导入SDK中。
    上面生成了bit文件,需要导入到硬件。建立SDK工程。
    a. 在file工具栏中选择export hardware
    在这里插入图片描述
    b. 勾选 include bitstream
    在这里插入图片描述
    c. 然后在file的选择launch SDK
    在这里插入图片描述
    d. 等待导入完成,如下图。
    在这里插入图片描述
    e. 在SDK中的file中选择>new>application project
    在这里插入图片描述
    f. 工程名命名为HelloWorld.
    在这里插入图片描述
    g. 再新建一个应用工程
    在这里插入图片描述
    h. 选中hellowworld工程(要做固化的工程)右键选择creat boot image
    在这里插入图片描述
    窗口中出现上面三个文件。FSBL.elf, flow_led.bit, HelloWorld.elf 三个文件
    i. 直接creat image 即可完成boot.bin制作,此文件作为SD卡启动文件和SPI启动文件。
    在这里插入图片描述可以看到生成BOOT.bin文件。

  5. QSPI-FLASH的启动。
    a. 系统时钟,用于配置dector的速度。
    在设备管理器中修改,新建系统环境变,修改后需要重启电脑,让环境变量生效。
    在这里插入图片描述
    b. 修改FSBL中的main.c文件的内容,由于我们使用的vivado软件为2017.4版本。
    在这里插入图片描述
    将开发板的开关模式调到QSPI启动模式,开发板通电。
    c. 打开program flash memory
    将镜像文件和FSBL文件找到,然后program。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    完成后,重新让开发板通电,可以看到流水灯正常运行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摆渡沧桑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值