一、项目背景
明德扬(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芯片等元器件,可找我们理解。