FPGA之BPI fast configuration注意事项


参考文档:xapp587和UG470;


一、配置模式

1、BPI configuration支持异步读配置模式和同步读配置模式,而同步配置的时间约为异步配置的8%;配置时间的计算见第3点;
2、同步配置和异步配置在硬件连接上的区别为CCLK和ADV_B的区别,异步配置时flash这两个信号管脚接到GND,同步配置模式则是连接到FPGA(同步配置硬件连接支持异步配置),如下图所示:
在这里插入图片描述
在这里插入图片描述

3、配置时间的计算与对比:同步配置模式下,CCLK可以达66MHz及更高,如果使用外部EMCCLK,配置时钟可达100MHz;而异步配置模式下,CCLK通常不超过10MHz;配置时间计算公式如下:
在这里插入图片描述
在这里插入图片描述

二、BPI flash的选择

1.选择BPI注意事项

1.根据应用选择存储容量;
2.根据所需配置时间选择FLASH数据位宽(同步读配置只支持16bit位宽的flash);
3.选择flash I/O电压范围;

2.支持同步读配置的FLASH

仅有MICRON公司的G18F和P30后缀系列FLASH支持同步读配置模式中的写命令时序:
1.G18F后缀的FLASH如:28F00AG18F;
2.P30后缀的FLASH如:PC28F00AP30EFA;

3.BPI FLASH在ISE中的设置

1、在ISE中,如使用同步读配置模式,需要右击“Generate Programming File”打开“Process Properties”,将“-g StartupClk”设置为“CCLK(默认就是)”,将“-g BPI_sync_mode”选择为“Type1”或“Type2”(Type1=G18F,Type2=P30),其它“-g ConfigRate”、“-g Compress”配置速率与是否压缩根据实际情况更改;(只有7系列的FPGA可选“-g BPI_sync_mode”等配置,如SP6就没有);
2、如果想使用EMCCLK时钟代替FPGA内部的CCLK时钟,则必须在“-g ExtMasterCclk_en”选项中选择分频设置,默认是disable,使用EMCCLK时必须更改;如下图所示:
在这里插入图片描述
在这里插入图片描述

三、使用命令行生成bit及mcs的步骤

a) 在开始菜单下找到ISE Design Suite 32/64bit Command …的命令输入界面;
b) 生成bit的命令:bitgen.exe -w -g StartUpClk:CClk -g Compress -g ConfigRate:12 -g BPI_sync_mode:Type1 -g ExtMasterCclk_en:div-1 -g BPI_page_size:1 -g BPI_1st_read_cycle:1 G:\project\CODE\K7\CLTOP.ncd
G:\project\CODE\K7\CLTOP_xxxx.bit
注:以上代码中,根据实际情况更改橘黄色参数;红色字体是路径,根据实际情况更改;TOP.ncd是生成bit需要的ncd文件,TOP_xxxx.bit是生成的bit名字。
c) 生成mcs的命令:Promgen -w -p mcs -c FF -bpi_dc parallel -data_width 16 -o C:\Users\Administrator\Desktop\flash_file_name -s 131072 -u 00000000 C:\Users\Administrator\Desktop\xc7k325t_u1_top.bit
注:以上代码中,根据实际情况更改黄色参数,16是flash数据位宽,131072是flash的存储容量,计算方式为:131,072 x 1,024 bytes x 8 bits = 1,073,741,824=1Gb,00000000是BPI flash的起始地址;红色字体是路径,根据实际情况更改;flash_file_name是生成的mcs名字,xc7k325t_u1_top.bit是生成mcs需要的bit文件。

四、在VIVADO中设置BPI configuration模式

a) 首先打开已编译完成工程的implementation,即open implementation design;
b)	然后在设置(settings)-->Bisttreamconfigure additional bitstream settings;
c)	根据应用设置CCLK、Configuration Rate、enable external configuration clock…、configuration Vlotage、configuration modes等等,如下图所示:

在这里插入图片描述
在这里插入图片描述
注:
1、configuration rate这项,如果不更改默认是3MHz,你会发现固化程序后,FPGA会在几秒甚至十几秒才会启动(done信号拉高);而该时钟如果设置的过高,如33MHz这种,FPGA可能在上电后根本启动不了,因为速率过高导致数据出错(FPAG的启动过程可以参考我前面的文章:xilinx 7系列FPGA配置、速率比较、专用管脚说明及启动顺序等介绍–>第5节);一般我设置为12MHz比较合适。
2、configuration modes这项,默认勾选了JTAG的模式,而其他模式如x8/x16这些需要手动选择,如果不勾选,在生成mcs文件时,可能会报错误导致生成mcs文件失败。
3、在general这个选项下,还有个压缩选项可以选择,默认是不压缩的,我建议是选上;举个例子,V7_690T的bit在不压缩的情况下大小约为27MB,而JTAG仿真器的下载速率一般是3MHz或6MHz,咱们选6MHz,27M*8bit/6Mb≈36秒,加上其他启动步骤、校验等等,时间算40秒上下,这个时间很长了;如果是个程序不大再压缩了,bit可能只有4MB,时间也只需要5~6秒,大大节约了时间。
以上的选项设置了都可以在xdc文件中查看。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: FPGABPI连接方式是指用于将外部存储器与FPGA芯片进行通信的接口。BPI全称为Boot Peripheral Interface,也被称为串行外部存储器接口。 BPI连接可以通过多种方式实现,主要有串行接口和并行接口两种方式。 串行接口方式是指利用少量引脚通过串行通信协议来实现与外部存储器的数据传输。其中,常用的串行接口方式有SPI(Serial Peripheral Interface)和I2C(Inter-Integrated Circuit)两种。SPI接口是通过四根引脚(SCLK、MOSI、MISO、SS)实现和外部存储器之间的通信,具有简单、高速、灵活等特点;而I2C接口则是通过两个引脚(SCL,SDA)实现通信,具有多设备连接、简化总线结构等优势。 并行接口方式是指通过多个引脚同时传输数据,具有传输速率快的特点。常用的并行接口方式有两种,分别是Asynchronous Synchronous Dynamic RAM(ASDRAM)和DDRII接口,这两种接口方式主要在数据传输的协议上略有不同。 总而言之,FPGABPI连接方式是通过串行接口或并行接口将外部存储器与FPGA芯片进行连接,串行接口方式包括SPI和I2C,而并行接口方式则主要有ASDRAM和DDRII接口。不同的连接方式适用于不同的应用需求,可以根据具体的应用场景进行选择。 ### 回答2: FPGABPI连接方式是指通过串行接口实现FPGA与外部闪存(如Nor Flash)之间的通信。BPI(Boot and Programming Interface)可以帮助FPGA启动配置文件以及在运行时进行数据读写操作。 一种常见的BPI连接方式是使用SPI(Serial Peripheral Interface)协议。SPI是一种同步串行通信协议,通过四根信号线(CLK、MISO、MOSI、CS)实现数据传输。在FPGA引脚中,CLK连接到时钟信号源,MISO连接到外部闪存的DO(Data Output)引脚,MOSI连接到外部闪存的DI(Data Input)引脚,CS则是片选信号,用于选择与FPGA通信的目标闪存。通过以上连接方式,FPGA可以通过SPI协议读取外部闪存中的数据,或将数据写入到闪存中。 另一种常见的BPI连接方式是使用2线或4线的JTAG(Joint Test Action Group)接口。JTAG是用于硬件测试和调试的一种标准接口,可以通过调试器或编程器与FPGA进行通信。在BPI模式下,JTAG接口可以用于FPGA配置和程序加载。具体连接方式取决于所使用的JTAG编程器和FPGA型号。 总结来说,FPGABPI连接方式可以通过SPI协议或JTAG接口实现,用于FPGA配置、程序加载和数据读写操作。不同的连接方式适用于不同的应用需求和硬件配置。 ### 回答3: FPGABPI连接方式是指将BPI Flash(串行闪存设备)与FPGA进行连接的方法。BPI连接方式是通过使用FPGA的片内资源,将BPI Flash与FPGA相连,实现FPGABPI Flash的读取和写入操作。 在FPGA中,可以使用片内的专用IO引脚或通用IO引脚来连接BPI Flash。通常情况下,使用片内的专用IO引脚来连接BPI Flash具有更好的性能和可靠性。BPI Flash通常支持多种不同的接口,如SPI(串行外围接口)或QSPI(四线序列外设接口)。 在BPI连接方式中,首先需要配置FPGA的引脚映射,将FPGA的IO引脚连接到BPI Flash的对应引脚上。然后,使用FPGA的时钟控制逻辑和数据读写逻辑来实现与BPI Flash的通信。 在读取数据时,FPGA会通过控制BPI Flash的片选、时钟和数据线,发送读命令给BPI Flash,并接收BPI Flash返回的数据。在写入数据时,FPGA会将要写入的数据发送给BPI Flash,并控制相应的命令和时钟信号。 通过BPI连接方式,FPGA可以实现对BPI Flash的读取和写入操作,从而实现对存储在BPI Flash中的数据的读取和修改。这种连接方式可以用于实现FPGA的固件存储和更新,以及与外部设备的数据交互等应用场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

宝沐熙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值