Xilinx A7 FPGA的上电启动的时间分析···加快从flash启动时间

FPGA技术江湖 2026-03-30 08:35

 

 本篇主要讨论Xilinx A7 FPGA的上电启动的时间分析··········加快从flash启动时间

 

Xilinx A7 FPGA的上电启动的时间分析···加快从flash启动时间图1

 

在测试板卡时,发现FPGA板卡上电启动后,从flash读取配置信息的时间大约需要5、6秒的时间,这个时间个人感觉有点长了。

 

FPGA型号:XC7A35T-FGG484-2

Flash型号: n25q128

 

那为什么是5、6秒呢?

 

下面我们分析一波:

 

FPGA板卡上电启动后,需要从flash读取配置信息。

 

flash的接口为spi。

 

我们在利用vivado设计时,一般默认spi的模式为spix1,也就是一个时钟一根数据线传输一个bit。

 

那么我们一共需要从flash中读取出来多少bit呢?

 

Xilinx A7 FPGA的上电启动的时间分析···加快从flash启动时间图2

 

从上述综合结果来看,大概是2141x1024x8个bit(注:配置文件的大小之和选择的芯片有关系,和设计的复杂度无关)。

 

那么从flash读取的时钟是多少频率呢?

 

我们在利用vivado设计时,一般默认为3MHz(这个不一定呦,和芯片也有一定的关系)。

 

如何查看这个默认时钟呢?

 

笔者使用软件为vivado 2019.2,(其他版本应该类似吧-----)。

 

打开下述的任何一个即可。

 

 

Xilinx A7 FPGA的上电启动的时间分析···加快从flash启动时间图3

 

点击tools,选择edit device properties····

 

Xilinx A7 FPGA的上电启动的时间分析···加快从flash启动时间图4

 

选择Configuration···················

 

Xilinx A7 FPGA的上电启动的时间分析···加快从flash启动时间图5

 

可以看到默认的配置时钟的数据。

 

那么我们可以大概算一算了,bit文件的大小为:2141x1024x8个bit,利用3MHz的时钟读取,需要5.84秒左右(实际启动的时间要比这个长,需要包括上电延迟、模式检测、读取时间、配置等等,不过这个读取时间占据了主要比例)。

 

如果想着加快这段时间的话,我们可以通过加快这个配置时钟,来进行缩短这段时间。

 

笔者尝试将此时钟设置为6MHz。

 

上述改为6MHz后,点击ok。然后点击保存。xdc文件中会多一句话:

 

Xilinx A7 FPGA的上电启动的时间分析···加快从flash启动时间图6

 

通过这句话来看,这个数字就是我们配置的时钟速率,后续设计时,如果需要更改此频率,可以直接在xdc中加入这句话,然后修改数字即可。

 

重新编译,生成配置文件,然后配置。

 

经过测试,重新上电后,时间大概3秒钟左右即可启动成功(时钟速率快了一半,时间也差不多缩小了一半)。

 

那我们设置为多少呢?觉得肯定是越高越好哈。那能不能写成100呢?

 

这个是不能的哈。我们来看看软件里面的值:

 

Xilinx A7 FPGA的上电启动的时间分析···加快从flash启动时间图7

 

只能够设置为这个里面的值,不能自己随便写。

 

那么我们可以选择最大的那个(66MHz)吗?

 

答案是不一定能选择,这个去确定flash是否支持66MHz的读写速率,以及FPGA和flash之间的PCB连接线是否能够跑这个速率。

 

笔者的flash经过查看手册,可以看到读取的最大速率为54MHz。

 

Xilinx A7 FPGA的上电启动的时间分析···加快从flash启动时间图8

 

结合一下,可以选择50MHz(可以尝试一下,需要看PCB连接线是否支持这个速率)。

 

Xilinx A7 FPGA的上电启动的时间分析···加快从flash启动时间图9

 

经过测试,是可以使用的,启动的速度是可以的。

 

很多的“教程”中一般要求学习者,不论三七二一,先把这句话写入到xdc中,用于加速配置。

 

这个是不对的,不要养成习惯(下述实例为网络查询,笔者没有验证)。

 

当选择不同的芯片时,配置所支持的速率是不同的。

 

Xilinx A7 FPGA的上电启动的时间分析···加快从flash启动时间图10

 

如果在xdc中依然写入50MHz的配置速率,那么就会出现无法匹配,进而使用默认最低速率配置。

 

关于配置的速率,在此告一段落。

 

我们还可以通过配置spi的模式,来进行加快速率。有很多的flash是支持spix1、spix2、spix4(可以同时用多根线传输数据)的,另外也需要看flash与FPGA之间硬件连接是否支持。

 

Xilinx A7 FPGA的上电启动的时间分析···加快从flash启动时间图11

 

Xilinx A7 FPGA的上电启动的时间分析···加快从flash启动时间图12

 

Xilinx A7 FPGA的上电启动的时间分析···加快从flash启动时间图13

 

通过查看硬件的链接方式,选择自己模式。在选择spix4时,如果选择的频率过高,并且pcb链接没有等长(线长差距较大时),可能会导致配置失败,可以酌情降低配置速率。

 

配置模式选择,然后点击OK即可。

 

Xilinx A7 FPGA的上电启动的时间分析···加快从flash启动时间图14

 

xdc中就会多出下面这句话:

 

Xilinx A7 FPGA的上电启动的时间分析···加快从flash启动时间图15

 

笔者经过测试,在笔者的板卡中,时间确实缩短了。

 

另外还有一种方式可以缩短这段时间,就是压缩配置文件。

声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。 
FPGA
more
基于FPGA的直接扩频通信系统设计(附代码)
用Python给Verilog设计自仿进阶:FPGA仿真如何极致压榨CPU
FPGA零基础学习精选 | IIC协议驱动设计
FPGA/SoC+x86 AMD 技术峰会(12月16日 深圳)
国际先进!中科亿海微国产嵌入式FPGA IP核及EDA系统设计技术通过科技成果评价
量子安全新屏障:国产 FPGA 芯片集成后量子密码技术问世
FPGA杂谈:APB、AHB-Lite、AXI-Lite的选型与痛点
FPGA+DSP/ARM架构开发与应用
初创公司硬刚英伟达,FPGA要掀翻GPU!成本爆砍50倍、功耗大降80%!
基于FPGA的自动白平衡算法的实现(附代码)
Copyright © 2025 成都区角科技有限公司
蜀ICP备2025143415号-1
  
川公网安备51015602001305号