大神召喚
vivado2017.2一個(gè)工程下,兩個(gè)互不相干的模塊會相互影響,只有屏蔽其中一個(gè)另一個(gè)才能正常工作。使用此芯片第一次發(fā)現(xiàn)如此詭異現(xiàn)象,現(xiàn)在依然沒有找到根本原因,只找到了規(guī)避方法,各路大神如果有相關(guān)經(jīng)驗(yàn)或者建議請小窗告知,感激不盡!
問題現(xiàn)象
工程中有一個(gè)串口通信模塊,多個(gè)Aurora模塊。其中一個(gè)Aurora模塊和串口模塊有沖突,不能同時(shí)出現(xiàn),否則串口可以正常使用,但是Aurora不能正常工作,表現(xiàn)為channel up始終為低,輸入時(shí)鐘鎖不定,locked信號一直為低。
當(dāng)沒有串口模塊的時(shí)候所有Aurora模塊都正常,硬件上也查看了時(shí)鐘,完全正常,所以排除外部時(shí)鐘問題。
時(shí)序報(bào)告里面沒有任何告警,時(shí)序裕量大于0,而且串口是低速,高速接口是時(shí)鐘鎖不定,和時(shí)序也不應(yīng)該有關(guān)系。
分析和測試過程
首先屏蔽了串口模塊后可以正常,可以說明是串口模塊里面某個(gè)部分影響到了Aurora??梢圆捎萌缦虏呗裕绕帘我话氪a,如果沒有復(fù)現(xiàn)問題說明,影響因素在屏蔽的代碼里面,反之亦然。
通過這種類似二分法的方法,最終發(fā)現(xiàn)主要是串口里面的VIO的影響,屏蔽VIO后串口和Aurora都正常。
由于VIO控制的信號和Aurora根本沒有任何聯(lián)系,所以打開了布局布線圖查看了二者的分布情況,示意圖如下:
紅色底是Aurora的分布范圍,白色的是串口模塊,被Aurora包圍了。嘗試了一下手動布局讓串口模塊和Aurora不產(chǎn)生交叉,變成了下圖所示:
布局變成上圖所示后,除了布局外,沒有任何其他改動,VIO也依然存在于串口中,但是串口和Aurora都可以正常工作了,也就是時(shí)鐘鎖定,channel up拉高,通信數(shù)據(jù)check完全正常。目前找到這里,只有在硬件上再查一查有什么漏掉的點(diǎn)可能出問題的。想從FPGA上下手找更加根本的原因目前還沒想到更好的方法,歡迎各位和我討論。
總結(jié)
1.規(guī)避問題的方法就是通過手動布局讓兩個(gè)模塊不產(chǎn)生相互交叉。
2.初步懷疑vivado是否有bug,導(dǎo)致某些問題并沒有報(bào)告出來,從而誤導(dǎo)了開發(fā)人員
3.芯片來源可能不是正規(guī)渠道,本身有bug
4.根本原因尚未找到,查找和確定問題比較困難
-
芯片
+關(guān)注
關(guān)注
453文章
50251瀏覽量
421112 -
串口通信
+關(guān)注
關(guān)注
34文章
1607瀏覽量
55387
原文標(biāo)題:xc7vx690t使用中發(fā)現(xiàn)的一個(gè)不明BUG及規(guī)避
文章出處:【微信號:HaveFunFPGA,微信公眾號:玩兒轉(zhuǎn)FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論