复旦微对标Xilinx 690T FPGA程序固化流程测试

概述:

针对复旦微对标xilinx的690T FPGA芯片进行程序固化,对不同方法的固化流程及固化时间对比,同时对固化后的加载过程进行测试并对比。通过使用不同方法固化及程序加载的对比分析,选出效率最高的一种方法。

一、程序固化方法

复旦微对标xilinx 690T芯片,使用xilinx相同的开发工具开发,目前使用Vivado 2018.3版本。通常在工程生成bit流文件以后,将bit文件转换为MCS文件或bin文件,可以直接使用vivado进行固化。但是根据复旦微描述,在直接使用vivado固化,在这个过程中编程flash不稳定,通过多次测试,确实存在这个问题,尤其是文件较大、固化到flash的时间较长时,容易固化失败,最后的校验结果通常会提示字节不匹配的报错信息。因此复旦微提供了一种专门解决此问题的插件,结合相应的文档说明按照流程可以实现程序的稳定固化。

1、复旦微固化方法:

参考《SPI_BPI编程工具使用说明_V1p5.pdf》文档,使用JFM_Kits插件,即可完成对bit文件转MCS文件后的固化。

2、使用vivado自带功能直接固化:

固化流程不在赘述。

3、固化前准备工作:

首先要通过vivado生成bit文件,在进行这个过程的操作前,首先要明确flash的型号,如果是国产对标型号,要先在vivado开发工具中找到对标的详细型号,确认flash的接口类型(x1/x2/x4),根据接口类型在工程中针对性进行修改,否则最后生成的bit可能和要生成的mcs/bin文件对标的flash SPI接口类型不同,最后报错。例如,flash的SPI接口是x4接口,但是vivado工程默认的SPI接口可能是x1,如果不提前设置,最后生成的bit属性为支持x1的SPI接口类型,这样在将bit文件转换为MCS或bin文件时,由于要选择flash型号和SPI接口x4类型,这时文件类型转换操作就会报错。为了避免不必要的麻烦,建议在编译工程前先根据原理图进行配置。

上述配置过程不在赘述。

二、不同固化方法测试对比

针对测试工程不做任何处理生成的未压缩的bit文件以及生成压缩后的bit文件,将其转换为MCS/bin文件后,分别使用复旦微和vivado固化流程进行固化,记录如下表。

总结:

1、固化文件较大时,复旦微提供的方法下载比较稳定,文件较小时可以使用vivado下载mcs或者bin文件。

2、在测试过程中发现,固化完成后PC连接JTAG不断开的情况下,对板卡重新断电上电,FPGA均无法正常从flash加载bit流,只有在PC断开JTAG的情况下对板卡断电上电后等待10几秒后在连接JTAG,才能检测到FPGA已从flash加载完bit。

三、高效固化程序建议

为提高效率,加快固化速度和提高固化稳定性,建议如下:

1、将工程中SPI接口时钟由3MHHz修改为50MHz。

2、在编译工程前修改生成bit配置,改为生成压缩bit。

3、连上JTAG,在Hardware Target Properties JTAG时钟由默认的6MHz修改为12MHz。

4、选用稳定的下载器:固化较小文件时可以使用vivado下载,下载mcs或bin文件时间相差不大;下载较大文件时,可以使用复旦微提供方法,比较稳定,时间稍微比vivado方法长一点,但是稳定。

四、一点小技巧

1、生成bit文件前在vivado Bitstream Settings...上配置flash SPI时钟为50MHz;设置Bitstream Properties的Enable Bitstream Compression为TRUE。

2、连接上JTAG后,在Tcl Console执行set_param labtools.auto_update_hardware 0命令,可以解决FPGA断电后无法正常从flash加载bit的问题;将JTAG时钟由默认的6MHz修改为12MHz。

3、第一条技巧中可以通过约束实现:

set_property BITSTREAM.CONFIG.CONFIGRATE 3 [current_design]

set_property BITSTREAM.GENERAL.COMPRESS FALSE [current_design]

第二条可以通过新建一个Vivado_init.tcl脚本,添加一下内容:

set_param labtools.auto_update_hardware 0

将脚本放到:installdir/Vivado/version/scripts/Vivado_init.tcl实现。

也可通过在CMD中运行行指令:hw_server -e "set jtag-poll-delay 3600000000" 调整硬件管理器的刷新周期实现。

相关推荐
HAPPY酷1 天前
DDR 压测与系统验证知识全集
arm开发·驱动开发·fpga开发·硬件架构·硬件工程·dsp开发·基带工程
Aaron15881 天前
基于FPGA实现卷积方法比较分析
arm开发·算法·fpga开发·硬件架构·硬件工程·射频工程·基带工程
Terasic友晶科技1 天前
DE10-Nano的HDMI方块移动案例——显示器时序(DMT)标准介绍
fpga开发·计算机外设·hdmi·显示器时序·dmt
search71 天前
芯片-IP集成
fpga开发
9527华安1 天前
紫光同创FPGA实现 TCP/IP 协议栈,千兆网服务器版本,提供5套工程源码和技术支持
服务器·tcp/ip·fpga开发
Terasic友晶科技1 天前
【答疑解惑】如何临时解决带Nios II的FPGA设计在测试时遇到time_limited文件导致elf下载不了的问题
fpga开发·nios ii·quartus lite·opencore plus·time_limited
FPGA_小田老师1 天前
AXI_DMA IP核实战:24路并行数据高速存储方案
fpga开发·axi_dma·adc采样并行数据存储·高速并行数据存储
崇子嵘1 天前
为什么需要“输出锁存”
fpga开发
szxinmai主板定制专家2 天前
柔宇柔性显示屏+x86、arm显示解决方案,还有库存
arm开发·人工智能·fpga开发
CHY_1282 天前
JESD204B 协议解析(5)ILA序列
fpga开发·jesd204