加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2019-03-28 08:36:02)
标签:

转载

分类: FPGA

学习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虽然可以热插拔,但是极易损坏芯片。


 

0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有