原创 【博客大赛】【原创】Altera单JTAG链多FPGA结构JIC文件产生以及下载

2012-12-3 12:12 9387 19 21 分类: FPGA/CPLD 文集: ALTERA FPGA

      前面有博文介绍了单个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文件。

 

多个sof转换成jic设置.jpg
图1 多个sof文件转换成jic文件
 
      这里还需要提及的是在图1的JIC文件转换设置界面里,有个Mode设置项,可以选择“Active Serial x4”,图2所示。我选择的是x1模式,x4没有试过,应该对应的是快速AS加载模式。
 
convert的时候mode选择.jpg
图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).
 
单链多器件单独add jic文件.jpg
图3 单JTAG链多器件结构单独add jic文件
 
       实际上,这种结构在通过jtag下载sof文件的时候也不能只加载一个器件的sof必须链上所有器件的sof文件都下载进去,那么程序才能下载成功,因为硬件上所有器件的config_done引脚都接到一起了,所以链上任何一个器件未加载都会导致整个链路加载失败(因为configure done无法拉高)。
      所以在烧写jic文件的时候必须象这种结构直接烧写sof文件那样,除了flash loader以外,其他所有器件也必须加载程序。图4显示了给链上第一片FPGA分配为flash loader,并为其加入JIC文件。
 
单链多器件下对应flash loader器件加jic文件.jpg
图4 给flash loader加入jic文件
 
那么剩下的器件就加上任意可用的sof文件即可,反正也只是临时性的烧写进去,如图5所示。
 
单链多器件下其他器件加任意可用sof文件.jpg
图5 剩下的器件加入任意可用的sof即可
 
     所有文件加入完毕后如图6所示,这个时候必须注意的是,就像前面所说的那样,必须所有器件同时加载,不然会导致下载失败,也即在“Program/Configure”这一列必须勾对所有选项,我做了个实验,就是只勾对jic对应的器件,下载后就会出现如图7所示的错误提示。
 
jtag链上所有器件设置完毕.jpg
图6 JTAG链上所有器件加入配置文件完成
 
单链多器件只下flash loader时报错.jpg
图7 单JTAG链多器件结构下只加下载flash loader的时候报错
 
       最后,按照图6所示设置好以后,点击“start”下载所有FPGA,以及烧写配置文件到EPCS配置芯片中,整个配置流程的信息如图8所示。
 
单链多器件jic文件下载过程信息.jpg
图8 整个下载过程的message
 
       从上图我们发现整个下载过程耗时1分40秒,这里有个问题可以留给大家思考下,就是本博文介绍的是将第一片FPGA做为flash loader,那么第二片可否作为flash loader呢?!
 

文章评论7条评论)

登录后参与讨论

coyoo 2014-4-8 20:20

没错,当然不同的fpga对应不同的sof文件

用户1739054 2014-4-8 14:41

单链多FPGA(fpga不同类型)的.pof文件也是上述流程吗?

coyoo 2014-2-27 11:58

JTAG调试(或下载)本质上和ce以及nceo信号没有关系;这里的多片FPGA组成菊花链,ce和ceo会影响FPGA配置状态,所以在使用jtag调试其中一片FPGA的时候需要将整个链路上的FPGA都配置好。

用户1738735 2014-2-26 21:10

博主,您好,我觉得提问人的意思和我想问的意思是一样的,如果我一块板子上4片FPGA已用AS连接方式将nCEOK连到了nCE上,但是在JTAG时,我只能保证第一片FPGA的nCE为低电平,剩余的连到nCEO的nCE信号,在JTAG调试时也是自动跳低电平了吗?

用户1645455 2013-10-9 12:43

谢谢

coyoo 2013-1-11 13:14

1、如果你所说的调试是通过JTAG进行调试,那么当你调试第三片FPGA的时候其余FPGA都必须“下载程序”,这里打上引号是因为其他FPGA可以下载任意程序,其唯一目的就是为了让链上的Config_done释放,这样链路才能跳出加载状态进入用户状态,你才能进行所谓的调试。 2、你所说的硬件电路中ALTERA的任意一款支持AS模式下载模式的器件手册里都有;注意JTAG的下载优先级最高,所以你的所谓”nCE在JTAG调试时为低”根本没有必要担心。也就是你用JTAG调试的时候jtag已经掌握了主控权。调试完毕更新程序,重新上电即可。

用户310504 2013-1-11 10:46

博主你好,我想问你两个问题 1、在JTAG链上,比如我的JTAG链上有四个FPGA芯片,现在我只想调试第3个,怎么样旁路其它3个FPGA呢? 2、上电EPCS加载的时候应该是nCEO串联nCE的吧,但是JTAG调试的时候nCE必须为低,这部分硬件电路是这么设计的呢? 谢谢。
相关推荐阅读
coyoo 2024-12-03 12:20
比较器检测模拟脉冲说明(四)
概述 说明(三)探讨的是比较器一般带有滞回(Hysteresis)功能,为了解决输入信号转换速率不够的问题。前文还提到,即便使能滞回(Hysteresis)功能,还是无法解决SiPM读出测试系统需要解...
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...
我要评论
7
19
关闭 站长推荐上一条 /2 下一条