自去年以来,国产化一直在进行,这是第二次使用国徽FLASH芯片。使用国徽FPGA芯片加国徽FLASH加载芯片SM25QH256M。
第一次使用XILINX的FPGA加SM25QH256M,在VIVADO中生成MCS文件,使用Hardware manager下载程序,添加FLASH,下载失败。镁光直接更换。FLASH直接下载成功。但问题还在这里,还没有解决。
最近又开始用国徽了SM25QH256M,我也有时间看这个问题。
阅读制造商提供的文件手册,其中一段解释了使用芯片的注意事项。
在SPI FLASH有些客户会用它作为用途FPGA使用配置芯片,但不是所有公司SPI FLASH都在FPGA在制造商支持的设备列表中,我们的设备也是如此。因此,如果客户需要这样使用,需要采取以下方法进行处理。
按文件所示的操作设置后,对FLASH进行烧录,第一次烧录过程中出现了如下错误导致烧录失败。
done.'1': Verification completed.'1':Programming in x4 mode.PROGRESS_END - End Operation.Elapsed time = 1070 sec.// *** BATCH CMD : setMode -pff// *** BATCH CMD : setMode -pff// *** BATCH CMD : setMode -pff// *** BATCH CMD : setMode -bs// *** BATCH CMD : setMode -bs// *** BATCH CMD : setMode -bs'1': Configuration data download to FPGA was not successful. DONE did not go high, please check your configuration setup and mode settings.
下载‘1’配置数据FPGA不成功。DONE请检查您的配置您的配置设置和模式设置。
程序下载不成功,观察FPGA的DONE信号,在impact下下载FLASH。失败后DONE信号一直在下降,LED灯未闪烁。一直不知道原因。在官网下载xapp586 Using SPI Flash with 7 Series FPGA 。阅读对比原理图。
这些情况是一致的。问题可能出现在SPI FLASH在配置选项中。
在原配置中,是的SPI配置采用以下配置。
set_property CFGBVS VCCO [current_design] set_property CONFIG_VOLTAGE 3.3 [current_design] set_property CONFIG_MODE SPIx4 [current_design] set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design] set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design] set_property BITSTREAM.CONFIG.UNUSEDPIN PULLUP [current_design] set_property BITSTREAM.CONFIG.SPI_FALL_EDGE YES [current_design] set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
设置电源为3.3v。
SPI模式为SPIx4传输。
设置SPI传输时钟为50mhz
设置从SPI闪存读取时使用的数据宽度为4位。
未使用的引脚全部上拉。
沿采样数据下降时钟。
自动压缩软件BIT文件。
对比XAPP586中的数据。
对于SPI FLASH为256Mb或者更大时,这个-g spi_32bit_addr需要设置为YES,这指示FPGA传输更大的闪存设备所需的更大的地址空间。我们使用FLASH空间为256Mbits,即32MB的,大于等于256Mb。添加XDC设置。
下面在XDC文件中加入这句话。
set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR YES [current_design]
生成bit流成功后,使用VIVADO生成MCS文件。
启动IMPACT下载MCS文件。下载成功。