本文来源:https://blog.csdn.net/shanekong/article/details/29923925

现象描述

在给 medium 板光端机做低温试验时,分别给发送版、接收板断电重新启动,发现有的板子在 -40° 可以启动,而有些板子在 -20° 都不能启动,需要升高温度到 0° 以上才能启动,此时观察到的现象是指示状态的 4 个 led 灯都点亮,表现为 FPGA 一直处于复位模式。

问题分析

主串配置模式电路图


Medium 光端机使用的 FPGA 芯片是 Spartan3E,PlatformFlash 是 XCF04S 。

FPGA 芯片有两个配置触发事件:上电复位(POR, power on reset),软件复位。低温试验中,我们采用断电重启的方式来检测 FPGA 是否在低温下可以重新启动,这里主要对上电复位触发重新配置的过程进行如下描述:


(1)FPGA 上电后,只有在内核电压、参考电压、IO 口电压都正常的情况下,才进入配置模式;

(2)下拉 PROG_B ,FPGA 复位,同时对配置存储空间进行初始化;

(3)将INIT_B ,DONE 管脚信号拉低,DONE 信号与 PROM 芯片的 CE 管脚信号相连,从而使 PROM 片选信号有效;INIT_B 为低,指示电源供压正常,FPGA 正处于配置存储空间初始化中;

(4)FPGA 在 PROG_B 管脚信号变为高电平时,开始配置过程;

(5)FPGA 在 INIT_B 上升沿中读取配置管脚 M[2:0] 的值,从而确定 FPGA 的配置模式;

(6)PROM 通过 Do 管脚将配置数据以 CCLK 时钟信号的速率传给 FPGA

(7)配置完成后,将 DONE 管脚信号置为低电平,指示配置已经完成。

以下将针对 FPGA 主串模式配置过程中几个关键的因素进行分析:

POR 电压要求

上电复位过程中,如果配置电源电压没有到达门限值,POR 电路将保持复位状态。配置电源有三个:


VCCIINT:给 FPGA 内核逻辑供压

VCCAUX:给专用配置管脚供压

VOCC_2:给外部连接的配置数据源(如 PROM )接口管脚供压

FPGA检测这三个电压值,一旦所有的三个电压值超出了特定的电压门限值要求,POR上电复位电路会释放对RESET控制,FPGA就可以在PROG_B出现低电平时,启动重新配置。


配置模式选择:主串模式(Master Serial)

M[2:0]= <0:0:0>,FPGA 配置模式选择管脚M[2:0]都应为低电平。在 FPGA 完成了内部配置存储空间初始化后,FPGAT_B在 INIT_B 上升沿的时候读取配置模式管脚的电平值,从而确定 FPGA 的配置模式。


查一下M0 M1 M2上的下拉电阻,这些脚 FPGA 内置的上拉很强,如果外接下拉电阻太大的话有可能下拉电平不够低,加上温度变化造成输入门限电压的变化就可能造成低温的时候不去用 SPI Flash 初始化。推荐阻值 470 欧以下,如果不复用引脚的话,建议直接接地。

配置时钟 CCLK

CCLK 信号是 JATG 配置数据传输的时钟信号,其信号完整性非常关键。CCLK 是由 FPGA 内部振荡器产生的,传给 Platform Flash PROM的 CLK 管脚。相应的,PlatformFlash PROM 通过 DO 以 CCLK 的速率将配置数据送给 FPGA 。如果CCLK 信号没有,重点检查内核供压是否为 1.2v 。FPGA 配置电路刚开始以最低的频率工作,如果没有特别指定,将逐渐提高频率。对于不同芯片和电平,CCLK 最大值如下。


PROG_B—FPGA 复位或者重新配置

PROG_B 对 FPGA 来说是一个异步控制输入信号,当 PROG_B 为低时,FPGA 复位,同时对配置存储空间进行初始化;当 PROG_B 由低变为高时,FPGA 开始重新配置过程;重新配置完成后,PROG_B 保持高电平,一旦 PROG_B 出现下降沿,并且低电平持续时间大于 500ns 时,FPGA 将开始重新配置过程。


PROG_B 为低期间,IO 管脚将表现为何种状态呢。在 HSWAP 为低电平的情况下,使能上拉电阻,一旦检测到 PROG_B 出现下降沿时,FPGA 的 IO 管脚将无效,被上拉为高电平。如果 HSWAP 为高电平,上拉电阻无效,FPGA 的 IO 管脚的状态是不确定的。

Medium 光端机中,HSWAP 通过一个510欧姆的电阻接地,因此 HSWAP 为低电平,当 PROG_B 为低电平时,FPGA 的 IO 管脚将被上拉为高电平,此时指示状态的四个 LED 灯点亮正好说明了这一现象。

INIT_B—FPGA 配置存储空间初始化指示信号

当电源供压达到电压门限值后,FGPA 将 INIT_B 置为低电平,指示正在对配置存储空间进行初始化。在 INIT_B 信号由低变为高电平时,FPGA 读取配置模式管脚 M[2:0] 的电平值,从而确定 FPGA 的配置模式。

在配置过程中,FPGA 通过将 INIT_B 置为低电平来指示配置数据错误,比如 CRC 出错。

DONE—FPGA 配置状态指示信号

当 FPGA 处于配置过程中时,DONE 为低电平;配置完成后变为高电平。可以用来指示 FPGA 的配置状态。

==>Medium 光端机中 FPGA 的 DONE 管脚外接 240 欧姆电阻(推荐值为 330 欧姆)与 相连,并且另一端外连接一个 LED ,然后接地。当 LED 点亮时,表示 FPGA 已经完成了配置。

总结

通过以上的分析,当 FPGA 不能正常配置时,可以从以下几个方面进行排查

  1. DONE 指示信号 LED 灯是否亮,亮表示配置完成;

  2. 测量电压是否正常,分别有内核电压(1.2v)、参考电压(2.5v)、IO口电压(3.3v);

  3. 检查配置模式 M[2:0] 是否正确,(M[2:0]=<0:0:0>);

  4. 使用示波器采集配置时钟信号,看是否正常,低于 12M(Spartan 3e + XCF04S)

  5. 查 PROM 的数据手册,PROM--XCF04S 可以工作在-40°到+85°的环境下。

参考链接

chrome-extension://ibllepbpahcoppkjjllbabhnigcbffpi/https://www.xilinx.com/support/documentation/user_guides/ug332.pdf
chrome-extension://ibllepbpahcoppkjjllbabhnigcbffpi/https://www.xilinx.com/support/documentation/data_sheets/ds312.pdf

扫码关注一起畅聊

深耕在FPGA  扎根于视频领域

卓越于神经网络

fpga初始化错误_FPGA低温启动失败相关推荐

  1. fpga初始化错误_FPGA的ROM初始化问题讨论

    在一些需要特殊运算的应用电路中,只读存储器ROM是关键元件,设计人员通常利用ROM创建各种查找表,从而简化电路设计,提高电路的处理速度和稳定性.FPGA是基于SRAM的可编程器件.掉电后FPGA上的配 ...

  2. 由于之前的错误,Context[]启动失败(SSM)

    [2022-03-22 05:47:50,261] 工件 ssmbuild:war exploded: 正在部署工件,请稍候- 22-Mar-2022 17:47:50.530 信息 [RMI TCP ...

  3. eclipse中tomcat提示404错误及tomcat启动失败(完美解决)

    404错误解决方案  在配置项目环境的时候遇到这么一个问题,在jdk maven tomcat都配置完成以后,在浏览器中输入:localhost:8080来准备启动tomcat的时候,提示404错误. ...

  4. fpga初始化错误_一种SRAM型FPGA单粒子效应加固平台设计

    随着半导体技术的高速发展,大规模集成电路变得更加复杂,开发周期变得更长.FPGA由于具备可编程性,其广泛应用可以降低电路的开发成本.然而,单粒子翻转(SEU)会使FPGA内部的大量的存储器变得不可靠, ...

  5. fpga初始化错误_关于用FPGA对sja1000进行初始化的有关问题

    关于用FPGA对sja1000进行初始化的问题 我用pio口与sja1000的各引脚相连,初始化的时候读写一直有问题,哪位大侠帮忙看看啊,主要是看看我的读写函数哪儿有问题,谢了!下面是源程序: uns ...

  6. 记一次帮同学搭建项目Tomcat启动失败,至少有一个JAR被扫描用于TLD但尚未包含TLD。

    文章目录 1.Tomcat报的错误 2.我是直接换个Tomcat就成功了,建议大家以后不要只安装一个Tomcat,有的问题是版本问题(本问题应该不是版本问题),比较复杂,如果以后遇到其他问题搞了半天是 ...

  7. idea 中 Tomcat 启动失败

    报错信息 org.apache.catalina.core.StandardContext.startInternal 一个或多个筛选器启动失败. org.apache.catalina.core.S ...

  8. mysql启动失败:mysql服务无法启动 服务没有报告任何错误 解决方法

    My SQL server8.0 安装后,启动失败,提示信息如下: 尝试以下步骤,最终解决问题: 1 查看host文件(C:WindowsSystem32driversetchosts),是否修改过本 ...

  9. 【解决】在 IPMONTR.DLL 中初始化函数 INITHELPERDLL 启动失败,错误代码为 10107

    症状: 无法上网 ping 127.0.0.1不通 netsh interface ipv4提示错误"在 IPMONTR.DLL 中初始化函数 INITHELPERDLL 启动失败,错误代码 ...

最新文章

  1. 基于MAP-MRF的视差估计
  2. 华为p8升级android8系统资源,华为鸿蒙系统已陆续推送! 安卓系统可无缝升级: 升级包容量高达6GB...
  3. 函数式编程 - 组合compose
  4. 毕业论文写作Tips
  5. 织梦直接写php标签,怎么在自己的php页面中使用dedecms标签
  6. HTML用户点击新建按钮,html – 需要点击按钮
  7. 360技术嘉年华第七季——测试之美 报名啦
  8. C# Lodop实现打印
  9. Windows 8 Directx 开发学习笔记(七)水波纹的实现
  10. 在ubuntu 20.04 上 安装 onnxruntime CUDA
  11. php 卡密支付破解 yj,卡密功能自助授权功能源码
  12. PHP数组按字符串长度排序
  13. 中小工厂的ERP和生产管理系统
  14. C++ protected 解析
  15. STGNN(www 2020)论文总结
  16. 当今几大主流服务器的操作系统简介
  17. childnodes与children详解
  18. C compiler cannot create executables问题
  19. 关于华为设备ospf进程中RID重叠的问题
  20. 为你的项目搭建sentry并且通过企微推送

热门文章

  1. 新功能:阿里云负载均衡SLB支持HTTP访问强制跳转HTTPS
  2. 钉钉总裁不穷首谈产品观:To B产品用户不只是CEO
  3. 如何保证 HBase 服务的高可用?看看这份 HBase 可用性分析与高可用实践吧!
  4. 广东制造按下加速键  千家中小企业上阿里云工业互联网
  5. Kafka精华问答 | Kafka的主要应用场景有哪些?​
  6. DevOps“兵器”60样,你都会使哪几样?
  7. input失去焦点验证格式_vue2多文本框的表单校验(3)-失去焦点触发校验
  8. mysql基础和高级整理_mysql基础整理01
  9. 无法启动此程序因为计算机丢失dtlui,电脑缺少dll文件_电脑开机总是出来DLL文件丢失,...
  10. Linux环境_源码安装LibreOffice实现文件在线预览doc,doxc,xls,xlsx,ppt,pptx 文件