原创 【博客大赛】FPGA下载奇怪问题一例

2013-5-7 09:05 3197 14 19 分类: FPGA/CPLD 文集: ALTERA FPGA

FPGA下载奇怪问题一例

王敏志

概述

         最近困扰笔者一个问题一直没有得到解决,行此文记录备查,同时在博客发布求助于大家,并契合本月测试测量之主题^0^。问题的大概情况是笔者一块板子通过JTAG下载程序的时候出现了问题,目前笔者一共生产了三块板子,只有一块板子出现下载问题。

硬件结构

笔者在多篇博文中介绍过单链多FPGA的结构,出现问题的板子就是这种结构。笔者给大家介绍一下自己项目的实际情况,即一个JTAG链有两片FPGA,而这两片FPGA共用一片EPCS64作为配置芯片,如图1所示,而其AS配置电路如图2所示。

20130507090352749001.jpg

1:单JTAG链多FPGA

20130507090402925002.jpg

2:一片EPCS64配置两片FPGA

         如图2所示,我们看到nCONFIGnSTATUS都有外部10K电阻上拉,这就是笔者硬件基本结构。

问题细节

         问题板子的问题出现在笔者使用SignalTap II下载sof文件到器件时,2FPGA均下载完后提示我config_done无法“go high”。FPGA也无法正常工作,其实就是FPGA没有正确下载成功。经过测量config_done确实没有被拉高,从图2我们可以看到config_done有很好的外部上拉。

         分析ALTERA器件的配置过程以及配置时序图,我们知道上电后nCONFIGnSTATUS先后有一个低电平,然后nCONFIG被迅速拉高,之后器件释放nSTATUSnSTATUS开漏结构使得其被外部上拉电阻拉高,nSTATUS的由低到高的变化提示FPGA开始准备接收配置数据,配置完成后FPGA会释放config_done使得config_done被外部拉高得以完成配置过程,而FPGA才可以成功进入用户状态。

         笔者测量nCONFIG为高电平,但是nSTATUS为低电平,而且是一上电就是低电平。正常情况是这两个引脚上电瞬间都为低电平,然后nCONFIG被器件迅速释放并被拉高,接着是nSTATUS被释放并被拉高,奇怪的是为什么nSTATUS没有被拉高?

         之后更奇怪的事情发生了,折腾一段时间后,笔者已经束手无策了,偶然的机会笔者同事没有使用SignalTap II下载程序,而是使用Programmer来下载,居然下载成功,config_done也正常释放并被拉高,FPGA也能正常工作,但是nSTATUS居然还是保持低电平状态,不可思议。

         笔者分析了SignalTap IIProgrammer下载程序的异同,相同点是都是JTAG模式下载sof文件,不同点是Programmer能成功下载是因为programmer是点击Start按钮后一个动作同时下载两片FPGA,而SiganlTap II必须一片一片地下载。

20130507090410126003.jpg

3Programmer一次性下载链上器件

         如图3所示为Programmer下载器件时,直接勾选所有器件,然后点击Start按钮即可一次性下载所有器件,这样下载就能成功,如果一次勾选一个器件,一片一片下载,结果和SignalTap II一样。但是如图4所示的SignalTap II的下载功能,在“device”菜单框里一次只能选择一个器件下载。

20130507090420960004.png

4SignalTap II下载功能区

分析及结论

这个问题目前还未找到为何nSTATUS在上电伊始就一直维持为低电平,似乎是器件并没有释放,由于链上有多个器件,不清楚是一片未释放还是两片都未释放,如果是一片未释放,那么到底是哪片也是一个问题。笔者分析应该不是已经释放而上拉未成功造成此问题,因为如果是上拉的问题很好排查并得到解决,笔者也试图改变过上拉电阻,问题依旧。

更困扰笔者的是,nSTATUS一直为低的情况下,链路居然能够下载成功。

参考

[1] Arria GX数据手册

[2] Altera配置手册

[3]

文章评论5条评论)

登录后参与讨论

coyoo 2014-8-12 09:21

可以使用SignalTap来调试;但关键是两片fpga之间通信接口要首先明确。

用户1738735 2014-8-11 20:53

再次请教下coyoo神,在调试FPGA链的时候,如果想检验两片FPGA间的通信情况,用SignalTap或者JTAG下载SOF文件在线调试时有什么好的方法吗?如果有资料可以发送一份到tgdong91@163.com吗?

用户433548 2014-4-24 16:01

还是谢谢王老师啊,我只有再找找问题在哪了。PS:看了您很多博文,还是挺受教的,谢谢!

coyoo 2014-4-23 08:51

我有很多板子,都是一样的板子,目前只有发现这一块有这个问题;由于不影响下载,所以后来就没有再管它了。呵呵

用户433548 2014-4-22 16:27

请问coyoo大神解决这个问题没有啊,小弟菜鸟一个,最近自己DIY了一个系统板,在用JTAG下载程序时候也出现这个问题勒,可否不吝赐教呢?谢谢!
相关推荐阅读
coyoo 2024-11-16 13:54
不同ADC采样同一前端模拟信号时转换用时差异分析
概述 同一组前端模拟信号接入由不同型号ADC组成的模数转换电路时,采样后在FPGA中发现采样用时差异较大。本文主要分析这个时间差异形成的原因,并记录该差异产生对系统造成的影响。系统数字化简介 项目前端...
coyoo 2024-11-10 13:04
ALTERA Cyclone 10器件的使用-7:FPGA片内RAM资源利用率思考
概述 项目使用的FPGA目标器件为Cyclone 10 GX系列规模最大一颗料,由于功能升级增加了功能模块更多,发现器件片内RAM不够使用了。为了探索片内RAM使用的利用率问题,从代码RTL级与编译软...
coyoo 2024-11-10 12:30
转知乎:幽灵般的人体成像技术-PET
幽灵般的人体成像技术——PET - 知乎...
coyoo 2024-11-09 10:26
AD9633默认情况下调试记录(二)
概述 所谓默认情况,即如器件手册中图2所标示那样。对应AD9633的调试,除了涉及到ADC自身,还需要兼顾前端驱动器,系统中AD9633驱动器使用了差分运算放大器,这里不在赘述,笔者已有相关文章论述。...
coyoo 2024-11-07 10:40
AD9633默认情况下调试记录(一)
AD9633在旁路SPI接口时如何在FPGA逻辑中确认字边界概述 AD9633与FPGA之间的LVDS接口初调试,ADC可以通过SPI接口对其内部寄存器进行各项配置。在SPI接口未调通之前,对LVDS...
coyoo 2024-11-02 12:18
比较器检测模拟脉冲说明(三)
概述 继续说明(二)探讨的比较器使用问题,然后延展到高速比较器选型问题。第四次迭代已经修正了比较器与后级或门器件的互联端接问题,然而比较器输出仍然在较低参考阈值电压设置时出现了问题。本文主要探索该问题...
我要评论
5
14
关闭 站长推荐上一条 /2 下一条