基于Chipscope的多片FPGA同时调试——奇怪现象Mark

                        基于Chipscope的多片FPGA同时调试——奇怪现象之

                                                                            某一FPGA在线Configuration时,也会造成其他几片FPGA同时重新加载程序

 

0    前言

        最近的项目涉及5片FPGA在板级之间基于Aurora 8b10b协议互相通信,其中1个主FPGA和4个从FPGA,拓扑结构为星形拓扑结构,各个从FPGA与主FPGA之间通信相互独立,采用的接口为基于GTX硬核的双向差分接口。程序编写完毕后,需要涉及到主FPGA和从FPGA同时交互调试。

 

1    调试之奇怪现象

        5片FPGA采用串行模式依次下载和调试,见下图所示。

        调试工具选择ISE 自带的Chipscope工具。为简化调试难度,只对主FPGA和一个从FPGA之间进行点对点通信调试,其他从FPGA节点可以类比,调试过程大致如下:

        Step1.    调试主FPGA收发通信。首先将从FPGA程序烧写完毕,然后采用Chipscope对主FPGA进行在线调试;设置对应的触发条件和抓取波形;测试结果与仿真结果相一致。

        Step2.    调试从FPGA收发通信。首先将主FPGA程序烧写完毕,然后采用Chipscope对从FPGA进行在线调试;设置对应的触发条件和抓取波形;测试结果与仿真结果不一致。分析抓取的测试结果波形可知:从FPGA在Chipscope的Configuration完毕后,设置好触发条件,每次抓取的波形均为主机发送的第2帧数据,而不是第1帧数据,这是一个有规律的现象。

 

2    奇怪现象分析

       说明:主FPGA和从FPGA通信链路建立完毕,且握手成功后,主机会自动发送第一帧数据给从机。

结合上述奇怪现象分析:每次从FPGA烧录完毕后,在线调试抓取的波形均为第2帧数据,那么请问:第1帧数据主机是在什么时候发送的呢?  

        猜想1: 从FPGA烧录完毕后,与主机握手成功,主机发送了第1帧数据。此时作者还尚未设置触发条件和开启触发按钮,故第1帧数据没有被抓到。

        分析1:这个猜想初步看是成立的,符合奇怪现象的解释。但是有一个疑问:主FPGA程序是最先下载到板级SRAM中,且首次握手指令已发送完毕,此时的从FPGA尚未烧录程序,故当从FPGA在线调试时,未启动触发条件,主FPGA不会再次发送握手指令的,从而第1帧数据也就不会在触发条件未设置前就被发送给从机。

 

        猜想2:  猜想1是根据奇怪现象进行倒推,得到的分析结果,但是不符合程序的逻辑解释。但抓取的波形结果表明,第一帧数据确实是在Chipscope触发条件尚未触发前就已成功发送。

        百思不得其解后,故我提出一个大胆设想:从FPGA在chipscope烧录时,同时也不知以某种原因,造成主FPGA也重新加载其bit文件。可以等价于从FPGA烧录bit文件的同时,主FPGA也重新加载其bit文件,于是当二者均烧录完毕后,主FPGA和从FPGA握手成功,于是第1帧数据就被发送给从FPGA。此时,我尚未设置触发条件和在线抓取波形。

 

3    猜想验证

        为了验证猜想,我对主FPGA发送握手指令进行了人为的延迟,设置延迟时间为10s。烧录主FPGA程序后,我通过chipscope在线调试从FPGA。设置好触发条件后,我重新Configuration从FPGA程序,Configuration完毕后,直接点击抓取波形按钮,故该过程没有启动vio核的外部触发按键,即从FPGA没有给主FPGA发送触发指令。果然经过大约10s后,触发条件被满足,抓取到波形信号,经分析,果然为第1帧数据波形。猜想被验证。

       后记: 虽然自己的猜想得以验证,但是此时内心既激动又有点复杂,这个奇怪现象困扰了我有1天时间,自己之前尚未涉及多FPGA板级在线调试,故无法解释该现象。  虽然现在知道改现象产生的表面原因,但是却不知道该现象出现的本质原因,所以内心还是有点复杂的。

       Mark一下,希望可以给遇到相同问题的网友一点启发,如果有网友知道改现象的本质原因,请帮忙指教,谢谢了!!!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值