Altera单JTAG链多FPGA结构JIC文件产生以

  • coyoo
  • LV4工程师
  • |      2014-02-17 16:01:22
  • 浏览量 6740
  • 回复:25

前面有文章介绍了单个JTAG链上挂多个FPGA结构中如何应用Virtual JTAG进行项目调试,那么调试完成后就要将配置文件固化到配置芯片里,这里的配置芯片指的EPCS系列,当然可以直接将pof文件(注:由于是一片EPCS芯片配置多个FPGA,所以这里的pof文件是经过转换的pof文件)通过AS模式下载到EPCS芯片里。还有一种间接的方式就是通过在FPGA中例化flash loader经JTAG将配置信息烧写到EPCS配置芯片里,如果成功,那么在实际量产的时候就可以省略一个AS接口。

关于单链单FPGA的结构的情况,这里不做介绍,网上搜索一大堆,这里在此基础上介绍一个jtag挂多个FPGA结构如何生成jic并进行下载。图1是jic文件转换时的设置,跟单片时区别不大,唯一不同就是在SOF Data区域要加入多个sof文件。



图1 多个sof文件转换成jic文件
这里还需要提及的是在图1的JIC文件转换设置界面里,有个Mode设置项,可以选择“Active Serial x4”,图2所示。我选择的是x1模式,x4没有试过,应该对应的是快速AS加载模式。

图2 Convert的时候Mode的选择
下面开始介绍如何下载jic文件到EPCS芯片中去,一开始我犯了一个错误,导致programmer给了我一个错误提示,并下载失败。我犯的错误如图3所示,即只单独在programmer里add了一个jic文件,如果这时候点击“start”就会报如下error:
Error (209031): Device chain in Chain Description File does not match physical device chain -- expected 1 device(s) but found 2 device(s).

图3 单JTAG链多器件结构单独add jic文件
实际上,这种结构在通过jtag下载sof文件的时候也不能只加载一个器件的sof必须链上所有器件的sof文件都下载进去,那么程序才能下载成功,因为硬件上所有器件的config_done引脚都接到一起了,所以链上任何一个器件未加载都会导致整个链路加载失败(因为configure done无法拉高)。
所以在烧写jic文件的时候必须象这种结构直接烧写sof文件那样,除了flash loader以外,其他所有器件也必须加载程序。图4显示了给链上第一片FPGA分配为flash loader,并为其加入JIC文件。

图4 给flash loader加入jic文件
那么剩下的器件就加上任意可用的sof文件即可,反正也只是临时性的烧写进去,如图5所示。

图5 剩下的器件加入任意可用的sof即可
所有文件加入完毕后如图6所示,这个时候必须注意的是,就像前面所说的那样,必须所有器件同时加载,不然会导致下载失败,也即在“Program/Configure”这一列必须勾对所有选项,我做了个实验,就是只勾对jic对应的器件,下载后就会出现如图7所示的错误提示。

图6 JTAG链上所有器件加入配置文件完成

图7 单JTAG链多器件结构下只加下载flash loader的时候报错
最后,按照图6所示设置好以后,点击“start”下载所有FPGA,以及烧写配置文件到EPCS配置芯片中,整个配置流程的信息如图8所示。

图8 整个下载过程的message
从上图我们发现整个下载过程耗时1分40秒,这里有个问题可以留给大家思考下,就是本博文介绍的是将第一片FPGA做为flash loader,那么第二片可否作为flash loader呢?!
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:25
coyoo 2014-03-12
0   回复
举报
发布
betzhu 2014-03-12
0   回复
举报
发布
coyoo 2014-02-28
欢迎常来分享你的经验,不管的成功的经验还是失败的经验,我相信对于大家来说都是有意义的。
0   回复
举报
发布
coyoo 2014-02-28
0   回复
举报
发布
gtrjolin1986 2014-02-28
欢迎常来啊,哈哈,CO大很历害的
0   回复
举报
发布
苹果疼果冻 2014-02-28
楼主,您的这篇文章真是救了我了,若不是您的解说,我不可能想到将两个不同的.jic文件同时通过JTAG下载到两个不同FPGA的EPCS中,再次感谢
0   回复
举报
发布
coyoo 2014-02-27
看不出来哪里有问题,唯一的区别是我使用的是相同FPGA使用相同的sof文件,而你使用的是相同fpga使用不同sof文件。要不然,你可以将不同的sof文件添加到不同的page里试试看,就是你第一个图中合并生成jic的时候添加两个不同的“SOF DATA”
0   回复
举报
发布
coyoo 2014-02-27
0   回复
举报
发布
苹果疼果冻 2014-02-27
还有,如果上述JTAG链可以成功下载的话,那用第2片FPGA做Flash Load只须在JTAG下载时添加文件时先添加.sof文件再添加.jic文件即可,前提是JTAG链可以下载到EPCS中,楼主您文章中最后一个提问应该可以这么回答吧
0   回复
举报
发布
苹果疼果冻 2014-02-27
用的是两片相同的FPGA下两个不同的程序,EPCS功能正常,单片时可以用jic文件下载到EPCS中,但两片菊链起来后可以JTAG调试,但无法下载到EPCS中,或者一种假象下载成功
0   回复
举报
发布
查看更多
x
收藏成功!点击 我的收藏 查看收藏的全部帖子