XILINX偶然加載不成功的問題原因及解決方法
一、項(xiàng)目背景
明德?lián)P(MDY)在2021年承擔(dān)了多個基于XILINX芯片的研發(fā)項(xiàng)目,包括VPX網(wǎng)絡(luò)透明傳輸項(xiàng)目(芯片為XC7K325T-2FBG900)、某高端測試儀項(xiàng)目(芯片為XCKU060-FFVA1156)、某網(wǎng)閘設(shè)備項(xiàng)目(芯片為XC7Z030-FBG676)等,另外,明德?lián)P自研了基于XC7K325T-2FBG900和基于XC7K410T-2FBG900芯片的核心板,在XILINX研發(fā)領(lǐng)域擁有豐富的經(jīng)驗(yàn)。即使擁有豐富經(jīng)驗(yàn)和積累,每個新項(xiàng)目我們均要投入相當(dāng)大的精力去研發(fā)。例如本文章分享的案例,在一個研發(fā)設(shè)備的壓力測試中,每隔3分鐘對設(shè)備進(jìn)行斷電復(fù)位重啟,部分設(shè)備會出現(xiàn)低于1%概率的FPGA加載不成功,重啟300多次,會存豐1~3次的加載失敗。
為定位此問題,花費(fèi)了一個多月,先后投入多位專家,最終確定問題的根源是“上電的時(shí)序問題”,特為此給大家分享。
二、XILINX的上電啟動流程
FPGA上電啟動包含三大流程,分別是Setup,Bitstream Loading和Startup Sequence。本次故障的現(xiàn)象是FLASH有概率無法加載,因此定位出現(xiàn)問題的流程是Setup。
在第一階段的流程中,F(xiàn)PGA首先要上電,其中VCCINT、VCCBRAM、VCCAUX、VCCIO要以由低到高的順序依次上電。當(dāng)芯片上電后,電壓達(dá)到VCCO后在10~50ms內(nèi),init_b會拉高,初始化完成,F(xiàn)PGA開始加載配置工作。
但是FPGA上電第一次加載時(shí),與PROGRAM_B信號沒有關(guān)系,只需要達(dá)到init_b的延遲時(shí)間,當(dāng)init_b拉高,F(xiàn)PGA就會加載配置。
三、問題原因:
FPGA上電時(shí)序圖如圖1所示,時(shí)序要求如表1所示。上電后init_b會延遲10~50ms后拉高,然后CCLK開始輸出,加載外部FLASH。通過示波器實(shí)測Tpor大約是20ms左右。而且經(jīng)過反復(fù)測量發(fā)現(xiàn),Tpor的延時(shí)是相對于VCCINT電壓啟動后的。
圖1:FPGA上電啟動時(shí)序
表1:FPGA上電時(shí)序要求
因此,如果FPGA的鏈路啟動時(shí)間過長,整個鏈路啟動時(shí)間超過50ms的時(shí)候,init_b信號的上升沿就會正好卡在3.3V電壓啟動的過程中,如圖2所示。此時(shí)FPGA認(rèn)為已經(jīng)可以進(jìn)行加載流程,因此發(fā)送CCLK給外部FLASH。但是當(dāng)前3.3V電壓僅爬升到1.9V,還不足以啟動FLASH芯片,因此FLASH芯片不會響應(yīng),F(xiàn)PGA在得不到FLASH回應(yīng)后,init_b信號再次拉低,表示FLASH加載過程出現(xiàn)異常。導(dǎo)致連上仿真器發(fā)現(xiàn)FLASH沒有加載成功。
圖2:故障情況下的上電時(shí)序(黃線:3.3V 藍(lán)線:init_b)
四、解決方案
1、 減少電源鏈路啟動的時(shí)間,將時(shí)間控制在50ms以內(nèi),同時(shí)尋找導(dǎo)通時(shí)間更短的MOS管,讓3.3V電壓爬升的時(shí)間縮短至1ms左右。
2、 由于故障的根本原因在于FPGA開始加載FLASH時(shí),3.3V點(diǎn)沒有達(dá)到FLASH的工作電壓,因此可以嘗試更換一片寬壓FLASH芯片,看看問題能否解決。
3、 前面兩種方案是基于不改版的情況下。如果后期可以改版,還是建議使用PCIE上來的12V電源,來提供整板的供電。所有電壓都通過電源芯片進(jìn)行轉(zhuǎn)換。然后將3.3V電源芯片的PGOOD引腳連接至init_b上。這種方式是人為延遲了init_b跳變的時(shí)間,也就是說可以確保3.3V電壓穩(wěn)定之后,再去加載FLASH,這樣就可以確保不會出現(xiàn)該故障。而且即使3.3V爬升速率很滿,也可以在3.3V電源達(dá)到足夠大的值之后再加載FLASH。圖3就是在類似的板子上做了這樣的試驗(yàn),即使3.3V的上升時(shí)間達(dá)到了20ms,在init_b跳變的時(shí)刻,3.3V電源也已經(jīng)達(dá)到了3.0V的輸出,完全可以保證FLASH芯片正常工作。
圖3:故障修復(fù)后的上電時(shí)序(黃線:3.3V 藍(lán)線:init_b)
!!!本問題出現(xiàn)在XC7Z030-FBG676芯片,理論上大部分的XILINX型號均會存在此問題,出現(xiàn)此現(xiàn)象時(shí)可以參考。
明德?lián)P(MDY)除了承接項(xiàng)目外,還可為客戶提供FPGA芯片、電源芯片、AD芯片等元器件,可找我們了解。
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1645文章
22040瀏覽量
618156 -
芯片
+關(guān)注
關(guān)注
459文章
52477瀏覽量
440519 -
測試儀
+關(guān)注
關(guān)注
6文章
4001瀏覽量
57796
發(fā)布評論請先 登錄
訓(xùn)練好的ai模型導(dǎo)入cubemx不成功怎么處理?
DLPC3478初始化不成功是什么原因?
燒錄DLP4500 FIRMWARE的過程中一直不成功,什么原因?
DLPC3478初始化不成功是怎么回事?
ADS1262寄存器的寫入不成功是什么原因?
調(diào)試ADS1246時(shí),出現(xiàn)向ADS1246寫入寄存器不成功但讀取采樣數(shù)據(jù)正常的現(xiàn)象,為什么?
ADS127L11配置ADC使用外部時(shí)鐘以及FILTER[4:0]都不成功,為什么?
龍門式蔡司三坐標(biāo)測量機(jī)無法加載驅(qū)動的原因和解決方法

評論