FPGA不能下载

FPGA不能下载
FPGA不能下载

关于Altera器件不能下载的问题总结!请大家补充!(转)

笔者前一段时间在调试电路板时碰到了器件不能正确下载的问题,无奈之中只能上论坛查找相关帖子,发现遇到类似问题的人不在少数,此类帖子约有好几十,但笔者感觉对于面临问题的新手来说,相关帖子的参考价值还不够充分:一是帖子太分散,不易于查找;二是帖子提出问题和现象的多,解答的少;三是有些问题具有相关性,如果放在一起说明可能会更明白一些。因此,笔者觉得有必要将相关的帖子中的内容简单综合一下,并将我刚刚遇到的问题及解决方法共享出来,以便其他人参考。建议其他以前有过相关经验的同志也不吝将自己的经验和解决方法(这对后来者特别有参考意义)拿出来与大家共享。

笔者先抛砖引玉了:

器件为cyclone_ep1c20,配置芯片为epcs4,留有AS接口和jatg接口。遇到的问题为:AS方式下不能下载,但jatg方式下可以正常下载。采用BBII电缆,在QuartusII中报错为"Error:can't recognize silicon ID for Device1"。经检查电路连接无错误,fpga与epcs4之间的引脚存在波形,dclk,data,ncs,asdi 脚上都有始终输出,由于epcs4是刚买的芯片,没有配置信息,因此上电时FPGA 始终尝试从epcs4中读取配置信息,conf_done脚始终为高。接上下载线后下载时,发现nconfig脚不能被拉低。后换了台机器重试,问题依旧,最后重新找了条下载线,AS方式下下载成功。经验:一般情况下参考datasheet中的说明和电路图进行连接,应该不会有什么问题;有问题时可以先查时序,确认无误后可以考虑其他的一些因素:下载线、电脑(有的电脑并口坏掉或可能驱动能力不够),软件******是否完全等。Jatg下载过程中发现偶尔会下载失败,重新上电后正常。以下为我从以前的帖子中整理的一些注意事项:

1、使用下载线之前需要先安装驱动。

2、QT之中先要选择下载线的类型,并选上相应的下载选项。

3、检查电路连接,注意焊接质量,芯片上的电压有没有和外围的电路上的电压连上。

4、片子损坏(据说有的片子只能下载一次就不能下载了)。

5、电源有问题,输出电压不够,或纹波太大。

6、下载线有问题,可能引起很多错误:不能下载,或者下载之后程序不能运行(假下载?)等等,建议多在下载线上找找原因。

7、换机器试一试。

8、确认所用的软件版本有无问题,不行试试别的版本。

以前的帖子上还有很多其他的问题和现象,篇幅所限,不一一列举了。个人感觉关键的是两点:问题的现象和解决的办法,如果能够把大家以前遇到的情况和解决

办法都罗列到一起,相信后来者一定能够有的放矢,节省很多精力。所以,强烈呼吁有经验者多加补充啊!

altera下载线ByteBlasterMV和ByteBlaster区别总结

用altera的各位都要用下载线,ByteBlasterMV和ByteBlaster大家再熟悉不过了,对于高手来说,两者的区别自是小菜,可对我们这些刚入门的小弟来说就不是很清楚了,此文总结一下他们的区别,给那些和我一样刚入门的新手!

1.ByteBlasterMV可以支持3.3V和5.0V器件下载和编程,ByteBlaster只支持5.0V器件, ByteBlasterMV可以替代ByteBlaster;

2.支持器件不同

ByteBlasterMV:MAX9000,MAX7000S,MAX7000A,MAX3000A,APEX20K,FLEX10K(包括FLEX10KA,FLEX10KE),FLEX8000,FLEX6000

ByteBlaster:MAX9000,MAX7000S,MAX7000A,FLEX10K,FLEX8000,FLEX6000

3.支持电平不同

ByteBlasterMV:支持3.3V和5.0V TTL和CMOS 输出电压

ByteBlaster:支持5.0V TTL输出电压

4.下载线内部结构的区别

1)ByteBlasterMV25针接口中15脚是VCC,而ByteBlaster25针接口中15脚是地;

2)ByteBlasterMV下载线用的芯片是74HC244,ByteBlaster下载线用的芯片是74LS244

调试FPGA时碰到一个奇怪的问题程序不能下载

最近做的一块板子,昨天还能下载程序,今天用ISE对FPGA进行编程,进程到99%后出现programe failed的问题,显示DONE引脚不能置高的错误.然后用ISE对配置芯片PROM进行编程,大概到40%左右的进程时候2.5V电源出现过流情况,出现2A大的电流,估计片子是烧掉了,但一直没有查出什么原因,有大侠知道指导一下我啊.,ISE能够检测到FPGA和PROM,返回的ID也是正确的.

FPGA的芯片选择错误.看一下板子上FPGA芯片的型号,重新选择一次并重新编译.

我的FPGA为什么不能下载?

芯片:XILINX XC2S150E

PROM:XC18V02

线接的没问题,检查过数边了

但就是无法下载。总说电缆连接有问题

后来把EPROM拿到别人的板子上下载成功,但是在自己的板子却无法写入FPG 急死我了

也不知道该怎么检查了

大侠们指点一下吧!

解决问题了,汇报一下

program上拉电阻的电源没接上,所以不工作

检查发现后跳线处理后就可以加载了

[原创]调试FPGA电路板总结

这两周都在调一块我们组画的FPGA电路板,遇到了不少的问题,在此总结一下。

焊电路板肯定是从电源焊起,我们的电源部分基本上没有问题,3.3V、2.5 V和1.2V输出都很正常。

但是当我们把FPGA芯片焊上后,在quartus里用JTAG方式下载程序时,问题出错,提示是找不到芯片。起初我们认为是下载电路设计得有问题,于是我们对照着CycloneIII的芯片手册中找关于JTAG下载的描述。其中有一段是这样描述的:

For device VCCIO of 2.5 V, 3.0 V, or 3.3 V, refer to Figure 10–24. All I /O inputs must

maintain a maximum AC voltage of 4.1 V. Because JTAG pins do not h

ave the internal

PCI clamping diodes to prevent voltage overshoot when using VCCIO of

2.5 V,

3.0 V, or

3.3 V, you must power up the do wnload cable?s VCC with a 2.5- V sup ply from VCCA.

For device VCCIO of 1.2 V, 1.5 V, or 1.8 V, refer to Figure 10–25. You can power up the

download cable?s VCC with the supply from VCCIO.

在我们在板子上,VCCIO用的是3.3V,因此VCCA应该用2.5V,再看我们的VCCA,竟然是1.2V,再查了CycloneIII的芯片手册,其中写到:

Each Cyclone III PLL uses separate VCC and ground pin pairs for their analog

circuitry. The analog circuit power and ground pin for each PLL is called VCCA

number> and GNDA. Connect the VCCA power pin to a 2.5-V power su pply even if you

do not use the PLL.

就是说VCCA是2.5V,看来我们是连错了,VCCA和VCCD分别是锁相环的数字电源和模拟电源,在画原理图的时候不小心画错了。这也是CycloneIII

和CycloneII的区别,在CycloneII中,VCCA和VCCD_PLL都接1.2V,而在CycloneIII中,VCCA接2.5V,VCCD_PLL接1.2V。

发现这个错误后,我们只能小心翼翼地飞线了,经过一翻折腾后,终于飞好了,上电,下载,成功!

后面我们就要测SDRAM了,因为我们要用SOPC系统,程序要在SDRA M里跑。但是无论我们的程序怎么调,在nios里下载程序时,控制台总是显示verify failed between address 0x1000000 and 0x1000020,其中这个地址范

围在SDRAM的地址空间中。出现这个问题是因为与SDRAM通信出现了问题,而且大部分是因为SDRAM的时钟与SDRAM CONTROLLER的时钟之间的相移设置得不正确。但是我设置得相移是根据quartus handbook中关于相移地介绍算出来的,应该不会有问题。话虽这么说,但是是不是算错了我也不敢确定,所以只能修改此相移(error and try),因为一般此相移都设为-72度,所以把相移修改为-72度,但是问题依旧。既然是error and try,于是我又试了一些其它的值,但是依然没有效果。此时我们认为问题出在电路板上的可能性会比较大,于是围绕着SDRAM检测硬件,SDRAM的连接非常简单,只需要把数据线、地址线和一些控制线直接连到FPGA的引脚上即可,所以在连接上不会有太大的问题。后来突然想到我们之前把PLL的电源接错了,没准当时已经把PLL烧坏了,而我们的SDRAM的相移是通过PLL来实现的。于是我们写了一个测试程序,看PLL的输出是否正确。结果果然不出我们所料,PLL的输出根本不是我们想要的方波(当然用示波器测应该是输出正弦波,因为方波的频率是50M,根据信号与系统的理论,此方波是由50M和及高次谐波组成的,而示波器的带宽也就60M,所以只能显示50M的正弦波),而是一些杂波,这说明我们这片F PGA的PLL已经被我们搞坏了,查看其芯片手册,VCCD_PLL最多只能接1.8 V,之前我们用2.5V来虐待它,而且时间还不短,它不坏就不正常了。

现在我们只能换FPGA芯片了,经我们小心翼翼地再次飞线,最终将芯片焊好后,一步一步地测,电源正常、硬件下载正常、PLL输出正常、nios下载正常。至此我们的工作算是暂告一段落。

在以上调试过程中,还遇到了一些其它的问题。

在nios里下载软件程序时,会出现

assertion "m_state == STATE_DEBUG" failed: file "nios2oci.cpp", line 157 Using cable "USB-Blaster [USB-0]", device 1, instance 0x00

Pausing target processor: not responding.

Resetting and trying again: D:\altera\81\nios2eds\bin\nios2-download: line 594:

6300 Hangup nios2-gdb-server --instance 0 --tcpport none --wri te-pid ./Debug/nios2-download.pid ./Debug/GigaCard.elf.srec

这个问题在我调试的过程中偶尔会出现,而且是没有规律的,也正是这个问题,总是阻碍着我们前进的脚步,后来我们发现一个程序本来是可以下到onchi p-memory中的,后来同样的程序无论如何都下不进去了,于是我们基本可以确定问题出在了硬件。对于有控制器的系统,晶振肯定是非常重要的,于是我们测晶振的输出是不是正常的,结果是有时正常有时不正常,这说明晶振虚焊了,经过我们小宝同学精心补焊,上面那个问题就再也没有出现过了。

在nios里下载软件程序时,出现

Using cable "USB-Blaster [USB-0]", device 1, instance 0x00

Pausing target processor: not responding.

Resetting and trying again: FAILED

Leaving target processor paused

这个错误在可编程部分的原因大多是引脚分配错误。网上有人说要在quart us将没有用到的FPGA的引脚设为“input tri-state”,但是我并没有发现这是必须的,可能只是一些特定地器件需要这样设置。

经过这次调试,感觉自己增长了不少调试经验,虽然之前调试过51板子,但是画那块板子时,参考电路有很多,所以调试起来比较顺利,没出太多问题。这次就不同了,问题出了一大堆,真有点不知所措。总结一下调试有主控芯片的电路,首先要保证电源没有问题,不仅是电源模块地输出没有问题,还有芯片地电源不能接错,因为电源一错,所以一切都要玩儿完,就像我们这次就因为电源的问题烧了几百块钱的芯片。在电源没有问题的情况下,就要看看主控芯片的晶振有没有问题,很多问题都是晶振引起的,我之前调试51板子的时候也是因为用了一个已经坏掉的晶振导致不能下载程序。遇到硬件方面的问题时需要一点一点地排查,在确定前面的模块是正确的情况下再进行后面的部分。

关于FPGA的调试,我想要分为以下几步,首先要保证FPGA芯片的几个电源是正确的,然后先用一个最简单地用硬件描述语言写的小程序测试FPGA 芯片是否能够正常下载并工作正常。然后用nios建立软件工程并把程序放在on chip-memory上下载。接下来再继续调试外围的电路。

在nios里把程序放到onchip-memory上进行编译时,很多时候都会遇到错误,提示onchip-memory的空间不足。这是因为程序是用main作为主函数,这样的话nios会在程序进入main函数前进行一些系统的初始化工作,这做占用不少的空间。要在onchip-memory上跑程序,最好是采用alt_main作为主函数,例如采用下面的程序:

#include

#include

#include

#include

#include "system.h"

#include "sys/alt_sys_init.h"

#include "sys/alt_irq.h"

#include "priv/alt_file.h"

#include "altera_avalon_pio_regs.h"

int main (void) __attribute__ ((weak, alias ("alt_main")));

int alt_main(void)

{

alt_irq_init (ALT_IRQ_BASE);

alt_sys_init();

alt_io_redirect (ALT_STDOUT, ALT_STDIN, ALT_STDERR);

while(1)

{

IOWR(TEST_PIO_BASE,0,1);

usleep(1000);

IOWR(TEST_PIO_BASE,0,0);

usleep(1000);

}

return 0;

}

我在用xilinx的fpga时遇到一个非常头痛的问题,我的fpga通过jtag口配置非常不稳定,经常下到一半fail,基本上都是fail在verify那个环节,另外也经常建立不了扫描链,错误提示如下:

ERROR: IMPACT: 477 The bsdl for device …unknown? is out of date. Please check your installation. (我的安装没有问题,因为有的时候很顺,两天内几十次的下载都没有报过错)

ERROR:iMPACT:583 - '1' The IDCODE read from the device does not match the IDCODE in the BSDL file

我的目标板上用了一片xc3s250e和一片xcf04s,下载线是parallel cable 3,软件是impact 8.2.03i

另外网上有很多人遇到过这个问题,xilinx的官方网站上也有就这个问题回答过,上面说是jtag信号的完整性问题,但是我并不认为只是信号完整性问题,因为jtag的速率很慢(我的tck为200kHz),而且信号边沿也不是很快,所以信号完整性的问题不大,同时我也测试了我的信号,其信号质量非常好,所以我就很纳闷了,另外网上遇到这个问题的一些人说用parallel cable 4 就不会有这

个问题,也有人说用parallel cable 3配置spartan-3e的fpga能成功是运气好,现在我也有这种感受,我的jtag配置电路和xilinx的demo板的电路一样,即为了匹配jtag上的3.3v和fpga的vccaux(2.5v),我在tdi、tms、tck三个信号上均串接了100ohm的电阻,基本上就是这些信息,请各位大侠各抒己见

xilinx,jtag配置问题

我在用impact8.2i配置xc3s250e时经常报错,错误代码如下:

"ERROR:IMPACT:447 - The BSDL for device 'unknown' is out of date."

h*d2p W d,T

"ERROR:iMPACT:583 - '1' The IDCODE read from the device does not match the IDCODE in the BSDL file." O3r*?8] u1Y f-` E q

以上两种错误经常出现,而且有时我配置fpga或者flash时会在进行到一半时报错,错误代码如下:

配置flash时:impact:2129

我用impact中的idcode looping测试时也会报错,所以怀疑我的信号问题,但是我抓出来的信号质量非常好,因为jtag的频率很低,边沿也比较慢,所以我就比较纳闷了,信号完整性很好,那是什么地方出问题了呢,请个位大侠指点

mu_naiyi 2007-8-24 09:27

没有人遇到过这种问题吗?

waotang 2007-8-24 09:44

jtag链上是不是有别的厂家的jtag器件? q f s q Z"Y

V

bsdl文件匹配么?

mu_naiyi 2007-8-24 13:17

没有别的器件,都是xilinx的,一块xc3s250e一块xcf04s,问题不是不能下载,是不稳定,所以我很郁闷,网上很多人报这个问题,但没有真正的解决国,说用cable 4 就没有问题了。关键是cable 4 好贵哦

waotang 2007-8-24 13:19

那就是cable的驱动能力问题了

robin_liu_xap 2007-8-24 14:27

possible reasons: A A'@6D)x7f8O t

a. JTAG Cable

looks like you are working on Cable III and most Cable III in using are made by unknown small vendors. Xilinx opened Cable III schematics a few years ago so anyone can make it. However, with different design level of these vendors lots of Cable III showed poor SI performance in field using. It's hard to predict but if you have found issues with IDCODE Looping it is obviously an SI issue.

b. PCB trace on board

It is also possible the SI issue happens on board PCB trace or connector linkes cable with board trace. While you are facing SI problems, do some SI simulation (e.g. IBIS simulation) may help. /N O k i7q"t_ x o

*D#K'h b V6a:U*m

Xilinx does offer the IBIS model of FPGA pins including JTAG pins, however the modle of cable pins are not offered. If you open the Cable III, you will find out that the JTAG pins are driven by a buffer, possible 16245 or 16244 (I don't remember) so you can use 74 series IBIS model for the simulation. E M

O ^ ^,g1F

Xilinx did not open Cable IV design. It means Xilinx or its distributor may be the only source you can buy Cable IV. As well it means most Cable IV are quality guranteed. In Cable IV the JTAG pins are driven by a CPLD which offers better SI performance. However, as you have noted, it is really too expensive.

mu_naiyi 2007-9-6 11:38

非常感谢楼上的分析,idcode looping我测过,只要我的扫描链建立起来后,基本上都会过,但是问题是我经常建立不了扫描链,错误如一楼,robin_liu_xap,你提到的信号完整性问题,能再详细一点吗?因为就我看来这个速率下,这个边沿,对信号完整性不会造成太大影响,那你提到这个信号完整性问题指的是什么呢?我这些天又深入的测了一下,扫描链建立不起来基本都是由于idcode不符造成的,就我测到idcode不符的波形来看,有两个原因,1)tck 在开始回读idcode 的时候少一个开始位(0),读出的idcode为00100011 10000011 01000001 00100110,分析波形,刚好是因为缺失的那个tck脉冲造成的;2)tck的脉冲完整,但tdo的波形乱掉,读到的是全0或全1还有另外一个值;这些天和xilinx 的技术支持沟通了一下,她说就写波形来看应该是信号完整性的问题,但是也没有具体说是那方面的信号完整性问题,说是cable 3的驱动较弱,建议用cable 4 ,呵呵,而我觉得第一种情况很难归到cable的问题上,cable会cut掉一个高脉冲,这让我有点不好理解,就我测到的波形来看,信号的质量还是非常好的(毕竟速率低,边沿慢),几乎没有过冲,也没有振铃,幅度也没有问题,欢迎大家一起参与讨论,解决掉这个问题

workman 2007-9-20 15:19

牛人啊。我也经常碰到这个问题。但是没考虑那么多。。学习学习

lqt033 2007-9-28 10:42

我向CPLD下载程序时也遇到第2个问题,器件识别码不匹配,我下载3片CPLD,2片可以正常下载程序,那1片就出现问题,并且板子加电时,不能下载程序的那片CPLD片子温度很高,我怀疑可能是CPLD的某些腿没有连接好,或者出现短路问题.你们的CPLD加电时温度正常不???

大家一起解决掉这个问题:)

atu 2007-9-28 10:49

请问jtag链上有几个芯片?如果有多个芯片的话可能是驱动能力不够,如是这样jtag链上要加245驱动芯片。

PharaohKing 2007-9-29 02:37

我也遇到过这类问题,但用别人的计算机就没有事了,有些人告诉我是计算机并口能力问题

相关主题
相关文档
最新文档