新浪博客

[转载]JTAG不能给FPGA下载程序总结

2019-03-28 08:36阅读:
原文作者:大鹏

学习FPGA下载固化程序的时候,遇到JTAG口不能下载程序的问题,现在问题已经解决,抽空总结一下alteraFPGA下载文件的类型下载方式以及解决问题的方法。


1、下载FPGA里面 有三种方式
JTAG----下载sof文件,掉电丢失,但是可以将sof转换为jic文件,用EPCSx配置,掉电不丢失。
AS------下载pof文件,配置EPCSx,掉电不丢失。
PS------比较老的下载方式,很少使用。 2、在cycloneIII数字手册上的下载配置方式:
[转载]JTAG不能给FPGA下载程序总结

配置电路:
[转载]JTAG不能给FPGA下载程序总结

3JTAG口的配置方式:
信号名
I/O
说明
DATA0
输入
配置数据
DCLK
输入
配置时钟
nCONFIG
输入
器件复位脚(该信号的上升沿使配置开始)
nSTATUS
输出
状态位(如果该信号线为低,表明在配置过程中出现错误,需重新配置)
CONF_DONE
输出
状态位(在配置完成后,该信号为高)
具体5个引脚的功能如下:
1DATA0:输入;单片机串行的配置数据输入口。
2DCLK:输入;为外部数据源提供时钟。
3nCONFIG:输入;配置控制输入。低电平使ACEX1K器件复位,在由低到高的跳变过程中启动配置。
4nSTATUS:双向漏极开路(需接上拉电阻);上电后,ACEX1K立即驱动该引脚到低
电平,然后在100ms内释放掉它。nSTATUS必须经过1K电阻上拉到VCC,如果配置中发生错误,ACEX1K将其拉低。
5 CONF_DONE:双向漏极开路(需接上拉电阻);状态输出。在配置期间,ACEX1K将其驱动为低电平。所有配置数据无误差接收后,由于有上拉电阻,所以将其变为高电平,表示配置成功。CONF_DONE必须经过1K电阻上拉到VCC
其中在配置中还有另外几个引脚需要注意:
1 nCE:输入;ACEX1K器件使能输入;nCE为低电平时使能配置过程,为单片配置时,nCE必须始终为低。
2nCEO:输出(专用于多片器件);ACEX1K配置完成后,输出为低电平。在多片级联配置时,驱动下一片的nCE端,从而实现多片FPGA的配置。
4jic文件的生成方式
由于本次项目的板子是以前制得,当初就是不能在AS模式下下载pof文件,所以固化程序只能是jic格式,然后通过JTAG口下载给FPGA的配置存储芯片EPCS*
Jic文件的生成方式如下:
1)编译通过HDL文件,时序约束之类的全部完成,全编译生成sof文件,此处不建议signaltap调试的sof文件,如果在用signaltap调试,可以在调试完成以后重新生成sof文件,待下面步骤使用。
2Choose Convert Programming Files (File menu).
选择转换编程文件(File->Convert Programming Files)
3)在输出编程文件下面,在编程文件类型列表中选择JTAG间接配置文件(.jic)(Output programmingfile:Programming file type:选择JTAG Indirect Configuration File (.jic)
4)在配置器件列表里,选择你想对之编程的目标EPCS配置器件。(Configuration device:你要配置的芯片型号)
5)在文件名选择栏(File name:output_file.jic),指定你想生成的JIC文件的名字(output_file换成你想要的名字)
指定一个现有的SRAM目标文件(.sof)来转换成JIC文件,在Input files to convert下面选择SOF Data,点击Add File... 指定将要编程的EPCSFPGA目标器件,选择Flash Loader项,点击Add Device

(6)如果还超过最大容量,需对sof文件进行压缩。选中sof文件,点击Properties,选择压缩选项Compression。再重新产生jic文件。

7)选择JTAG模式下载。


5、调试过程所遇到的问题
1jic文件不能生成
解决办法前面已经叙述。
2)生成以后不能下载(这个问题也是我纠缠最久的问题)
下载的时候一直提示:Can't recognize silicon ID for device 1
解决办法:
A、确认你的QII中选择的配置芯片是否和电路板中的芯片一致。到QuartusIIsetting->devices->pins & devices... 打开配置界面,其中有一个标签页“configuration”是选择配置芯片型号的,请选为板子上的型号device->epcs16
B、检查你的下载线是否损坏,据说下载线长不应该超过30CM 但是我自己做的大概有50CM也可以正常使用。(网上如此说,后来问题解决了,但是我的下载线足有60CM)。
C、检查你的电路中的AS模式中的上拉电阻和下拉电阻是否虚焊,还有MSEL0MSEL1是否选择正确和nSTATUS是否接上拉电阻等。
D、确定你的配置芯片是否损坏,可以使用JTAG烧写配置芯片测试下,如果可写 那就可以排除该错误。
关于最后一个解决办法,在此说明好像不太灵。我在通过JTAG口下载sof文件时,下载成功,没有提示错误,但是下载完成以后没有功能。下载jic文件时只能下载一半,46%~93%不等,就是不能成功。后来用signaltap调试,不能下载sof文件,提示:Invalid JTAG configuration。按照以上检查了所有电压和信号,没有问题,测试TMI没有信号。自己也只能将问题定位到JTAG口,后来大胆换了一片FPGA,问题解决。
注:在调试FPGA时候若要插拔JTAG口,一定要断电操作,JTAG虽然可以热插拔,但是极易损坏芯片。

我的更多文章

下载客户端阅读体验更佳

APP专享