TQTT_KU5P开发板教程---文件的烧写与程序固化

文档功能介绍

本文档所描述的为文件的烧写固化,利用spi芯片将程序固化带芯片上,可以让开发板在重新上电时也可以跑程序。我们所使用的芯片型号为mt25qu256-spi-x1_x2_x4.本次实验采用的在led_shift项目的基础上将流水灯程序固化到flash芯片上,当再次上电时,FPGA直接在flash芯片上读取程序运行。

硬件资源

我们通过在官方网站上查数据手册查出该芯片的位流长度为123449056bits,官方给出的最小flash的配置内存为128Mb,如图2-1所示

|----------------------------------------------------------------------------|
| |
| 图2-1 官方文件截图 |

而我们使用的mt25qu256的Quad-SPI FLASH芯片他有256Mb的内存已经超出官方所给的2倍,所以以经足够FPGA使用。该芯片使用1.8VCMOS标准电压。由于 QSPI FLASH 的非易失特性,在使用中它可以存储 FPGA 的配置 Bin 文件以及其它的用户数据文件。如图2-2所示。

|----------------------------------------------------------------------------|
| |
| 图2-2 Quad-SPI FLASH芯片原理图 |

由于他主要功能是存储 FPGA 的配置 Bin 文件,当重新上电时FPGA从中读取文件运行程序。所以该芯片的引脚都是与FPGA芯片直接连接。如图2-3所示

|----------------------------------------------------------------------------|
| |
| 图2-3 Quad-SPI FLASH芯片与FPGA的引脚配置 |

根据查找官方的数据手册得知,M0.M1.M2这三脚的配置是将SPI模式设置为主模式(GND为低电平,+1.8V为高电平,配置为001),如图2-4,2-5所示

|----------------------------------------------------------------------------|
| |
| 图2-4 原理图配置 |
| |
| 图2-5 官方提供的配置表格 |

生成bin文件

将下列代码加入到pin.xdc文件中

复制代码
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
set_property CONFIG_MODE SPIx4 [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 51.0 [current_design]
set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
set_property BITSTREAM.CONFIG.UNUSEDPIN Pullup [current_design]

右键打开Bitstream Settings窗口---> 双击打开Bitstream Serrings...,如图2-6所示

|----------------------------------------------------------------------------|
| |
| 图2-6 |

把bin_file勾选上---> 点OK,如图2-7所示

-raw_bitfile:生成未经封装的原始比特流文件(通常为.rbt或.bin),不包含头部信息。

-mask_file:生成与比特流对应的掩码文件(用于部分重配置或安全性操作)。

-no_binary_bitfile:不生成标准的二进制比特流文件(.bit)。

-bin_file*:生成二进制格式的比特流文件(*可能表示通配符命名或特定后缀)。

-readback_file:生成回读文件(用于验证比特流是否正确写入硬件)。

-logic_location_file:生成逻辑单元位置信息文件(用于调试或布局分析)。

-verbose:启用详细输出模式,显示生成过程中的详细信息。

|----------------------------------------------------------------------------|
| |
| 图2-7 |

之后直接生成比特流文件,如图2-8所示

|----------------------------------------------------------------------------|
| |
| 图2-8 |

等比特流成功生成时,如图2-9所示

|----------------------------------------------------------------------------|
| |
| 图2-9 |

选择flash芯片型号mt25qu256-spi-x1_x2_x4

(特别注意不能选x8因为x8代表这两块flash芯片)如图2-10所示

|----------------------------------------------------------------------------|
| |
| 图2-10 |

点开三个点打开文件夹选择bin文件---> ok

文件地址一般在runs/impl_1中,如图2-11所示

|----------------------------------------------------------------------------|
| |
| 图2-11 |

最后等flash烧写完成之后重新开启电源开关或者摁复位键(SW2),当上电时ld10(dong)灯亮时就代表flash启动成功,开发板会按照固化的程序运行。

图2-12 这张图所展示的时没有加上xdc文件中的语句,bin文件高达15070K BYTE,并且不加那些语句,下载速度和启动速度会变成非常慢

|----------------------------------------------------------------------------|
| |
| 图2-12 没有加xdc代码的 |

这是加上语句后产生的bin文件,才3717K BYTE,缩小了将近4倍,如图2-22所示

|----------------------------------------------------------------------------|
| |
| 图2-22 加上xdc代码的内存 |

下面来解释一下这段代码的意思

复制代码
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
设置 SPI 总线宽度为 4 位
set_property CONFIG_MODE SPIx4 [current_design]
使用 4 线 SPI 模式
set_property BITSTREAM.CONFIG.CONFIGRATE 51.0 [current_design]
配置时钟频率为 51.0 MHz。
set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
压缩生成的比特流文件
set_property BITSTREAM.CONFIG.UNUSEDPIN Pullup [current_design]
将未使用的 FPGA 引脚设置为 上拉(避免悬空导致不稳定)

本文档所使用的例程与代码都在以下链接中

复制代码
通过网盘分享的文件:led_shift.rar
链接: https://pan.baidu.com/s/1kX0pu-VFcNQLbq4z23E9mw 提取码: sprq 
相关推荐
逼子格1 小时前
十五种光电器件综合对比——《器件手册--光电器件》
单片机·嵌入式硬件·硬件工程师·led·硬件工程师学习·电路图·光电器件
电鱼智能的电小鱼1 小时前
eFish-SBC-RK3576工控板外部RTC测试操作指南
linux·嵌入式硬件·实时音视频
电鱼智能的电小鱼2 小时前
AGV导航控制器技术方案——基于EFISH-SBC-RK3576/SAIL-RK3576的国产化革新‌(新一代工业级自主可控解决方案)‌
linux·嵌入式硬件·安全·web安全·边缘计算
许有杨3 小时前
STM32的看门狗
stm32·单片机·嵌入式硬件
狄加山67514 小时前
STM32的智慧农业系统开发(uC/OS-II)
stm32·单片机·嵌入式硬件
xyd陈宇阳15 小时前
嵌入式开发面试题详解:STM32 与嵌入式开发核心知识全面解析
stm32·单片机·嵌入式硬件·面试
Johnson Sheng15 小时前
STM32H743单片机实现ADC+DMA多通道检测+事件组
stm32·单片机·嵌入式硬件
小智学长 | 嵌入式15 小时前
STM32部分:3、STM32CubeMX 工程创建
stm32·单片机·嵌入式硬件
hfdz_004216 小时前
USB接口的PCB设计
嵌入式硬件·硬件工程·pcb工艺
博览鸿蒙17 小时前
FPGA设计如何快速入门?(内附学习视频)
fpga开发