專利名稱:一種在線編程的fpga可重構(gòu)裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及FPGA控制技術(shù)領(lǐng)域,具體來講,涉及具有多種工作模式的系統(tǒng) 中,通過對FPGA控制邏輯進行重構(gòu),選擇其一種工作模式的在線編程的FPGA 可重構(gòu)裝置。
背景技術(shù):
可重構(gòu)體系結(jié)構(gòu)指能夠利用可重分配的硬件資源,根據(jù)不同的應用要求,靈 活的改變自身的體系結(jié)構(gòu),以便為每個特定的應用需求提供與之相匹配的體系 結(jié)構(gòu)。
可重構(gòu)系統(tǒng)就是利用FPGA的可重配置特性,完成對可重構(gòu)體考結(jié)構(gòu)的改變, 即工作模式的重構(gòu),從而利用有限的硬件資源完成多種邏輯功能,這就是FPGA 可重構(gòu)系統(tǒng)的設(shè)計原理。所謂FPGA重配置,就是FPGA在掉電后配置數(shù)據(jù)會 自動丟失,再次上電后必須重新配置FPGA, FPGA才能正常工作。傳統(tǒng)的FPGA 配置數(shù)據(jù)時,只要系統(tǒng)一上電,F(xiàn)PGA就會自動的從配置存儲芯片中配置數(shù)據(jù), 就是說在任何時候,F(xiàn)PGA都掌控著配置芯片,用戶無法在線進行干涉。
現(xiàn)有技術(shù)中,可重構(gòu)裝置采用單片機、CPLD等器件直接對FPGA器件進行 編程配置,從而實現(xiàn)系統(tǒng)工作模式的可重構(gòu)。這種可重構(gòu)裝置的設(shè)計是利用單 片機等器件設(shè)計開發(fā)一個FPGA配置控制器,用于對FPGA工作程序的重新寫 入工作。并在系統(tǒng)中增加一個程序存儲器,用來存儲不同邏輯功能程序代碼, 不同邏輯功能對應的FPGA配置數(shù)據(jù)流文件通過編程存儲到FPGA配置存儲器 的不同區(qū)域里。配置控制器控制不同邏輯功能對應的FPGA配置數(shù)據(jù)流配置到 FPGA里。這樣在系統(tǒng)工作過程中,用戶可用依據(jù)自己的需求來調(diào)用自己所需要 的不同邏輯功能程序,并利用FPGA配置控制器來配置到FPGA器件中,實現(xiàn) 所需要的工作狀態(tài)。這種FPGA的可重構(gòu)裝置設(shè)計的主要工作任務(wù)是完成FPGA 配置控制器的設(shè)計工作,控制器的選擇比較靈活,但設(shè)計過程比較復雜,而且需 要大的存儲空間去存儲配置數(shù)據(jù)流,浪費了硬件資源,如果是對多個FPGA進本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種硬件結(jié)構(gòu)簡單的在線編程的FPGA可重構(gòu)裝置。為實現(xiàn)上述目的,本發(fā)明的在線編程的FPGA可重構(gòu)裝置,包括FPGA,其 特征在于,還包括 ,一配置芯片,與FPGA連接,用于存儲FPGA配置數(shù)據(jù);FPGA上電或配 置芯片中的FPGA配置數(shù)據(jù)更新后,F(xiàn)PGA下載配置芯片內(nèi)的配置數(shù)據(jù)對FPGA 的控制邏輯進行配置;一配置芯片控制器,其輸出控制nCONFIG、 nCE與FPGA的nCONFIG、 nCE連接,用于配置或編程過程中FPGA對配置芯片的控制權(quán)進行控制或釋放;一上位機,用于向DSP處理器發(fā)送重構(gòu)命令和配置數(shù)據(jù);一DSP處理器,用于接收來自上位機的重構(gòu)命令和配置數(shù)據(jù),并與配置芯 片控制器連接;DSP處理器接收到重構(gòu)命令后,發(fā)出控制選通命令字符串給配置芯片控制 器,控制選通命令字符串經(jīng)配置芯片控制器解析后將配置芯片控制器的 nCONFIG信號線置為低電平,nCE信號線置為高電平,從而使FPGA釋放對配 置芯片的總線,不讀取其中的配置程序數(shù)據(jù);然后DSP處理器將接收到配置數(shù) 據(jù)編程存入配置芯片中,當配置數(shù)據(jù)編程完畢后,配置芯片控制器的nCONFIG 信號線置為高電平,nCE信號線置為低電平,從而使FPGA重新獲得配置芯片 的總線;FPGA獲得配置芯片的控制權(quán),檢測到nCONFIG信號線的上升沿后, FPGA將下載配置芯片內(nèi)的數(shù)據(jù)進行重新配置,從而完成FPGA的在線編程重 構(gòu)。 ,本發(fā)明的發(fā)明目的是這樣實現(xiàn)的, 一上位機,是任意一臺個人計算機、工 業(yè)計算機或嵌入式計算機,具有或可安裝特定的發(fā)送例程模塊,可通過計算機 總線,如PCI總線,向DSP處理器犮送重構(gòu)命令和配置數(shù)據(jù)。將FPGA的配置 程序文件看作一個"對象",將所要完成的工作程序生成這樣的一個"對象","對 象"可以支持文件拷貝,或通過網(wǎng)絡(luò)傳送;然后由上位機的發(fā)送例程模塊把這理器負責將配置數(shù)據(jù)做 相應的時序轉(zhuǎn)化和數(shù)據(jù)處理后,在配置芯片控制器的監(jiān)控下把經(jīng)過處理的配置 文件數(shù)據(jù)下傳編程到FPGA的配置芯片中,以此來完成FPGA器件的重新配置, 既FPGA的重構(gòu)。在線編程重構(gòu)是上位機通過DSP處理器向配置芯片控制器發(fā)送控制命令以 及要進行配置的數(shù)據(jù)包,配置芯片控制器解析命令后執(zhí)行相應的操作,完成配 置芯片所需的下載時序及配置數(shù)據(jù),配置芯片的數(shù)據(jù)存儲完成后再進行FPGA 從配置芯片下載新的系統(tǒng)配置程序過程。 一般情況下在系統(tǒng)上電后FPGA都要 馬上從配置芯片中下載配置數(shù)據(jù),對配置芯片進行控制時首先要讓FPGA釋放 對配置芯片的控制,而在對配置芯片寫數(shù)據(jù)完成后又要將控制權(quán)交與FPGA,從 而FPGA又會下載最后一次完成的配置數(shù)據(jù)。與常用FPGA可重構(gòu)方法相比較,本設(shè)計所采用的FPGA可重構(gòu)設(shè)計的硬件 結(jié)構(gòu)更加簡單,任何包括FPGA邏輯設(shè)計的硬件系統(tǒng)只需增加少量電路,建立 于計算機的上位機用戶操作更加直觀,用戶特定的配置文件包的傳輸或分享也 更加靈活方便,在對FPGA的配置芯片寫入配置程序數(shù)據(jù)的時候并不會影響到 FPGA的繼續(xù)工作,系統(tǒng)重構(gòu)的時隙也更小。
圖l是本發(fā)明在線編程的FPGA可重構(gòu)裝置的一種具體實施方式
電路原理框圖;圖2是圖l所示在線編程的FPGA可重構(gòu)裝置的重構(gòu)的流程圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明的具體實施方式
進行描述,以便更好地理解本發(fā)明。 需要特別提醒注意的是,在以下的描述中,當采用已知功能和設(shè)計的詳細描述 也許會淡化本發(fā)明的主要內(nèi)容時,這些描述在這兒將被忽略。實施例 , 圖l是本發(fā)明在線編程的FPGA可重構(gòu)裝置的一種具體實施方式
電路原理框 圖。在本實施例中,如圖1所示,在線編程的FPGA可重構(gòu)裝置包括FPGA1、配 置芯片2、配置芯片控制器3、 DSP處理器4以及通信接口模塊5。在本實施例中,在FPGA的配合下把重構(gòu) 命令和配置數(shù)據(jù)傳輸?shù)紻SP處理器4的。在本實施例中,配置芯片2為一EPCS,即串行存儲器,其npS、 DCLK、 ASDI、 DATA信號線與FPGA1連接,用于存儲FPGA 1配置數(shù)據(jù)。FPGA 1上 電或配置芯片2中的FPGA配置數(shù)據(jù)更新后,F(xiàn)PGA1下載配置芯片2內(nèi)的配置 數(shù)據(jù)對FPGA1的控制邏輯進行配置。在本實施例中,配置芯片控制器3選用一 CPLD控制器,其輸出控制 nCONFIG、 nCE與FPGA 1的nCONFIG、 nCE連接,用于FPGA 1對配置芯片 2的控制權(quán)進行控制或釋放。CPLD控制器通過nCONFIG信號線和nCE信號線 的掌控從而達到對配置芯片2的控制權(quán)進行控制或釋放。同時,配置芯片控制器3,即CPLD控制器的nCSO、 DCLK、 ASDI、 DATAO 端口與配置芯片2,即EPCS存儲器的nCS、 DCLK、 ASDI、 DATA端口連接, 用于在FPGA1對配置芯片2的控制權(quán)釋放后,將配置數(shù)據(jù)存入配置芯片2中。 在本實施例中,DSP處理器4通過一個多通道緩沖串口 (McBSP)與配置芯 片控制器3,即CPLD控制器連接,并進行通信。其串口由數(shù)據(jù)信號線BDX、 幀信號線BFSX及時鐘信號線BCLKX組成,所有的控制命令和配置數(shù)據(jù)都是通 過這三條信號線來傳送。在本實施例中,DSP處理器4通過通信接口模塊5并在FPGA的配合下接 收來自上位機6重構(gòu)命令和配置數(shù)據(jù)。DSP處理器4接收到重構(gòu)命令后,通過 串口發(fā)出控制選通命令字符串給配置芯片控制器3??刂七x通命令,符串經(jīng)配置 芯片控制器3解析后將配置芯片控制器3,即CPLD控制器的nCONFIG信號線 置為低電平,nCE信號線置為高電平,F(xiàn)PGA1的nCSO、 DCLK、 ASDO、 DATAO 端口變?yōu)楦咦?,從而使FPGA1釋放對配置芯片2,即EPCS存儲器的掌控權(quán), 不讀取其中的配置程序數(shù)據(jù)。然后DSP處理器4將接收到配置數(shù)據(jù)進行時序轉(zhuǎn) 化和數(shù)據(jù)處理后通過串口發(fā)送到配置芯片控制器3,再通過配置芯片控制器3, 即CPLD控制器的nCSO、 DCLK、 ASDI、 DATAO端口將配置數(shù)據(jù)存入配置芯 片2中。當配置數(shù)據(jù)存儲完畢后,配置芯片控制器3的nCONFIG信號線置為高電平, nCE信號線置為低電平,從而使FPGA重新獲得配置芯片的掌控權(quán)。FPGA 1獲當在線編程的FPGA可重構(gòu)裝置上電后,配置芯片控制器3的nCONFIG信 號表現(xiàn)為高電平,nCE信號表現(xiàn)為低電平,此時,配置芯片控制器3,即CPLD 控制器把對配置芯片的控制權(quán)交給FPGA1,在此過程中FPGA執(zhí)行配置芯片的 數(shù)據(jù)讀取操作,即FPGA的配置過程:FPGA 1通過nCSO管腳置配置芯片的nCS 信號線為低電平,并通過ASDO管腳向配置芯片2發(fā)送控制命令和地址,在 DCLK的上升沿,配置芯片2通過DATAI信號線將配置程序數(shù)據(jù)發(fā)送到FPGA1 , 配置程序數(shù)據(jù)發(fā)送完畢后,F(xiàn)PGA 1的CONF—DONE端口由低電平變?yōu)楦唠娖剑?隨后FPGA1初始化并進入工作狀態(tài)。當需要進行系統(tǒng)重構(gòu)時,由上位機6通過通信接口模塊5并在FPGA 1的配 合下向DSP處理器4發(fā)送重構(gòu)命令就進行系統(tǒng)的重構(gòu)操作。圖2是圖1所示在線編程的FPGA可重構(gòu)裝置的重構(gòu)的流程圖。,如圖2所示, 重構(gòu)操作包括以下幾個步驟步驟ST1:上位機6發(fā)送重構(gòu)命令后,DSP處理器4通過串口向配置芯片 控制器3,即CPLD控制器發(fā)送控制選通命令字符串,命令經(jīng)CPLD控制器解析 后將nCONFIG信號線置為低電平,nCE信號線置為高電平,F(xiàn)PGAl的nCSO、 DCLK、 ASDO、 DATAO端口變?yōu)楦咦?,從而使FPGA1釋放對配置芯片2的掌 控權(quán),不讀取其中的配置程序數(shù)據(jù)。從而實現(xiàn)配置芯片控制器3,即CPLD控制 器對配置芯片2的nCS、 DCLK、 ASDI、 DATA管腳的掌控權(quán);步驟ST2:上位機6發(fā)送向DSP處理器4發(fā)送所需要的重構(gòu)配置數(shù)據(jù),存儲 在DSP處理器4的數(shù)據(jù)存儲區(qū)內(nèi)。經(jīng)過我們的實驗分析,在本實施例中,采用 Quartus軟件生成的pof格式文件數(shù)據(jù)并不能直接寫入配置芯片2,需要進行一 定方式的格式轉(zhuǎn)換。轉(zhuǎn)換的方式是將配置數(shù)據(jù)中的每一個字的八位二進制數(shù)據(jù) 按逆序重新排列后,再組合成要存儲到配置芯片2的配置數(shù)據(jù)。所以,我們需 要在DSP處理器內(nèi)做一步數(shù)據(jù)轉(zhuǎn)換的操作;步驟ST3:在對配置芯片2進行數(shù)據(jù)寫入以前,先要將其內(nèi)部的原有數(shù)據(jù)擦 除掉。所以這一步的任務(wù)是向配置芯片2發(fā)送控制命令,打開寫使能,隨后發(fā)必須大于相應芯片的規(guī)定 時間,否則不能完成擦除操作;步驟ST4:為了檢測擦除操作是否已操作成功,可以進行一次讀狀態(tài)操作命 令。讀狀態(tài)操作命令也需要先打開寫使能,再發(fā)送讀狀態(tài)操作命令;步驟ST5:當擦除操作沒有完成,則返回步驟ST3;但確認擦除操作完成后, 則進行步驟ST6;步驟ST6:對配置芯片2的配置數(shù)據(jù)進行寫入操作,配置數(shù)據(jù)的寫入需要按 幀依次寫入到對應的存儲地址; ,步驟ST7:判斷配置數(shù)據(jù)是否己經(jīng)寫完,如果沒有,則返回步驟ST6,如果 已經(jīng)完成,則進行步驟ST8。步驟ST8:所需的配置數(shù)據(jù)寫入完畢后,發(fā)送控制命令使得配置芯片控制器 3,即CPLD控制器釋放對配置芯片2的控制權(quán),即置配置芯片控制器3的nCS、 DCLK、 ASDI、 DATA信號線為高阻狀態(tài),nCONFIG信號線由低電平置為高電 平,nCE信號線置為由高電平置為低電平。FPGA1接手配置芯片2的控制權(quán), 檢測到nCONFIG信號線的上升沿后,F(xiàn)PGA 1將下載配置芯片2內(nèi)的配置數(shù)據(jù) 進行重新配置,此過程與系統(tǒng)上電時的配置過程相同。本發(fā)明的在線編程的FPGA可重構(gòu)裝置可以在系統(tǒng)不斷電的情》兄下進行重構(gòu) 過程,這樣就不會影響系統(tǒng)其它部分電路正在進行的工作,極大地方便了用戶 的實際應用。本發(fā)明只要把用戶所需要的配置數(shù)據(jù)寫進配置芯片中,用戶再通 過對FPGA的nCONFIG端口和nCE端口的控制就能隨意的配置FPGA 了 。通常大的邏輯任務(wù)中FPGA配置數(shù)據(jù)可以是一個很大的數(shù)據(jù)流,如果想通過 把它一次性存儲起來再傳輸?shù)脑?,無形中就浪費了很多的硬件資源,本發(fā)明就 很好的克服了這一點。通過簡單的,易操作的DSP多通道同步緩沖串口(McBSP)以及數(shù)據(jù)分段編程控制就實現(xiàn)了數(shù)據(jù)流的傳輸,而且這種傳輸數(shù)據(jù)流的過程是 一種動態(tài)的過程,就像流水線操作一樣,傳送一段數(shù)據(jù),我們就把它寫進配置 芯片中,也既是傳部分數(shù)據(jù),寫部分數(shù)據(jù),如此反復操作,直至把配置文件 數(shù)據(jù)全部寫進EPCS中,而且這個數(shù)據(jù)段的大小也是我們能控制的,這樣就實現(xiàn) 了用很小的空間,傳輸大的數(shù)據(jù)流的過程。其特點是硬件電路簡單,節(jié)約成本, 不需要增加太多的硬件資源,比如大容量的存儲器件等;而且配置過程靈活方便,用戶只需要一個相應的配置數(shù)據(jù)包即可完成系統(tǒng)重構(gòu)的功能。
盡管上面對本發(fā)明說明性的具體實施方式
進行了描述,以便于本技術(shù)領(lǐng)的 技術(shù)人員理解本發(fā)明,但應該清楚,本發(fā)明不限于具體實施方式
的范圍,對本 技術(shù)領(lǐng)域的普通技術(shù)人員來講,只要各種變化在所附的權(quán)利要求限定和確定的 本發(fā)明的精神和范圍內(nèi),這些變化是顯而易見的, 一切利用本發(fā)明構(gòu)思的發(fā)明 創(chuàng)造均在保護之列。
權(quán)利要求
1、一種在線編程的FPGA可重構(gòu)裝置,包括FPGA,其特征在于,還包括一配置芯片,與FPGA連接,用于存儲FPGA配置數(shù)據(jù);FPGA上電或配置芯片中的FPGA配置數(shù)據(jù)更新后,F(xiàn)PGA下載配置芯片內(nèi)的配置數(shù)據(jù)對FPGA的控制邏輯進行配置;一配置芯片控制器,其輸出控制nCONFIG、nCE與FPGA的nCONFIG、nCE連接,用于FPGA對配置芯片的控制權(quán)進行控制或釋放;一上位機,用于向DSP處理器發(fā)送重構(gòu)命令和配置數(shù)據(jù);一DSP處理器,用于接收來自上位機的重構(gòu)命令和配置數(shù)據(jù),并與配置芯片控制器連接;DSP處理器接收到重構(gòu)命令后,發(fā)出控制選通命令字符串給配置芯片控制器,控制選通命令字符串經(jīng)配置芯片控制器解析后將配置芯片控制器的nCONFIG信號線置為低電平,nCE信號線置為高電平,從而使FPGA釋放對配置芯片的總線,不讀取其中的配置程序數(shù)據(jù);然后DSP處理器將接收到配置數(shù)據(jù)編程存入配置芯片中,當配置數(shù)據(jù)編程完畢后,配置芯片控制器的nCONFIG信號線置為高電平,nCE信號線置為低電平,從而使FPGA重新獲得配置芯片的總線;FPGA獲得配置芯片的控制權(quán),檢測到nCONFIG信號線的上升沿后,F(xiàn)PGA將下載配置芯片內(nèi)的數(shù)據(jù)進行重新配置,從而完成FPGA的在線編程重構(gòu)。
2、 根據(jù)權(quán)利要求1所述的在線編程的FPGA可重構(gòu)裝置Z其特征在于,所 述的DSP處理器將接收到配置數(shù)據(jù)存入配置芯片中是 'DSP處理器將接收到配置數(shù)據(jù)進行時序轉(zhuǎn)化和數(shù)據(jù)處理后通過串口發(fā)送到 配置芯片控制器,再通過配置芯片控制器將配置數(shù)據(jù)存入配置芯片中。
3、根據(jù)權(quán)利要求2所述的在線編程的FPGA可重構(gòu)裝置,其特征在于,所 述的DSP處理器通過一個多通道緩沖串口 (McBSP)與配置芯片控制器連接, 并進行通信; -緩沖串口由數(shù)據(jù)信號線BDX、幀信號線BFSX及時鐘信號線BCLKX組成, 所有的控制命令和配置數(shù)據(jù)都是通過這三條信號線來傳送。
4、根據(jù)權(quán)利要求2所述的在線編程的FPGA可重構(gòu)裝置,其特征在于,所述的配置芯片控制器為CPLD控制器,所述的配置芯片為一 EPCS串行存儲器; CPLD控制器的nCSO、 DCLK、 ASDI、 DATAO端口與EPCS串行存儲器nCS、 DCLK、 ASDI、 DATA端口連接,用于在FPGA對的EPCS串行存儲器控制權(quán)釋放后,將配置數(shù)據(jù)存入EPCS串行存儲器中。
5、根據(jù)權(quán)利要求1所述的在線編程的FPGA可重構(gòu)裝置,其特征在于,所述的DSP處理器將接收到配置數(shù)據(jù)存入配置芯片中是1) 、在對配置芯片進行數(shù)據(jù)寫入以前,先要將其內(nèi)部的原有數(shù)據(jù)擦除掉,向 配置芯片發(fā)送控制命令,打開寫使能,隨后發(fā)送擦除命令將配置芯片原有數(shù)據(jù) 擦除;2) 、檢測擦除操作是否已操作成功,進行一次讀狀態(tài)操作命令;3) 、當擦除操作沒有完成,則返回步驟2;但確認擦除操作完成后,則進行 步驟4;4) 、對配置芯片的配置數(shù)據(jù)進行寫入操作,配置數(shù)據(jù)的寫入需要按幀依次寫 入到對應的存儲地址;判斷配置數(shù)據(jù)是否已經(jīng)寫完,如果沒有,則繼續(xù)進行寫 操作,直到完成。
全文摘要
本發(fā)明公開了一種在線編程的FPGA可重構(gòu)裝置,包括FPGA、配置芯片、配置芯片控制器以及DSP處理器。DSP處理器接收到重構(gòu)命令后,發(fā)出控制選通命令字符串給配置芯片控制器,控制選通命令字符串經(jīng)配置芯片控制器解析后將配置芯片控制器的nCONFIG信號線置為低電平,nCE信號線置為高電平,從而使FPGA釋放對配置芯片的掌控權(quán);然后DSP處理器將接收到配置數(shù)據(jù)存入配置芯片中,當配置數(shù)據(jù)存儲完畢后,配置芯片控制器的nCONFIG信號線置為高電平,nCE信號線置為低電平,從而使FPGA重新獲得配置芯片的掌控權(quán),獲得控制權(quán)后,檢測到nCONFIG信號線的上升沿后,F(xiàn)PGA將下載配置芯片內(nèi)的數(shù)據(jù)進行重新配置,從而完成FPGA的在線編程重構(gòu)。
文檔編號G06F13/40GK101673101SQ20091016776
公開日2010年3月17日 申請日期2009年9月27日 優(yōu)先權(quán)日2009年9月27日
發(fā)明者曹智淵, 猛 王, 王志剛, 錢炳松 申請人:電子科技大學