本發(fā)明屬于集成電路設(shè)計領(lǐng)域,具體涉及一種面向FPGA的多路通用化配置加載控制系統(tǒng)及方法。
背景技術(shù):
隨著微電子技術(shù)的不斷發(fā)展,F(xiàn)PGA被廣泛地應(yīng)用于電子電路與系統(tǒng)的開發(fā)和調(diào)試階段。FPGA可以支持重復(fù)編程,但掉電后數(shù)據(jù)消失,每次上電后,都需要對它進行重新加載。目前常用的FPGA配置加載方式有兩種:1)FPGA以JTAG方式進行加載,使用專用的軟件與硬件下載器將配置文件通過JTAG下載口加載到FPGA中,這種方式只適用于開發(fā)、調(diào)試階段。如果FPGA在沒有加載環(huán)境或者使用不同的配置文件的情況下,這種配置方式難以滿足環(huán)境和應(yīng)用要求。2)基于控制系統(tǒng)及存儲器的配置方式,該種加載系統(tǒng)主要由存儲器,F(xiàn)PGA,控制系統(tǒng)等幾部分組成。存儲器芯片用于存儲配置文件,控制系統(tǒng)實現(xiàn)對存儲器和FPGA進行控制。將FPGA配置文件存儲到存儲器內(nèi),在上電或者用戶需要配置FPGA時將存儲器中的文件讀取出,進行FPGA的配置。這樣就可以使FPGA工作在沒有外加配置條件的環(huán)境下。簡化了FPGA在JTAG模式下加載需要的硬件條件,實用性更強。
目前基于控制系統(tǒng)及存儲器的配置方式只針對特定存儲器控制單一FPGA進行加載,配置加載文件只能在地面通過專用下載器燒寫到存儲器內(nèi),通過控制存儲器中的配置文件的讀取,對FPGA進行配置加載,無法實現(xiàn)FPGA的在軌動態(tài)配置和自刷新,加載速率一般較低,應(yīng)用局限性較大。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服上述不足,提供一種面向FPGA的多路通用化配置加載控制系統(tǒng)及方法,能夠靈活有效對FPGA進行地面和在軌加載和動態(tài)自刷新控制,一方面保證了在軌運行中的配置文件的可變性,另一方面保證了空間配置的可靠性。
為了達到上述目的,提出了一種面向FPGA的多路通用化配置加載控制系統(tǒng),包括主機接口選擇模塊、幀解析模塊、寄存器配置模塊、存儲器控制模塊和FPGA加載控制模塊。主機接口選擇模塊上行與下載主機接口和上位機接口連接,下行與幀解析模塊連接,幀解析模塊與存儲器控制模塊連接,存儲器控制模塊與FPGA加載控制模塊連接,存儲器控制器模塊、FPGA加載控制模塊以及幀解析模塊均與寄存器模塊相連接,存儲器控制器模塊外圍連接若干存儲器,F(xiàn)PGA加載控制模塊外圍連接若干FPGA。
所述主機接口選擇模塊用于對多主機接口進行實時動態(tài)切換;
所述幀解析模塊用于實現(xiàn)與主機交互的通信協(xié)議命令的解析;
所述寄存器配置模塊用于管理控制系統(tǒng)的寄存器,對控制系統(tǒng)進行配置和狀態(tài)讀?。?/p>
所述存儲器控制模塊用于對存儲器進行訪問控制;
所述FPGA加載控制模塊用于FPGA的加載和自刷新控制。
所述下載主機通過并行GPIF接口連接主機接口選擇模塊;上位機通過串行UART接口連接主機接口選擇模塊。
所述存儲器控制模塊支持對NAND FLASH、NOR FLASH、MRAM和Xilinx原廠PROM四類存儲器的訪問控制。
所述幀解析模塊解析出的通信幀包括幀頭、命令字、數(shù)據(jù)字和校驗字四個部分;
所述幀頭為主機和配置加載系統(tǒng)的通信標(biāo)識,系統(tǒng)識別到幀頭后確認為一次通信傳輸;
所述命令字為根據(jù)系統(tǒng)所有傳輸命令進行的編碼,系統(tǒng)通過命令字進行命令識別;
所述數(shù)據(jù)字為傳輸?shù)膶嶋H數(shù)據(jù);
所述校驗字對命令字和數(shù)據(jù)字進行校驗,判定本次傳輸?shù)恼_性,根據(jù)校驗的正誤向主機反饋相應(yīng)的信息。
一種面向FPGA的多路通用化配置加載控制系統(tǒng)的控制方法,包括以下兩種方式:
第一種,通過存儲器配置加載FPGA:FPAG配置加載系統(tǒng)系統(tǒng)接收到通過存儲器配置加載FPGA的命令時,,該系統(tǒng)向存儲器發(fā)送讀請求將所需要的配置文件讀取出來,按照Slave Selectmap模式的加載時序,將配置文件加載到FPGA中;
第二種,通過主機直接配置加載FPGA:FPGA配置加載系統(tǒng)接收到通過主機直接配置加載FPGA命令時,該系統(tǒng)直接接收下載主機或上位機發(fā)送的配置加載文件,按照Slave Selectmap模式的加載時序,將配置文件加載到FPGA中。
所述下載主機選擇并行GPIF接口,用于地面配置文件的下載,上位機接口選擇串行UART接口,用于系統(tǒng)配置和在軌數(shù)據(jù)傳輸,兩種主機接口全兼容,通過外部選擇信號實現(xiàn)操作互斥,能夠進行實時動態(tài)切換,根據(jù)需求選擇合適的主機和系統(tǒng)進行通信。
與現(xiàn)有技術(shù)相比,本發(fā)明的系統(tǒng)具有多種主機接口,針對地面平臺和星載應(yīng)用進行多種接口兼容性控制,實現(xiàn)針對不同應(yīng)用環(huán)境的訪問控制接口,進行歸一化訪問處理,極大地提高了產(chǎn)品的通用性和環(huán)境適應(yīng)性;并通過結(jié)構(gòu)優(yōu)化及電路功能復(fù)用技術(shù)實現(xiàn)了對所有星用Xilinx系列FPGA和配置用存儲器的兼容管理;針對星用的不同配置加載、定時刷新和動態(tài)重構(gòu)策略,實現(xiàn)了所有應(yīng)用要求的多FPGA、多文件、定制策略管理方式;通過數(shù)據(jù)傳輸旁路策略,設(shè)計實現(xiàn)了接口直接配置FPGA方式,簡化了硬件條件,實現(xiàn)了在軌平臺的實時配置加載控制。
進一步的,本發(fā)明支持NAND FLASH、NOR FLASH、MRAM和Xilinx原廠PROM等多種存儲器類型,每個FPGA可根據(jù)應(yīng)用需求和配置文件大小獨立選擇使用的存儲器類型,減少了由于存儲器帶來的局限性。
本發(fā)明的方法實現(xiàn)了存儲器配置FPGA和主機直接配置FPGA兩種配置加載方式,實現(xiàn)了在軌平臺的實時配置加載和自刷新控制,針對地面平臺和在軌應(yīng)用進行接口兼容性控制,實現(xiàn)針對不同應(yīng)用環(huán)境的訪問控制接口,提高了產(chǎn)品的環(huán)境適應(yīng)性;實現(xiàn)了對Xilinx系列FPGA的配置加載和自刷新控制及通用存儲器的兼容管理,本發(fā)明支持多種存儲器類型,每個FPGA可根據(jù)應(yīng)用需求和配置文件大小獨立選擇使用的存儲器類型,減少了由于存儲器帶來的局限性。
附圖說明
圖1為本發(fā)明FPGA配置加載控制系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為本發(fā)明存儲器配置FPGA的示意圖;
圖3為本發(fā)明主機直接配置FPGA的示意圖;
圖4為本發(fā)明通信幀的格式示意圖;
圖5為本發(fā)明存儲器控制模塊的結(jié)構(gòu)示意圖;
圖6為本發(fā)明片選產(chǎn)生示意圖;
圖7為本發(fā)明FPGA配置加載接口連接方式示意圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明做進一步說明。
參見圖1,一種面向FPGA的多路通用化配置加載控制系統(tǒng),包括主機接口選擇模塊、幀解析模塊、寄存器配置模塊、存儲器控制模塊和FPGA加載控制模塊。主機接口選擇模塊上行與下載主機接口和上位機接口連接,下行與幀解析模塊連接,幀解析模塊與存儲器控制模塊連接,存儲器控制模塊與FPGA加載控制模塊連接,存儲器控制器模塊、FPGA加載控制模塊以及幀解析模塊均與寄存器模塊相連接,存儲器控制器模塊外圍連接若干存儲器,F(xiàn)PGA加載控制模塊外圍連接若干FPGA。
主機接口選擇模塊用于對多主機接口進行實時動態(tài)切換;
幀解析模塊用于實現(xiàn)與主機交互的通信協(xié)議命令的解析;
寄存器配置模塊用于管理控制系統(tǒng)的寄存器,對控制系統(tǒng)進行配置和狀態(tài)讀??;
存儲器控制模塊用于對存儲器進行訪問控制;
FPGA加載控制模塊用于FPGA的加載和自刷新控制。
下載主機通過并行GPIF接口連接主機接口選擇模塊;上位機通過串行UART接口連接主機接口選擇模塊。
優(yōu)選的,存儲器控制模塊支持對NAND FLASH、NOR FLASH、MRAM和Xilinx原廠PROM四類存儲器的訪問控制。
儲存器采用NAND FLASH、NOR FLASH、MRAM和Xilinx原廠PROM四類存儲器。
系統(tǒng)外圍部件主要有存儲器芯片、主機和FPGA,存儲器芯片負責(zé)存儲FPGA的配置文件;主機作為系統(tǒng)訪問控制的媒介,發(fā)送命令控制配置加載系統(tǒng)進行相應(yīng)操作。本配置加載系統(tǒng)作為邏輯控制端,對主機的命令進行解析,并且與主機實現(xiàn)數(shù)據(jù)交互通信。
參見圖2和圖3,一種面向FPGA的多路通用化配置加載控制系統(tǒng)的控制方法,包括以下兩種方式:
第一種,通過存儲器配置加載FPGA:FPAG配置加載系統(tǒng)系統(tǒng)接收到通過存儲器配置加載FPGA的命令時,該系統(tǒng)向存儲器發(fā)送讀請求將所需要的配置文件讀取出來,按照Slave Selectmap模式的加載時序,將配置文件加載到FPGA中;
第二種,通過主機直接配置加載FPGA:FPGA配置加載系統(tǒng)接收到通過主機直接配置加載FPGA命令時,該系統(tǒng)直接接收下載主機或上位機發(fā)送的配置加載文件,按照Slave Selectmap模式的加載時序,將配置文件加載到FPGA中。
配置加載系統(tǒng)主機接口控制模塊實現(xiàn)兩路主機對系統(tǒng)的訪問控制,進行主機切換選擇,完成數(shù)據(jù)的傳輸。系統(tǒng)包括下載主機和上位機兩個主機接口分別可與兩個主機進行通信,下載主機選擇并行GPIF接口,傳輸速度快,主要用于地面配置文件的下載,上位機接口選擇串行UART接口,主要用于系統(tǒng)配置和在軌數(shù)據(jù)傳輸,兩種主機接口進行了全兼容性設(shè)計,通過外部選擇信號實現(xiàn)操作互斥,可以進行實時動態(tài)切換,根據(jù)需求選擇合適的主機和系統(tǒng)進行通信。系統(tǒng)定義固定格式的幀,通過幀數(shù)據(jù)傳輸和握手協(xié)議完成主機和配置加載系統(tǒng)的通信。主機與配置加載系統(tǒng)的通信幀格式如圖4所示,包括幀頭、命令字、數(shù)據(jù)字和校驗字四個部分。幀頭為主機和配置加載系統(tǒng)的通信標(biāo)識,系統(tǒng)識別到幀頭后確認為一次通信傳輸。命令字為根據(jù)系統(tǒng)所有傳輸命令進行的編碼,系統(tǒng)通過命令字進行命令識別,如寄存器讀命令、存儲器寫命令等。數(shù)據(jù)字為傳輸?shù)膶嶋H數(shù)據(jù)。校驗字對命令字和數(shù)據(jù)字進行校驗,判定本次傳輸?shù)恼_性,根據(jù)校驗的正誤向主機反饋相應(yīng)的信息。
存儲器控制模塊實現(xiàn)對存儲器的訪問控制。配置加載控制系統(tǒng)支持Xilinx原廠PROM、MRAM、NOR Flash和NAND Flash四種不同存儲器的訪問控制。對于MRAM、NOR FLASH和NAND FLASH三種存儲器而言,訪問包括兩個部分:主機的訪問和FPGA加載的讀訪問。兩個訪問互斥,F(xiàn)PGA加載訪問的優(yōu)先級高,在FPGA加載時,配置加載系統(tǒng)不響應(yīng)外部主機的訪問。對于Xilinx原廠PROM,配置數(shù)據(jù)需通過外部下載器寫入,本系統(tǒng)只支持FPGA加載的讀訪問。當(dāng)主機進行訪問時,存儲器控制模塊根據(jù)主機接口發(fā)來的幀命令和數(shù)據(jù)以及存儲器類型分別產(chǎn)生三類存儲器的訪問控制時序,完成對存儲器的讀、寫、擦除、復(fù)位等操作;當(dāng)FPGA加載訪問時,根據(jù)FPGA加載控制模塊發(fā)來的當(dāng)前訪問的存儲器類型、文件首地址、開始讀取、結(jié)束讀取等命令分別產(chǎn)生四類存儲器讀數(shù)據(jù)訪問所需的控制時序,將讀數(shù)據(jù)返回給FPGA進行配置加載。存儲器控制結(jié)構(gòu)如圖5所示。配置加載系統(tǒng)提供四個外部存儲器類型片選端口,根據(jù)存儲器類型寄存器的配置,由存儲器控制模塊產(chǎn)生。每類存儲器對應(yīng)一個片選信號,片選信號(TYPE_CS[3:0])僅表示當(dāng)前訪問的存儲器類型。在應(yīng)用中若某個存儲器需要使用多片,則根據(jù)具體使用的存儲器片數(shù),通過地址高位進行外部譯碼來產(chǎn)生實際存儲器的片選信號。片選產(chǎn)生如圖6所示,其中k,l,m,n分別表示每類存儲器使用的片數(shù)。這樣可根據(jù)具體應(yīng)用進行片選的擴展,大大提高了使用的靈活性和應(yīng)用的普適性。
FPGA加載控制模塊根據(jù)配置信息,從存儲器中或主機獲取配置數(shù)據(jù),從而實現(xiàn)FPGA的配置加載和自刷新。FPGA配置加載模塊支持多路FPGA的配置加載控制,通過Slave SelectMAP模式進行配置加載控制。以四路FPGA為例,四路FPGA的配置加載按先后順序依次進行,四路FPGA的DATA、CCLK、RDWR_B端口共用本控制系統(tǒng)相應(yīng)的端口,PROGRAM_B、INIT_B、CS_B和DONE端口由本控制系統(tǒng)分別控制,系統(tǒng)與FPGA連接方式如附圖7所示。
本發(fā)明的通用化配置加載控制系統(tǒng)已經(jīng)在某星載通用FPGA配置加載控制電路中進行了全面的實驗,該電路使用了本發(fā)明中的在軌多路通用化配置加載控制系統(tǒng)設(shè)計方法,兼容了多種存儲器訪問,配置加載支持Xilinx系列FPGA,支持多接口訪問,提高了系統(tǒng)的通用性和普適性,保證了在軌配置加載的實時性和靈活性,提升了配置加載的速度。該款電路已完成流片、測試,在系統(tǒng)應(yīng)用驗證中表現(xiàn)良好,滿足預(yù)定的功能性能指標(biāo)。