0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

潘文明 ? 来源:明德扬吴老师 ? 作者:明德扬吴老师 ? 2022-02-24 09:16 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

一、项目背景

明德扬(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电压启动后的。

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

图1:FPGA上电启动时序

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

表1:FPGA上电时序要求

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

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

图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芯片正常工作。

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

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

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

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

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1646

    文章

    22105

    浏览量

    621041
  • 芯片
    +关注

    关注

    460

    文章

    52755

    浏览量

    444567
  • 测试仪
    +关注

    关注

    6

    文章

    4041

    浏览量

    58729
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    训练好的ai模型导入cubemx不成功怎么处理?

    训练好的ai模型导入cubemx不成功咋办,试了好几个模型压缩了也不行,ram占用过大,有无解决方案?
    发表于 03-11 07:18

    STM32CubeIDE在运行时显示Failed to execute MI command,为什么?

    成代码cubeMX界面发现左侧栏RCC与SYS有黄色感叹号,烧录不成功原因是否与它有关?新手上路实在不知道如何解决,各位大神有什么解决方法可以让程序成功烧录运行吗?
    发表于 03-07 10:15

    DLPC3478初始化不成功是什么原因

    : https://www.ti.com/tool/DLP3010EVM-LC 启动时候系统上电成功 但是没有VOFS,VRST,VBIAS均为0V,这是什么原因呢?初始化不成功 是怎么回事我们应该怎么做呢 我们没有接 3478
    发表于 02-21 09:47

    烧录DLP4500 FIRMWARE的过程中一直不成功,什么原因

    我在烧录DLP4500 FIRMWARE的过程中一直不成功,总是在最后一步停止不动,显示download completed in xxxxxx,但进度一直是0%不动,如图,请问这个问题如何解决?
    发表于 02-21 07:57

    DLPC3478初始化不成功是怎么回事?

    到flash里面, 系统上电后默认拉高PROJ_ON 到2V, LS_IN 有1.8V电压LS_OUT 确是0.5V之后没有VOFS,VRST,VBIAS均为0.1左右V,这是什么原因呢?初始化不成功 是怎么回事我们应该怎么做呢 我们3478 2005 3010都接好了,
    发表于 02-20 06:33

    无功补偿故障原因解决方法

    无功补偿故障可能由多种原因引起,以下是一些常见的故障原因及其解决方法
    的头像 发表于 01-29 14:25 ?1799次阅读

    使用DAC7760的帧错误检查功能,试过几次,一直不成功是哪里出了问题?

    想使用DAC7760的帧错误检查功能,试过几次,一直不成功,有没有好心的网友能提供一下DAC7760的CRC校验码生成的算法,或者给出几个普通的发送信息和它对应的校验码。
    发表于 01-15 07:20

    ADS1262寄存器的写入不成功是什么原因

    最近在调ADS1262,spi通信时序用的就是之前调1248的时序,没有问题。但是在调1262的时候,对寄存器的写入不成功,设置以AINCOM作为恒流源输出,1ma电流,然而流经2.4k电阻后电压
    发表于 12-30 07:46

    用cc2530驱动ADS8862采集数据,ADS8862老是驱动不成功,为什么?

    用cc2530驱动ADS8862采集数据,2530SPI主模式配置完毕,ADS8862老是驱动不成功,请问有没有相关例程呢?望大佬提供下,谢谢!
    发表于 12-10 07:04

    调试ADS1246时,出现向ADS1246写入寄存器不成功但读取采样数据正常的现象,为什么?

    在调试ADS1246时,出现向ADS1246写入寄存器不成功但读取采样数据正常的现象,MUC与ADS1246不在一块电路板上,SPI总线通过30cm的排线+FPC1.0连接,在sclk线上
    发表于 12-10 06:34

    ADS127L11配置ADC使用外部时钟以及FILTER[4:0]都不成功,为什么?

    配置ADC使用外部时钟以及FILTER[4:0]都不成功,spi的时序都是正常的,使用的是4线spi
    发表于 11-13 08:03

    龙门式蔡司三坐标测量机无法加载驱动的原因解决方法

    运行大型龙门机MMZ系列设备时,如果Z轴碰撞保护无法激活,会导致驱动无法正常加载。这里给大家提供以下方法,为您排忧解难。图片中的箭头标记绿灯无法点亮,导致驱动无法正常加载解决方法Z轴
    的头像 发表于 10-30 14:11 ?1220次阅读
    龙门式蔡司三坐标测量机无法<b class='flag-5'>加载</b>驱动的<b class='flag-5'>原因</b>和<b class='flag-5'>解决方法</b>

    purepath-cmbevm控制母版插上USB接口提示安装驱动而且不成功,怎么处理?

    刚买的新的母板,昨天还好好的,今天插上USB接口提示安装驱动而且不成功。而且设备名称为Unknown。不知道是什么问题应该怎么处理。换台电脑故障一样
    发表于 10-29 07:10

    MUC对TAS3251配置不成功原因

    MUC对TAS3251配置不成功 MCU配置TAS3251的初始化,我对照datasheet的47页进行配置,始终无法出出声音,需要寻求一下帮助希望提供一下初始化代码 I2C进行了如下配置
    发表于 10-10 06:40

    tas6424E-Q1 iic的sda的数据位初始化的时候最后一位出现半高电平 , 一直初始化不成功,为什么?

    现在所用的芯片tas6424E-Q1iic的sda的数据位初始化的时候最后一位出现半高电平 ,一直初始化不成功 ,波形图和原理图如下,可能导致原因
    发表于 09-27 09:35