新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > FPGA自動加載系統(tǒng)設(shè)計實現(xiàn)

FPGA自動加載系統(tǒng)設(shè)計實現(xiàn)

作者: 時間:2016-10-18 來源:網(wǎng)絡(luò) 收藏

摘要:針對可以在每次上電時自動獲取配置文件的需求,提出了一種由USB芯片和、CPLD組成的可對上電后自動加載的系統(tǒng)。該系統(tǒng)可以通過USB芯片和CPLD將PC中的配置文件寫入,并且在CPLD的控制下將配置文件以PS模式配置給FPGA。測試表明,該系統(tǒng)可以在上電時自動對FPGA進行加載,彌補了FPGA掉電后數(shù)據(jù)消失的不足。

本文引用地址:http://m.butianyuan.cn/article/201610/308546.htm

0 引言

FPGA(Field Programmable Gate Array)即現(xiàn)場可編程門陣列,隨著微電子技術(shù)的發(fā)展,F(xiàn)PGA的性能變的越來越優(yōu)越,應(yīng)用空間也變得越來越廣。FPGA具有支持重復(fù)編程的特點,但是掉電后不能保存配置信息。因此在上電后,都需要用戶將設(shè)計的FPGA配置文件從外部存儲器中下載到FPGA中才能工作。針對這種情況,本文提出了一種以USB芯片,和CPLD組成的FPGA。該系統(tǒng)通過USB芯片將PC中的配置文件傳送給CPLD,CPLD再將其寫入FLASH芯片,F(xiàn)LASH芯片可以長久地存儲配置文件。這樣FPGA每次上電后CPLD將FLASH中的配置文件讀出來配置FPGA。從而使FPGA在每次上電后都可以自動獲取配置文件,使其可以作為一個獨立“芯片”工作,具有很強的實用性。在PS模式配置方式上也有改進,在傳統(tǒng)PS模式下配置多個FPGA時通常使用前一級的FPGA的nCEO連接后一級FPGA的nCE來使能后一級FPGA,這樣在第一個FPGA配置好后,nCEO會使能下一級的FPGA開始配置。這樣只能先配置第一個FPGA,而且不能自由控制來配置下一級的FPGA。采用CPLD同時連接兩個nCE,在前一級FPGA配置好后,獲取完成信號來配置第二個FPGA,這樣不受FPGA前后級聯(lián)的順序影響,可以自由選擇配置FPGA。

1 系統(tǒng)框架及芯片簡介

系統(tǒng)由CPLD,USB芯片和FLASH芯片組成,外加PC部分配合系統(tǒng)工作。系統(tǒng)框架見圖1。系統(tǒng)中USB芯片連接PC與CPLD,PC通過USB向CPLD發(fā)送命令來操作FLASH。首先發(fā)送擦除FLASH命令,擦除完畢或?qū)⑴渲梦募懭隖LASH芯片。在FLASH芯片中可以存入多個FPGA的配置文件,在上電后或者需要加載時,CPLD讀取FLASH中的配置文件并且對FPGA進行配置。

FPGA自動加載系統(tǒng)設(shè)計實現(xiàn)

2 燒寫FLASH時序

USB、CPLD和FLASH的連接關(guān)系如圖2所示。USB將PC的命令和配置文件發(fā)送給CPLD,CPLD通過時序邏輯控制FLASH。

FPGA自動加載系統(tǒng)設(shè)計實現(xiàn)

系統(tǒng)中所使用的USB芯片是FTDI公司的FT245BL,將USB芯片與PC連接后,USB芯片會自動識別為串口,利用串口調(diào)試助手可以向其發(fā)送命令或文件。

擦除和燒寫FLASH操作如下所述:

FLASH芯片選用恒憶公司的M29EW系列512MNOR型FLASH。采用異步時鐘操作,時序圖中的fls_byte管腳對應(yīng)的位寬選擇信號,在本系統(tǒng)中將其拉低表示使用8 b位寬fls_adr表示地址,fls_dat表示數(shù)據(jù),fls_cen為芯片使能信號,fls_oen為芯片讀使能信號,fls_wen為芯片寫使能信號。

如圖3和圖4所示,在執(zhí)行擦除或?qū)懖僮鲿r序時,將fls_cen拉低、fls_oen拉高時可以執(zhí)行寫或擦除命令,fls_wen上升沿采樣地址,下降沿采樣數(shù)據(jù)。fls_ry_by是芯片的繁忙或空閑信號,是FLASH芯片惟一的輸出信號,用于表示正在執(zhí)行擦除或者寫操作。

FPGA自動加載系統(tǒng)設(shè)計實現(xiàn)
FPGA自動加載系統(tǒng)設(shè)計實現(xiàn)

(1)擦除FLASH

在使用FALSH芯片之前需要對其進行擦除,PC通過USB向CPLD發(fā)出擦除命令后如圖3所示。寫入連續(xù)5個對應(yīng)的地址和數(shù)據(jù)后,F(xiàn)LASH芯片將整個芯片的數(shù)據(jù)擦除,如圖3所示在執(zhí)行后,fls_ry_by信號拉低表示進入了擦除狀態(tài)。

(2)燒寫FLASH

如圖4所示,在執(zhí)行寫FLASH操作時,首先需要給出寫FLASH三次對應(yīng)的數(shù)據(jù)和地址作為前置命令,然后給出需要寫入FLASH的地址和數(shù)據(jù)。在接到命令后,CPLD根據(jù)圖中時序?qū)PGA的配置文件寫入FLASH。

3 PS模式自動加載FPGA

FPGA的配置管腳如圖5所示。

在PS模式下配置FPGA的FLASH,CPLD和FPGA的連接關(guān)系如圖5所示。

FPGA自動加載系統(tǒng)設(shè)計實現(xiàn)

圖6所示為FPGA的流程圖。在加載過程中,將ps_nce拉低并且將ps_nconfig拉低至少40μs后再拉高,正常情況下這個操作會使ps_nstatus產(chǎn)生一個由低到高的一個脈沖信號并且使ps_conf_done由高變低。在ps_nstatus產(chǎn)生上升沿的瞬間立即給出ps_dclk和ps_data0來配置FPGA,其中ps_data0信號是通過讀取FLASH芯片中的數(shù)據(jù)實現(xiàn)的。FPGA在接收配置文件的過程會自動識別文件的結(jié)尾,在配置結(jié)束后ps_ conf_done信號會拉高以表明配置結(jié)束,配置過程中init_done會由高變低,在經(jīng)過至少18μs后init_done信號拉高表明完成初始化,隨后進入用戶模式。常規(guī)的方式采用nCONFIG,nSTATUTS,CONF_DONE復(fù)用,并且前一級FPGA的nCE連接后一級的FPGA的nCEO,這樣加載順序就被固定,而且每次加載只能先加載第一個FPGA,待加載完畢后才能加載第二個FPGA。與常規(guī)的配置方式不同之處在于通過使能nCE來選擇需要配置的FPGA,給出相應(yīng)的配置文件與信號ps_conf_done的時序來判斷是否配置完成,這樣就可以自由選擇配置FPGA。

FPGA自動加載系統(tǒng)設(shè)計實現(xiàn)
FPGA自動加載系統(tǒng)設(shè)計實現(xiàn)

如圖7所示為FPGA自動加載的平臺,通過CPLD的邏輯控制和USB芯片的總線可以將PC端配置文件寫入FLASH芯片中。在需要使用自動加載功能時,在上電后CPLD會立即讀出存取在FLAHS中的FPGA配置文件,以PS模式配置相應(yīng)的FPGA。

4 結(jié)論

經(jīng)測試系統(tǒng)可以在上電后對FPGA進行自動加載。本文提供了系統(tǒng)的結(jié)構(gòu)框架和實施方案整體流程以及時序要求,具有很強的應(yīng)用和參考價值。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉