0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

XILINX偶然加載不成功的問(wèn)題原因及解決方法

潘文明 ? 來(lái)源:明德?lián)P吳老師 ? 作者:明德?lián)P吳老師 ? 2022-02-24 09:16 ? 次閱讀

XILINX偶然加載不成功的問(wèn)題原因及解決方法

一、項(xiàng)目背景

明德?lián)P(MDY)在2021年承擔(dān)了多個(gè)基于XILINX芯片的研發(fā)項(xiàng)目,包括VPX網(wǎng)絡(luò)透明傳輸項(xiàng)目(芯片為XC7K325T-2FBG900)、某高端測(cè)試儀項(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)和積累,每個(gè)新項(xiàng)目我們均要投入相當(dāng)大的精力去研發(fā)。例如本文章分享的案例,在一個(gè)研發(fā)設(shè)備的壓力測(cè)試中,每隔3分鐘對(duì)設(shè)備進(jìn)行斷電復(fù)位重啟,部分設(shè)備會(huì)出現(xiàn)低于1%概率的FPGA加載不成功,重啟300多次,會(huì)存豐1~3次的加載失敗。

為定位此問(wèn)題,花費(fèi)了一個(gè)多月,先后投入多位專(zhuān)家,最終確定問(wèn)題的根源是“上電的時(shí)序問(wèn)題”,特為此給大家分享。

二、XILINX的上電啟動(dòng)流程

FPGA上電啟動(dòng)包含三大流程,分別是Setup,Bitstream Loading和Startup Sequence。本次故障的現(xiàn)象是FLASH有概率無(wú)法加載,因此定位出現(xiàn)問(wèn)題的流程是Setup。

在第一階段的流程中,F(xiàn)PGA首先要上電,其中VCCINT、VCCBRAM、VCCAUX、VCCIO要以由低到高的順序依次上電。當(dāng)芯片上電后,電壓達(dá)到VCCO后在10~50ms內(nèi),init_b會(huì)拉高,初始化完成,F(xiàn)PGA開(kāi)始加載配置工作。

但是FPGA上電第一次加載時(shí),與PROGRAM_B信號(hào)沒(méi)有關(guān)系,只需要達(dá)到init_b的延遲時(shí)間,當(dāng)init_b拉高,F(xiàn)PGA就會(huì)加載配置。

三、問(wèn)題原因:

FPGA上電時(shí)序圖如圖1所示,時(shí)序要求如表1所示。上電后init_b會(huì)延遲10~50ms后拉高,然后CCLK開(kāi)始輸出,加載外部FLASH。通過(guò)示波器實(shí)測(cè)Tpor大約是20ms左右。而且經(jīng)過(guò)反復(fù)測(cè)量發(fā)現(xiàn),Tpor的延時(shí)是相對(duì)于VCCINT電壓?jiǎn)?dòng)后的。

XILINX偶然加載不成功的問(wèn)題原因及解決方法

圖1:FPGA上電啟動(dòng)時(shí)序

XILINX偶然加載不成功的問(wèn)題原因及解決方法

表1:FPGA上電時(shí)序要求

因此,如果FPGA的鏈路啟動(dòng)時(shí)間過(guò)長(zhǎng),整個(gè)鏈路啟動(dòng)時(shí)間超過(guò)50ms的時(shí)候,init_b信號(hào)的上升沿就會(huì)正好卡在3.3V電壓?jiǎn)?dòng)的過(guò)程中,如圖2所示。此時(shí)FPGA認(rèn)為已經(jīng)可以進(jìn)行加載流程,因此發(fā)送CCLK給外部FLASH。但是當(dāng)前3.3V電壓僅爬升到1.9V,還不足以啟動(dòng)FLASH芯片,因此FLASH芯片不會(huì)響應(yīng),F(xiàn)PGA在得不到FLASH回應(yīng)后,init_b信號(hào)再次拉低,表示FLASH加載過(guò)程出現(xiàn)異常。導(dǎo)致連上仿真器發(fā)現(xiàn)FLASH沒(méi)有加載成功。

XILINX偶然加載不成功的問(wèn)題原因及解決方法

圖2:故障情況下的上電時(shí)序(黃線:3.3V 藍(lán)線:init_b)

四、解決方案

1、 減少電源鏈路啟動(dòng)的時(shí)間,將時(shí)間控制在50ms以?xún)?nèi),同時(shí)尋找導(dǎo)通時(shí)間更短的MOS管,讓3.3V電壓爬升的時(shí)間縮短至1ms左右。

2、 由于故障的根本原因在于FPGA開(kāi)始加載FLASH時(shí),3.3V點(diǎn)沒(méi)有達(dá)到FLASH的工作電壓,因此可以嘗試更換一片寬壓FLASH芯片,看看問(wèn)題能否解決。

3、 前面兩種方案是基于不改版的情況下。如果后期可以改版,還是建議使用PCIE上來(lái)的12V電源,來(lái)提供整板的供電。所有電壓都通過(guò)電源芯片進(jìn)行轉(zhuǎn)換。然后將3.3V電源芯片的PGOOD引腳連接至init_b上。這種方式是人為延遲了init_b跳變的時(shí)間,也就是說(shuō)可以確保3.3V電壓穩(wěn)定之后,再去加載FLASH,這樣就可以確保不會(huì)出現(xiàn)該故障。而且即使3.3V爬升速率很滿(mǎn),也可以在3.3V電源達(dá)到足夠大的值之后再加載FLASH。圖3就是在類(lèi)似的板子上做了這樣的試驗(yàn),即使3.3V的上升時(shí)間達(dá)到了20ms,在init_b跳變的時(shí)刻,3.3V電源也已經(jīng)達(dá)到了3.0V的輸出,完全可以保證FLASH芯片正常工作。

XILINX偶然加載不成功的問(wèn)題原因及解決方法

圖3:故障修復(fù)后的上電時(shí)序(黃線:3.3V 藍(lán)線:init_b)

!!!本問(wèn)題出現(xiàn)在XC7Z030-FBG676芯片,理論上大部分的XILINX型號(hào)均會(huì)存在此問(wèn)題,出現(xiàn)此現(xiàn)象時(shí)可以參考。

明德?lián)P(MDY)除了承接項(xiàng)目外,還可為客戶(hù)提供FPGA芯片、電源芯片、AD芯片等元器件,可找我們了解。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21758

    瀏覽量

    604251
  • 芯片
    +關(guān)注

    關(guān)注

    456

    文章

    50947

    瀏覽量

    424708
  • 測(cè)試儀
    +關(guān)注

    關(guān)注

    6

    文章

    3763

    瀏覽量

    54933
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    調(diào)試ADS1246時(shí),出現(xiàn)向ADS1246寫(xiě)入寄存器不成功但讀取采樣數(shù)據(jù)正常的現(xiàn)象,為什么?

    在調(diào)試ADS1246時(shí),出現(xiàn)向ADS1246寫(xiě)入寄存器不成功但讀取采樣數(shù)據(jù)正常的現(xiàn)象,MUC與ADS1246不在一塊電路板上,SPI總線通過(guò)30cm的排線+FPC1.0連接,在sclk線上
    發(fā)表于 12-10 06:34

    MUC對(duì)TAS3251配置不成功原因

    MUC對(duì)TAS3251配置不成功 MCU配置TAS3251的初始化,我對(duì)照datasheet的47頁(yè)進(jìn)行配置,始終無(wú)法出出聲音,需要尋求一下幫助希望提供一下初始化代碼 I2C進(jìn)行了如下配置
    發(fā)表于 10-10 06:40

    ESP8266 OTA升級(jí)不成功原因

    我正在使用最新的 RTOS SDK 版本 1.5 ESP8266。我使用自定義服務(wù)器進(jìn)行OTA升級(jí)。 有時(shí) OTA 升級(jí)成功,有時(shí)即使閃爍了正確的圖像,OTA 升級(jí)也不成功。 我看到圖像CRC和閃存
    發(fā)表于 07-10 06:14

    esp32s2用tinyusb編譯不成功原因?

    esp32s2 用tinyusb編譯不成功 有教程指路嗎 版本是4.4
    發(fā)表于 06-18 06:44

    使用STM32CUBEMX創(chuàng)建一個(gè)基于RTOS的工程,互斥量創(chuàng)建不成功原因?

    使用STM32CUBEMX創(chuàng)建一個(gè)基于RTOS的工程,使用了互斥量,但互斥量創(chuàng)建不成功
    發(fā)表于 05-15 07:22

    STMStudio連接R-Link不成功是怎么回事?

    連接R-Link不成功,怎么回事?
    發(fā)表于 05-07 07:05

    STM32F103 USB枚舉不成功原因?

    (NVIC_VectTab_FLASH,0x8800),但此時(shí)USB便枚舉不成功,此時(shí)其他中斷是正常的;但若把APP起始地址改為0X8000000不使用IAP進(jìn)行跳轉(zhuǎn)則枚舉沒(méi)有問(wèn)題.我比較懷疑中斷向量這塊的設(shè)置是不是還有問(wèn)題,跪求高手幫忙看看.我使用的MCU為STM32F103
    發(fā)表于 04-29 06:29

    STM32在中斷中OSFlagPost不成功是為什么?

    STM32在中斷中OSFlagPost不成功,是為什么?
    發(fā)表于 04-23 07:44

    STM32F103RGT6位帶操作不成功原因?

    各位大神,我是一個(gè)入門(mén)級(jí)的超級(jí)菜鳥(niǎo),遇到一個(gè)問(wèn)題: 為啥子我同樣的位帶操作在STM32F103C8T6上操作成功,但是在STM32F103RGT6位帶操作不成功。
    發(fā)表于 04-19 06:32

    STM32F407VGT6刷了一次程序,再刷的時(shí)候不成功,為什么?

    STM32F407VGT6刷了一次程序,再刷的時(shí)候不成功 幫我看看什么原因,謝謝大佬了
    發(fā)表于 03-29 06:55

    使用STM32G030F6 I2C2進(jìn)行AT24C256讀寫(xiě)操作,始終不成功是什么原因?

    我使用STM32G030F6 I2C2 進(jìn)行AT24C256讀寫(xiě)操作,始終不成功!不知道什么原因
    發(fā)表于 03-26 08:02

    ST485BDR在-30度下串口通信不成功原因?

    測(cè)試830pcs,反饋在-30度下串口通信不成功
    發(fā)表于 03-19 06:03

    TC1784 CAN2數(shù)據(jù)發(fā)送不成功原因?

    TC1784 CAN2 數(shù)據(jù)發(fā)送不成功。CAN0,CAN1都能發(fā)送成功;DAVE 進(jìn)行CAN2配置和CAN0,CAN1類(lèi)似,只是未使用默認(rèn)端口,使用端口P9.0和P9.1。大家有相似的開(kāi)發(fā)嗎?是否配置要作相應(yīng)特別注意?謝謝!
    發(fā)表于 02-18 06:12

    開(kāi)關(guān)電源加載電流緩慢上升的解決方法

    上升的問(wèn)題,這會(huì)導(dǎo)致電源啟動(dòng)時(shí)間過(guò)長(zhǎng),影響整個(gè)系統(tǒng)的性能。本文將詳細(xì)介紹開(kāi)關(guān)電源加載電流緩慢上升的原因,并提出解決方法。 首先,我們需要了解開(kāi)關(guān)電源加載電流緩慢上升的
    的頭像 發(fā)表于 02-06 11:33 ?2637次閱讀

    GD32F303想控制PA13~15、PB3和PB4不成功

    有沒(méi)有小伙伴遇到這種情況:在使用GD32F303的時(shí)候,想要將PA13~15以及PB3和PB4作為IO口來(lái)使用,卻怎么也不成功呢?下面小編就來(lái)告訴大家原因。
    的頭像 發(fā)表于 02-01 09:49 ?2739次閱讀
    GD32F303想控制PA13~15、PB3和PB4<b class='flag-5'>不成功</b>?