1.前言
为了让FPGA上电就能启动程序,往往在设计FPGA外围电路时都会配置一个掉电不丢失的Flash芯片,用于存储程序。但各种系列的FPGA所支持的Flash芯片信号又很有限,用常规的方式无法将mcs文件固化到Flash芯片中。本文首先介绍Xilinx 6/7系列FPGA所支持的Flash型号,在ISE工具下介绍如何固化未支持的Flash型号(以S25FL064L为例)。
2.6/7系列FPGA支持的Flash芯片型号
Flash有SPI、BPI等,常用的芯片型号为SPI,下表为7系列FPGA支持的SPI Flash芯片型号,包括Kintex-7、Artix-7、Virtex-7系列。
7系列FPGA支持的SPI Flash芯片型号
下表为其他系列FPGA支持的SPI Flash芯片型号,主要包括Spartan-3、Spartan-6、Virtex-5、Virtex-6。
3.问题分析
在设计硬件原理图的时候可能会不注意这些细节,导致外挂的Flash不支持,比如Spartan-6器件只支持S25FL064P的Flash芯片。笔者在做一个项目的时候也是使用的Spartan-6器件,但是外挂的Flash芯片S25FL064L,ISE iMPACT下载软件上并没有S25FL064L芯片,多次尝试其他芯片也是下载失败。仔细阅读提示框里的报错信息会发现是ID Check失败,要知道S25FL064L与S25FL064P芯片的时序完全一致,只是ID号不一样,因此我们只需要让ISE规避软件检查ID号,即可实现mcs文件的烧录。
4.具体操作方法
笔者遇到这个问题也是查了很多资料,其实操作很简单,只需要在电脑上添加环境变量XIL_IMPACT_SKIPIDCODECHECK=1。
添加完环境变量后,需要退出工程,重新进入工程,重新进入iMPACT,这个时候你会发现程序能够正常下载。