FPGA|CPLD|ASIC论坛
直播中

这不是用户名

7年用户 135经验值
擅长:可编程逻辑
私信 关注
[问答]

Xilinx FPGA程序加载慢的原因和解决措施?

用的FPGA是Sparten6系列的XC6SLX100T的FPGA,选用的FLASH是W25Q128的SPI模式FLASH,烧写程序大小大概25M,烧写完后上电启动,FPGA加载时长大概12秒,启动比较慢,烦请大佬看看什么原因造成的,有什么解决措施能提高启动时间?谢谢

回帖(2)

卿小小_9e6

2020-6-10 15:58:09
本帖最后由 卿小小_9e6 于 2020-6-10 17:31 编辑

spartan6系列的FPGA参考链接中ISE部分的设置,亲测有效:
(设置等效于在约束文件*.ucf内添加指令)
https://blog.csdn.net/qq_30320423/article/details/103707249

其中,设置SPI速度一般最大取50MHz(过高可能会出现加载失败,我测试过的最高频率好像是66MHz)。SPI模式选择1X/4X,根据实际硬件选择。
3 1 举报
  • 这不是用户名: 谢谢,有效,学习到了
  • 这不是用户名: 顺便问一下,ISE里面能通过编写指令完成设置吗
  • 卿小小_9e6 回复 这不是用户名: 可以。
    完成你的需求设置,通常使用下述前两种方式:
    01.参考链接流程,完成配置并保存(保存后自动添加指令到约束文件,等效“02”);
    02.在ISE的约束文件*.ucf中添加指令,具体指令参考“01”;
    03.(Vivado中常用,对应约束文件为*.xdc;ISE不常用)在tcl对话框中输入tcl指令进行配置修改,等效“02”。所需功能不同,指令也不同。部分情况下,tcl指令=*.ucf指令。(tcl工具栏的使用及tcl指令,参考xilinx官方文档ug835/UG894/UG1290,推荐ug835)

h1654155275.5748

2020-6-10 13:55:51

最佳答案

Xilinx FPGA的配置模式通常有以下几种

1 JTAG模式

2 主串行模式

3 主并行模式

4 从串行模式

5 从并行模式

第二种的主串行程序,就是FPGA上电后自动从flash中加载程序,FPGA自动读取flash中的数据并运行,这个是使用最频繁的方式。

这个主串行是使用SPI接口。这个SPI的接口速度是可以配置的,如果使用Vivado编写程序,并直接生成bin文件固化。重新上电程序的加载速度较慢(就是FPGA通过SPI读取数据的速度慢)。

要想加快FPGA的加载速度,需要提高SPI的速度,具体做法就是在约束里面增加语句:

set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]

set_property CONFIG_MODE SPIx4 [current_design]

set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design]

第一句话是设置bit位宽;

第二句话是设置4线SPI模式;

第三句话是设置SPI速度(对速度影响最大的一句话);

这个是使用4线SPI,如果使用的是1线SPI的话,则只需要增加最下面一句话。这样加载速度就很快了。
1 举报

更多回帖

发帖
×
20
完善资料,
赚取积分