本文为明德扬原创文章,转载请注明出处!

一、项目背景

       明德扬(MDY)在2021年承担了多个基于XILINX芯片的研发项目,包括VPX网络透明传输项目(芯片为XC7K325T-2FBG900)、某高端测试仪项目(芯片为XCKU060-FFVA1156)、某网闸设备项目(芯片为XC7Z030-FBG676)等,另外,明德扬自研了基于XC7K325T-2FBG900和基于XC7K410T-2FBG900芯片的核心板,在XILINX研发领域拥有丰富的经验。即使拥有丰富经验和积累,每个新项目我们均要投入相当大的精力去研发。例如本文章分享的案例,在一个研发设备的压力测试中,每隔3分钟对设备进行断电复位重启,部分设备会出现低于1%概率的FPGA加载不成功,重启300多次,会存丰1~3次的加载失败。

       为定位此问题,花费了一个多月,先后投入多位专家,最终确定问题的根源是“上电的时序问题”,特为此给大家分享。

二、XILINX的上电启动流程

        FPGA上电启动包含三大流程,分别是Setup,Bitstream Loading和Startup Sequence。本次故障的现象是FLASH有概率无法加载,因此定位出现问题的流程是Setup。

在第一阶段的流程中,FPGA首先要上电,其中VCCINT、VCCBRAM、VCCAUX、VCCIO要以由低到高的顺序依次上电。当芯片上电后,电压达到VCCO后在10~50ms内,init_b会拉高,初始化完成,FPGA开始加载配置工作。

但是FPGA上电第一次加载时,与PROGRAM_B信号没有关系,只需要达到init_b的延迟时间,当init_b拉高,FPGA就会加载配置。

三、问题原因:

        FPGA上电时序图如图1所示,时序要求如表1所示。上电后init_b会延迟10~50ms后拉高,然后CCLK开始输出,加载外部FLASH。通过示波器实测Tpor大约是20ms左右。而且经过反复测量发现,Tpor的延时是相对于VCCINT电压启动后的。

图1:FPGA上电启动时序

表1:FPGA上电时序要求

        因此,如果FPGA的链路启动时间过长,整个链路启动时间超过50ms的时候,init_b信号的上升沿就会正好卡在3.3V电压启动的过程中,如图2所示。此时FPGA认为已经可以进行加载流程,因此发送CCLK给外部FLASH。但是当前3.3V电压仅爬升到1.9V,还不足以启动FLASH芯片,因此FLASH芯片不会响应,FPGA在得不到FLASH回应后,init_b信号再次拉低,表示FLASH加载过程出现异常。导致连上仿真器发现FLASH没有加载成功。

图2:故障情况下的上电时序(黄线:3.3V 蓝线:init_b)

四、解决方案

      1、  减少电源链路启动的时间,将时间控制在50ms以内,同时寻找导通时间更短的MOS管,让3.3V电压爬升的时间缩短至1ms左右。

       2、  由于故障的根本原因在于FPGA开始加载FLASH时,3.3V点没有达到FLASH的工作电压,因此可以尝试更换一片宽压FLASH芯片,看看问题能否解决。

       3、 前面两种方案是基于不改版的情况下。如果后期可以改版,还是建议使用PCIE上来的12V电源,来提供整板的供电。所有电压都通过电源芯片进行转换。然后将3.3V电源芯片的PGOOD引脚连接至init_b上。这种方式是人为延迟了init_b跳变的时间,也就是说可以确保3.3V电压稳定之后,再去加载FLASH,这样就可以确保不会出现该故障。而且即使3.3V爬升速率很满,也可以在3.3V电源达到足够大的值之后再加载FLASH。图3就是在类似的板子上做了这样的试验,即使3.3V的上升时间达到了20ms,在init_b跳变的时刻,3.3V电源也已经达到了3.0V的输出,完全可以保证FLASH芯片正常工作。

图3:故障修复后的上电时序(黄线:3.3V 蓝线:init_b)

!!!本问题出现在XC7Z030-FBG676芯片,理论上大部分的XILINX型号均会存在此问题,出现此现象时可以参考。

明德扬(MDY)除了承接项目外,还可为客户提供FPGA芯片、电源芯片、AD芯片等元器件,可找我们了解。

XILINX偶然加载不成功的问题原因及解决方法相关推荐

  1. Matlab在win10运行不出图片,win10系统网页图片加载不出来的六种原因及解决方法...

    大家经常会使用浏览器来浏览一些站点查看图片,最近有的用户说win10系统打开网页时发现页面图片加载不出来,只显示一个×标志,让人百思不得其解,其实出现此问题可能是网速过低,或者浏览器设置里面没有开启相 ...

  2. 未来教育c语言加载不出来图片,win10系统网页图片加载不出来的六种原因及解决方法[多图]...

    大家经常会使用浏览器来浏览一些站点查看图片,最近有的用户说win10系统打开网页时发现页面图片加载不出来,只显示一个×标志,让人百思不得其解,其实出现此问题可能是网速过低,或者浏览器设置里面没有开启相 ...

  3. IDEA——找不到或无法加载主类的一种暴力解决方法

    IDEA--找不到或无法加载主类的一种暴力解决方法 参考文章: (1)IDEA--找不到或无法加载主类的一种暴力解决方法 (2)https://www.cnblogs.com/jsjliyang/p/ ...

  4. PS中添加插件 无法加载扩展,未经正确签署的解决方法

    为什么会出现PS无法加载扩展,未经正确签署的解决方法 因为PS没有在注册表中注册 我们如何解决呢? 打开注册表 添加字符串 这样就行了

  5. VS2013出现未能正确加载 microsoft.visualstudio.editor.implementation.editorpackage的解决方法

    出现这个问题的原因可能是配置更改或安装了另一个扩展,幸好之前用的不多,重新进行用户配置代价也不高,打开Visual Studio Tools: 选择VS2013 开发人员命令提示: 输入devenv ...

  6. 卸载Axmath 后,word加载项中还是有 Axmath 的解决方法

    我是自己之前不知道装什么的时候装了axmath,不是破解版.当我卸载重装时发现,卸不干净问题.找了很多方法,最后根据一位大佬卸载mathtype的方法给解决了.解决方法如下. 解决方法 在" ...

  7. spring boot启动类启动 错误: 找不到或无法加载主类 xxx.xxxx.Application 的解决方法

    spring boot启动类启动 错误: 找不到或无法加载主类 xxx.xxxx.Application 的解决方法 导入的一个外部的spring boot项目,运行启动类,忽然提示找不到或者无法加载 ...

  8. Webview加载pdf遇到的一些坑及解决方法

    大厂技术  高级前端  Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 问题来源 问题一切的来源还是得从那天说起... 有一天产品小王拿着电脑兴致勃勃的来到我的工位 ...

  9. centerandzoom 无效_在bootstrap modal 中加载百度地图的信息窗口失效解决方法

    这个问题其实很傻,解决方法没有任何技术含量,只是记录下工作中发生的事. 前阵子给一个汽车集团客户做了一个经销商查询系统,其中一个功能是使用地图标注经销商店面地址,并且实现导航功能. 页面演示地址:ht ...

最新文章

  1. linux下磁盘镜像软件DRBD的使用
  2. 是AI就躲个飞机-纯Python实现人工智能
  3. 小白都能看懂的网络性能测试
  4. 顽皮恶魔 牛客白月赛44
  5. Mobile DevOps 之 Proxmox 实现节流提效
  6. 计算机设备序列号都一样,如何使用adb工具
  7. ROS与Orocos
  8. 服务器webpack构建性能,webpack构建和性能优化探索
  9. 股市底部上证指数与物价上涨的关系01
  10. You have 3 unapplied migration(s). Your project may not work properly until you apply the migrations
  11. OpenCV骨架提取代码
  12. python三阶魔方_三阶魔方自动求解及动态可视化matlab代码
  13. 记坑Method threw ‘feign.RetryableException‘ exception.
  14. OSChina 周三乱弹 ——送你们个漂亮妹子!
  15. 题8:二叉树的下一个结点
  16. 华为服务器新版bios修改IPMI,华为服务器ipmi设置
  17. 如何挑选适合自己的笔记本电脑
  18. Basler驱动如何彩色相机白平衡说明
  19. 零基础使用Swift学习数据科学
  20. AtCoder Beginner Contest 177 题解

热门文章

  1. 《炬丰科技-半导体工艺》石英深反应离子刻蚀特性研究
  2. assuming drive cache: write through 处理
  3. java上传文件到七牛云中
  4. 什么是SVG?及SVG引入方式
  5. crc 校验错误_信道编码之循环冗余校验(CRC)
  6. 老程序员到40、50岁该怎么办?是继续留在软件行业还是转行?是默默死去还是向中层管理者蜕变?美国在老程序员的职业发展上的经验?...
  7. 【MATLAB数字图像处理】伪彩色增强
  8. 【强化学习】实现Atari游戏的自动化学习(仅供参考)
  9. 道阻且长,行则将至;行而不辍,未来可期。
  10. Android进程间通讯AIDL使用及问题详解(雷惊风)