复旦微对标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" 调整硬件管理器的刷新周期实现。

相关推荐
forgeda4 小时前
从Vivado集成Lint功能,看FPGA设计的日益ASIC化趋势
fpga开发·vivado·lint·eco·静态检查功能
hexiaoyan82714 小时前
国产化FPGA开发板:2050-基于JFMK50T4(XC7A50T)的核心板
fpga开发·工业图像输出·vc709e板卡·zynq 通用计算平台·模拟型号处理
雨洛lhw14 小时前
The Xilinx 7 series FPGAs 设计PCB 该选择绑定哪个bank引脚,约束引脚时如何定义引脚电平标准?
fpga开发·bank·电平标准
红糖果仁沙琪玛17 小时前
FPGA ad9248驱动
fpga开发
minglie120 小时前
XSCT/Vitis 裸机 JTAG 调试与常用命令
fpga开发
沐欣工作室_lvyiyi21 小时前
基于FPGA的电梯控制系统设计(论文+源码)
单片机·fpga开发·毕业设计·计算机毕业设计·电子交易系统
阿sir1981 天前
ZYNQ PS XADC读取芯片内部温度值,电压值。
fpga开发
@晓凡1 天前
NIOS ii工程移植路径问题
fpga开发·nios ii
博览鸿蒙2 天前
FPGA会用到UVM吗?
fpga开发
ThreeYear_s2 天前
基于FPGA实现数字QAM调制系统
fpga开发