專利名稱:一種加載現(xiàn)場可編程門陣列的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種加載現(xiàn)場可編程門陣列的系統(tǒng)和利用該系統(tǒng)加載現(xiàn)場可編程門陣列的方法。
背景技術(shù):
隨著技術(shù)的發(fā)展,可編程邏輯器件FPGA(現(xiàn)場可編程門陣列)以其靈活可變的設(shè)計實現(xiàn),能夠在最短時間內(nèi)最快的實現(xiàn)設(shè)計需求的特性,對于提供客戶化服務(wù),搶占市場制高點有著決定性的作用,正在成為系統(tǒng)設(shè)計中不可缺少的部分。
目前市場上存在著從數(shù)萬門到千萬門級的各種FPGA器件,能夠使使用者在最短的時間內(nèi)實現(xiàn)各種復(fù)雜的DSP(數(shù)字信號處理)演算、網(wǎng)絡(luò)通訊協(xié)議、軟件IP(互聯(lián)網(wǎng)協(xié)議)核心算法以及各類復(fù)雜接口功能,運用FPGA器件實現(xiàn)網(wǎng)絡(luò)系統(tǒng)的設(shè)計已成為目前設(shè)計的主流。
可編程的FPGA器件在每次上電時都會要求重新加載網(wǎng)表文件到FPGA器件中。FPGA器件的提供商一般會提供加載FPGA器件的操作指導(dǎo),不同提供商的器件加載不盡相同,例如A公司的FPGA器件可通過直接電纜下載、JTAG(邊界掃描模式)鏈加載、被動并行加載(同步/異步)、被動串行加載(同步/異步)等方式加載;B公司的FPGA器件可通過JTAG鏈加載、主動加載、被動加載等方式加載。A、B兩家公司的器件都提供了專用電纜加載的方式,可以方便地使用專用電纜或者利用JTAG鏈加載調(diào)試。
由于在商業(yè)化運用中,安全快捷的加載是必不可缺的,因此不同提供商所提供的相關(guān)的加載模式(主/被,串/并加載方式)雖然在細節(jié)定義上不同,但是總體思想是一致的。如圖1所示,在硬件互連時,F(xiàn)PGA器件的控制管腳連接在控制器件(通常為CPU)的通用I/O上,軟件根據(jù)FPGA器件加載所需的時序,在控制器件(通常為CPU)的對應(yīng)通用I/O上進行模擬,根據(jù)對應(yīng)I/O的響應(yīng)將數(shù)據(jù)發(fā)送到數(shù)據(jù)總線上,實現(xiàn)加載。如圖2所示,公共底層模塊針對CPU和FPGA器件互連的管腳定義,加載控制軟件針對FPGA器件和所選的加載模式(并行或串行),在CPU(即控制器件)的相應(yīng)端口模擬時序。也就是說,需要各自的單板模塊針對單板上的不同的FPGA器件使用的控制器件(通常為CPU)的I/O模擬出相應(yīng)的加載時序。需要編寫專用的加載軟件,以模擬加載時序,并對其進行控制。加載實現(xiàn)作為特殊功能在各自單板軟件中實現(xiàn),再提供接口給系統(tǒng)模塊。
現(xiàn)有技術(shù)存在如下問題在硬件方面,需要控制器件對FPGA器件的控制端口分配通用I/O,對于多FPGA器件的單板而言,存在著控制器件的通用I/O緊張的情況。在集成型產(chǎn)品中,單CPU作為控制器件控制整個系統(tǒng)的運行,由于在相同板位(槽位)會出現(xiàn)混插不同單板的情況,在系統(tǒng)總線中將增加兼容不同單板所使用的不同的FPGA器件的加載控制線。圖3是說明在多FPGA器件的系統(tǒng)中,傳統(tǒng)模式會增加系統(tǒng)總線的復(fù)雜程度的示意圖。如圖3所示,因為每個FPGA器件的加載是需要單獨控制的,在系統(tǒng)中有很多FPGA器件的時候,實現(xiàn)這個控制的I/O的資源就會很復(fù)雜,并且影響系統(tǒng)總線,不僅增加了控制器件的I/O資源的消耗,還會使系統(tǒng)總線的設(shè)計變得復(fù)雜。在高度集成的產(chǎn)品中,系統(tǒng)采用單CPU控制的方式,只有主控單板上存在CPU,由于業(yè)務(wù)設(shè)計的需求龐大,板間的總線接口預(yù)留非常有限,使用傳統(tǒng)方式實現(xiàn)對整個系統(tǒng)上所有可能單板的FPGA器件的邏輯加載有困難。
在軟件方面,加載時序在單板模塊中完成。對于同樣器件的不同應(yīng)用環(huán)境,由于硬件連線的不同,需要重新編制底層軟件的端口定義,重新調(diào)試加載時序,由于加載時序在單板模塊中完成,會出現(xiàn)系統(tǒng)中對同一器件的加載時序不同的現(xiàn)象,軟件模塊劃分模糊,可移植性不高。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種加載現(xiàn)場可編程門陣列的系統(tǒng)和方法,充分利用系統(tǒng)總線,使控制器件(通常為CPU)在加載FPGA器件時可以屏蔽FPGA器件的個體差異,在硬件方面做到減少單板控制器件(通常為CPU)的I/O資源的損耗,并不影響集成總線的設(shè)計。在軟件方面,將FPGA器件的加載作為器件控制實現(xiàn),可以做到相同器件使用相同的模擬加載時序模塊,減少軟件的開發(fā)量,使加載時序模塊可以移植,減少開發(fā)量。
為實現(xiàn)上述目的,本發(fā)明提供了一種加載FPGA器件的系統(tǒng),包括控制器件和FPGA器件,并進一步包括一加載控制器件,所述控制器件的數(shù)據(jù)總線與所述加載控制器件及所述FPGA器件相連,所述控制器件的地址總線和控制總線與所述加載控制器件相連,所述控制器件可以通過總線操作控制所述加載控制器件,所述控制器件根據(jù)所述控制器件的控制信息控制所述FPGA器件,實現(xiàn)所述FPGA器件的加載。
優(yōu)選地,所述加載控制器件包括加載狀態(tài)寄存器、加載控制寄存器;所述加載狀態(tài)寄存器用于寄存所述現(xiàn)場可編程門陣列器件的加載狀態(tài)信息,所述控制器件通過讀取所述加載狀態(tài)寄存器,可以獲取所述現(xiàn)場可編程門陣列器件的加載狀態(tài);所述加載控制寄存器根據(jù)所述控制器件的控制信息控制所述現(xiàn)場可編程門陣列器件的加載。
加載控制器件可以進一步包括加載數(shù)據(jù)寄存器,所述加載數(shù)據(jù)寄存器用于存放所述控制器件送出的網(wǎng)表數(shù)據(jù)。
為實現(xiàn)上述目的,本發(fā)明提供了一種加載FPGA器件的方法,包括(1)對所述加載控制器件進行信息定義;(2)模擬加載時序(3)通過控制器件總線驅(qū)動加載控制器件,實現(xiàn)加載。
優(yōu)選地,所述模擬加載時序在系統(tǒng)公共底層模塊中實現(xiàn)。
優(yōu)選地,所述模擬加載時序在單板模塊中實現(xiàn)。
優(yōu)選地,所述控制器件為中央處理單元(CPU)。
本發(fā)明可簡化硬件設(shè)計,提高加載軟件的可移植性,并能利用少量控制器件加載多個FPGA器件。
圖1是FPGA器件在線加載的硬件示意圖;圖2是傳統(tǒng)模式加載軟件模塊實現(xiàn)示意圖;圖3是多FPGA器件的系統(tǒng)中,傳統(tǒng)模式的系統(tǒng)總線控制示意圖;圖4是本發(fā)明的一個實施例的加載FPGA器件的系統(tǒng)的硬件連接示意圖;圖5是本發(fā)明的一個實施例的加載控制器件的結(jié)構(gòu)示意圖;圖6是依據(jù)本發(fā)明的加載FPGA器件的方法的軟件模塊實現(xiàn)示意圖。
具體實施例方式
下面結(jié)合附圖詳細地說明本發(fā)明的具體實施方案。
如圖4所示,本發(fā)明提供了一種加載FPGA器件的系統(tǒng),將FPGA器件的加載控制線與加載狀態(tài)線與一加載控制器件連接,所述加載控制器件與CPU的數(shù)據(jù)總線、地址總線和控制總線相連接,按照分配的加載控制器件的地址空間實現(xiàn)對FPGA器件的加載。CPU的數(shù)據(jù)總線同時與FPGA器件相連,該數(shù)據(jù)總線與CPU對加載控制器件進行寫操作的數(shù)據(jù)總線是一致的。優(yōu)選地,CPU的地址總線和控制總線與FPGA器件相連接。但地址總線和控制總線也可以不與FPGA器件相連接,這不會影響本發(fā)明的實現(xiàn)。
所述加載控制器件由數(shù)字門電路/PLD(可編程邏輯電路)電路組成,掛接在CPU控制總線上,分配有地址空間,可以進行CPU總線操作,可以將FPGA器件的相關(guān)加載信號分配到對應(yīng)地址空間。具體地,按照相關(guān)加載信號的用途,將FPGA器件表明狀態(tài)的輸出信號線排列到加載控制器件的加載狀態(tài)寄存器響應(yīng)BIT位;將控制FPGA器件加載的輸入信號線排列到加載控制器件的加載控制寄存器響應(yīng)BIT位。實現(xiàn)CPU對加載信號狀態(tài)的讀取和模擬。
加載控制器件的實現(xiàn)思路就是直接將FPGA器件的加載線按照讀寫分類引入加載控制器件的寄存器。FPGA器件中有這么一部分特殊專用管腳1)用于表征加載狀態(tài)的,通過這些狀態(tài)線的高低電平,延翻轉(zhuǎn)等方式表示加載的狀態(tài),加載等待,加載失敗,加載成功等等;2)用來控制加載的,配合加載狀態(tài)線的變化給出適合的高低電平或者延翻轉(zhuǎn)等控制FPGA器件接收數(shù)據(jù),停止接收等,實現(xiàn)加載控制。在加載控制器件中提供與這些管腳相連的寄存器,從而通過對這些寄存器的讀寫實現(xiàn)對這些管腳的操作。
如圖5所示,在本實施例中,加載控制器件中帶有三種寄存器,加載狀態(tài)寄存器,加載控制寄存器,加載數(shù)據(jù)寄存器。分別介紹如下加載狀態(tài)寄存器將FPGA器件的加載狀態(tài)線引入加載控制器件,具體地,引入到數(shù)字門電路/PLD電路的加載狀態(tài)寄存器中。這樣,所述加載狀態(tài)寄存器可以寄存FPGA器件的加載狀態(tài),通過讀取該加載狀態(tài)寄存器,CPU可以得知FPGA器件的加載狀態(tài)。
加載控制寄存器CPU根據(jù)所讀取的加載狀態(tài)寄存器的值判斷加載狀態(tài),按照FPGA器件的加載時序要求將控制信號按BIT寫入該加載控制寄存器,該加載控制寄存器控制所連接的FPGA器件的加載控制線,將來自CPU的控制信號傳遞給FPGA器件,控制FPGA器件的加載。
加載數(shù)據(jù)寄存器控制器件在模擬出加載時序的時候,需要相配合地送出加載的網(wǎng)表數(shù)據(jù)。如圖4所示,加載控制器件的數(shù)據(jù)總線和FPGA器件的數(shù)據(jù)總線是掛接在一起的,因此,對加載控制器件的加載數(shù)據(jù)寄存器寫入加載數(shù)據(jù)的同時數(shù)據(jù)也被寫入了FPGA器件,實現(xiàn)網(wǎng)表的加載。
在加載控制器件中也可以沒有加載數(shù)據(jù)寄存器,但加載控制器件的數(shù)據(jù)總線和FPGA的數(shù)據(jù)總線仍是掛接在一起的,軟件操作的時候必須在連接著FPGA器件和加載控制器件的數(shù)據(jù)總線上傳送加載網(wǎng)表數(shù)據(jù),而且數(shù)據(jù)必須和控制寄存器上傳送的控制信號達到正確的加載狀態(tài)配合,實現(xiàn)加載。
利用上述的連接,F(xiàn)PGA器件的加載功能由一個器件實現(xiàn),當需要加載FPGA器件的時候就對該器件進行總線操作,避免使用其他的I/O控制,有效減輕了硬件設(shè)計負擔(dān),在使用多FPGA設(shè)計和單CPU設(shè)計的時候優(yōu)點尤為突出,并且有利于軟件的模塊劃分。
本發(fā)明提供了一種利用上述系統(tǒng)加載現(xiàn)場可編程門陣列器件的方法,包括(1)對所述加載控制器件進行信息定義;(2)模擬加載時序(3)所述控制器件以總線控制的方式控制所述加載控制器件,實現(xiàn)加載。
如圖6所示,在公共底層模塊的信息定義模塊中,為加載控制器件分配地址,并定義片選數(shù)據(jù)寬度信息,由于加載控制功能由CPU總線實現(xiàn),不再受特有的I/O控制,軟件不必關(guān)心器件的硬件連線,也不用關(guān)心使用的FPGA器件是那個廠家的器件,軟件屏蔽了FPGA的特性,只需按照不同F(xiàn)PGA器件的加載時序編寫這個器件的驅(qū)動程序,在底層的公共模塊中實現(xiàn)。因此,在公共底層模塊中,帶有加載時序模擬程序。針對特定的FPGA器件和所選的加載模式(并行/串行)按照CPU總線方式,模擬加載程序。在系統(tǒng)中相同類型的FPGA器件加載可以直接調(diào)用這個程序,具有良好的可移植性。在單板模塊中,按照驅(qū)動器件的方式直接驅(qū)動加載控制器件,實現(xiàn)FPGA器件的加載,這時對FPGA器件加載的操作,就和操作通用寄存器一樣,可以通過片選讀寫信號實現(xiàn)。另外,在公共底層模塊中實現(xiàn)的加載時序模擬程序也可在單板模塊中實現(xiàn)。在實現(xiàn)了FPGA器件的加載之后,處于系統(tǒng)模塊中的上層軟件就可以調(diào)用該FPGA器件進行工作了。
本發(fā)明具有以下的有益效果1.加載控制由控制器件(通常為CPU)總線完成,不需要額外的控制使能。
2.系統(tǒng)運用中,當FPGA器件數(shù)目遠遠大于控制器件(通常為CPU)數(shù)目時,按照系統(tǒng)總線結(jié)構(gòu)適當分組,可以實現(xiàn)少量控制器件(通常為CPU)加載多個FPGA功能的實現(xiàn),不受控制器件(通常為CPU)的I/O資源和系統(tǒng)總線寬度設(shè)計的影響。
3.在線加載FPGA器件的方式以總線的方式實現(xiàn),穩(wěn)定性和安全性得到很大的提高,并且可以針對加載數(shù)據(jù)的地址空間進行保護,實現(xiàn)邏輯的網(wǎng)表文件的保護。
4.實現(xiàn)了軟件的模塊化處理,針對FPGA器件只需編寫一次加載驅(qū)動,并且作為芯片驅(qū)動的處理方式,形成模塊化代碼,其他使用相同器件的單板軟件可以直接調(diào)用,并在使用相同器件的設(shè)計中這部分代碼可以直接移植,有效提高了軟件效率。
以上為說明的目的對本發(fā)明的優(yōu)選實施例進行了詳細的描述,但本領(lǐng)域的普通技術(shù)人員應(yīng)該意識到,在本發(fā)明的范圍和精神的情況下,各種改進、添加和替換都是可能的,并且都在本發(fā)明的權(quán)利要求所限定的保護范圍內(nèi)。
權(quán)利要求
1.一種加載現(xiàn)場可編程門陣列器件的系統(tǒng),包括控制器件和現(xiàn)場可編程門陣列器件,其特征在于,所述系統(tǒng)進一步包括加載控制器件,所述控制器件的數(shù)據(jù)總線同時和所述加載控制器件及所述現(xiàn)場可編程門陣列器件相連,所述控制器件的地址總線和控制總線和所述加載控制器件相連,所述加載控制器件同所述現(xiàn)場可編程門陣列的加載控制線和加載狀態(tài)線相連,所述控制器件可以通過總線操作控制所述加載控制器件,所述加載控制器件根據(jù)所述控制器件的控制信息控制所述現(xiàn)場可編程門陣列器件,以實現(xiàn)所述現(xiàn)場可編程門陣列器件的加載。
2.根據(jù)權(quán)利要求1所述的加載現(xiàn)場可編程門陣列器件的系統(tǒng),其特征在于,所述控制器件的控制總線和地址總線同時和所述現(xiàn)場可編程門陣列器件相連。
3.根據(jù)權(quán)利要求1所述的加載現(xiàn)場可編程門陣列器件的系統(tǒng),其特征在于,所述加載控制器件包括加載狀態(tài)寄存器,用于寄存所述現(xiàn)場可編程門陣列器件的加載狀態(tài)信息,所述控制器件通過讀取所述加載狀態(tài)寄存器,可以獲取所述現(xiàn)場可編程門陣列器件的加載狀態(tài);加載控制寄存器,用于根據(jù)所述控制器件的控制信息控制所述現(xiàn)場可編程門陣列器件的加載。
4.根據(jù)權(quán)利要求3所述的加載現(xiàn)場可編程門陣列器件的系統(tǒng),其特征在于,所述加載控制器件進一步包括加載數(shù)據(jù)寄存器,用于存放所述控制器件送出的網(wǎng)表數(shù)據(jù)。
5.根據(jù)權(quán)利要求1、2、3或4所述的加載現(xiàn)場可編程門陣列器件的系統(tǒng),其特征在于,所述控制器件是中央處理單元。
6.一種利用權(quán)利要求1所述的系統(tǒng)加載現(xiàn)場可編程門陣列器件的方法,包括(1)對所述加載控制器件進行信息定義;(2)模擬加載時序;(3)所述控制器件以總線控制的方式控制所述加載控制器件,實現(xiàn)加載。
7.根據(jù)權(quán)利要求6所述的加載現(xiàn)場可編程門陣列器件的方法,其特征在于,所述模擬加載時序在系統(tǒng)公共底層模塊中實現(xiàn)。
8.根據(jù)權(quán)利要求6所述的加載現(xiàn)場可編程門陣列器件的方法,其特征在于,所述模擬加載時序在單板模塊中實現(xiàn)。
9.根據(jù)權(quán)利要求6、7或8所述的加載現(xiàn)場可編程門陣列器件的方法,其特征在于,所述控制器件為中央處理單元。
全文摘要
本發(fā)明涉及一種加載FPGA器件的系統(tǒng)和方法,系統(tǒng)包括控制器件、FPGA器件及一加載控制器件,控制器件的數(shù)據(jù)總線、地址總線和控制總線同時和加載控制器件及FPGA器件相連,加載控制器件同F(xiàn)PGA器件的加載控制線和加載狀態(tài)線相連,控制器件可以通過總線操作控制所述加載控制器件,加載控制器件用來在所述控制器件和所述FPGA器件之間傳輸加載信號,以實現(xiàn)FPGA器件的加載。方法包括(1)對所述加載控制器件進行信息定義;(2)模擬加載時序(3)驅(qū)動加載控制器件,實現(xiàn)加載;加載時序的模擬可以在系統(tǒng)公共底層模塊中實現(xiàn)。本發(fā)明可簡化硬件設(shè)計,提高加載軟件的可移植性,能利用少量控制器件加載多個FPGA器件。
文檔編號H03K19/177GK1632767SQ20031012177
公開日2005年6月29日 申請日期2003年12月23日 優(yōu)先權(quán)日2003年12月23日
發(fā)明者高思龍, 鄧永軍, 謝濤 申請人:華為技術(shù)有限公司