專利名稱:一種現(xiàn)場(chǎng)可編程門(mén)陣列在線配置的裝置的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型涉及一種現(xiàn)場(chǎng)可編程門(mén)陣列在線配置的裝置,可在uclinux操作 系統(tǒng)環(huán)境下實(shí)現(xiàn)現(xiàn)場(chǎng)可編程門(mén)陣列的在線配置,屬于電通信技術(shù)領(lǐng)域。
背景技術(shù):
現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)技術(shù)是目前應(yīng)用極其廣泛的一種技術(shù)。它具有 可編程性,能夠重復(fù)定義和反復(fù)改寫(xiě)片內(nèi)邏輯??梢酝ㄟ^(guò)單個(gè)器件滿足多種系 統(tǒng)設(shè)計(jì)的需求,能夠使電子設(shè)計(jì)工程師實(shí)現(xiàn)現(xiàn)場(chǎng)設(shè)計(jì),現(xiàn)場(chǎng)編程,現(xiàn)場(chǎng)修改, 現(xiàn)場(chǎng)仿真驗(yàn)證等。避免了傳統(tǒng)硬件設(shè)計(jì)的周期長(zhǎng),調(diào)試過(guò)程繁瑣等缺點(diǎn),降低 了開(kāi)發(fā)成本,也增加了產(chǎn)品開(kāi)發(fā)的靈活性。
FPGA在配置方面通常的應(yīng)用模式是上電時(shí)利用專用的EPROM器件對(duì) FPGA進(jìn)行配置。此種配置模式中使用的EPROM器件為一次性使用產(chǎn)品,F(xiàn)PGA 內(nèi)的邏輯每次重新改寫(xiě)后都要重新更換該片EPROM。這樣反復(fù)改寫(xiě)必然會(huì)增 加產(chǎn)品后期深入開(kāi)發(fā)與維護(hù)的成本。為了避免這個(gè)問(wèn)題,在現(xiàn)場(chǎng)可編程門(mén)陣列 的技術(shù)開(kāi)發(fā)中越來(lái)越多的使用了由CPU控制FPGA進(jìn)行配置的解決方案。目前 這種配置方案在由單板機(jī)構(gòu)成的單任務(wù)系統(tǒng)產(chǎn)品中及一些應(yīng)用商用操作系統(tǒng)的 產(chǎn)品上都有實(shí)現(xiàn)。二者的實(shí)現(xiàn)方法基本相同,單任務(wù)系統(tǒng)及商用操作系統(tǒng)上的 應(yīng)用程序直接控制產(chǎn)品底層硬件來(lái)完成FPGA的配置過(guò)程。但是單任務(wù)系統(tǒng)由 于其功能太簡(jiǎn)單,已不適用于我們產(chǎn)品目前的功能需求。而商用的操作系統(tǒng), 雖然功能上滿足了,但其高昂的使用費(fèi)用會(huì)大大降低產(chǎn)品的性價(jià)比。目前較為 流行的嵌入式操作系統(tǒng)還有開(kāi)放源代碼的Linux操作系統(tǒng),它強(qiáng)大的功能及免200620048730.X
說(shuō)明書(shū)第2/6頁(yè)
費(fèi)使用的特點(diǎn)受到了越來(lái)越多的開(kāi)發(fā)者的青睞。目前的產(chǎn)品中就選擇了 ucLinux 操作系統(tǒng)作為開(kāi)發(fā)平臺(tái),即跟蹤了主流技術(shù)也歸避了商業(yè)操作系統(tǒng)高額的使用 費(fèi)用,提升了產(chǎn)品的性價(jià)比。不過(guò)在該平臺(tái)下FPGA的配置方法國(guó)內(nèi)的研究還 很少,有國(guó)外研發(fā)人員對(duì)FPGA的配置方案進(jìn)行了研究,他們提出一種可動(dòng)態(tài) 配置的方案ucLinux從遠(yuǎn)程服務(wù)器上下載FPGA配置數(shù)據(jù),然后利用shell腳 本工具將代碼配置進(jìn)FPGA芯片,實(shí)現(xiàn)系統(tǒng)功能的可動(dòng)態(tài)擴(kuò)展,稱為可動(dòng)態(tài)配 置的片上系統(tǒng)(rSoC)。這種方案與上面描述過(guò)的配置方案相比有兩個(gè)優(yōu)點(diǎn)一 是ucLinux操作系統(tǒng)本身強(qiáng)大的功能和免費(fèi)的特性提升了產(chǎn)品本身的競(jìng)爭(zhēng)力; 二是ucLirmx系統(tǒng)中程序開(kāi)發(fā)的層次性,使得在程序開(kāi)發(fā)的過(guò)程中結(jié)構(gòu)劃分更 清晰,底層代碼開(kāi)發(fā)人員將硬件封裝好,提供上層應(yīng)用程序一個(gè)標(biāo)準(zhǔn)的接口, 上層開(kāi)發(fā)人員可以無(wú)須關(guān)心底層設(shè)備的狀態(tài),上層應(yīng)用程序的開(kāi)發(fā)可以很好的 做到"設(shè)備無(wú)關(guān)性"。雖然有優(yōu)點(diǎn),但這種配置思路也有一種弊端FPGA的配 置數(shù)據(jù)存放在遠(yuǎn)程服務(wù)器上,一旦沒(méi)有了遠(yuǎn)程服務(wù)器或是二者的通訊出現(xiàn)問(wèn)題, FPGA的配置也就無(wú)法完成。
發(fā)明內(nèi)容
本實(shí)用新型的目的是提供一種在ucLinux操作系統(tǒng)下獨(dú)立完成CPU控制 FPGA配置的現(xiàn)場(chǎng)可編程門(mén)陣列在線配置的裝置。
為實(shí)現(xiàn)以上目的,本實(shí)用新型的技術(shù)方案是提供一種現(xiàn)場(chǎng)可編程門(mén)陣列在 線配置的裝置,其特征在于,由中央處理,ARM7、程序/數(shù)據(jù)存儲(chǔ)和運(yùn)行單元、 現(xiàn)場(chǎng)可編程門(mén)陣列FPGA模塊及監(jiān)測(cè)電路組成,中央處理器ARM7即CPU芯 片的通用I/O管腳與現(xiàn)場(chǎng)可編程門(mén)陣列FPGA的專用配置總線相連,中央處理 器ARM7同時(shí)與程序/數(shù)據(jù)存儲(chǔ)和運(yùn)行單元、及監(jiān)測(cè)電路連接。
本實(shí)用新型將現(xiàn)場(chǎng)可編程門(mén)陣列FPGA的配置文件存放在ucLinux系統(tǒng)的
4
romfs文件系統(tǒng)中,固化在本裝置中的程序/數(shù)據(jù)存儲(chǔ)芯片(FLASH)中,本裝 置上電后ucLinux系統(tǒng)啟動(dòng)運(yùn)行,然后操作系統(tǒng)上的應(yīng)用程序讀取配置文件, 并通過(guò)調(diào)用底層驅(qū)動(dòng)程序?qū)⒃撆渲梦募渲玫紽PGA中。
本實(shí)用新型的硬件設(shè)計(jì)如下中央處理器ARM7即CPU芯片的通用I/O管 腳與現(xiàn)場(chǎng)可編程門(mén)陣列FPGA的專用配置總線相連,同時(shí)中央處理器ARM7的 數(shù)據(jù)總線和地址總線分別與系統(tǒng)的程序/數(shù)據(jù)存儲(chǔ)和運(yùn)行單元相連。另外利用中 央處理器ARM7的通用I/O管腳設(shè)計(jì)了一個(gè)監(jiān)測(cè)電路,來(lái)獲知FPGA配置過(guò)程 的執(zhí)行狀態(tài)。配置流程由軟件控制來(lái)實(shí)現(xiàn)。
本實(shí)用新型的優(yōu)點(diǎn)在于電路簡(jiǎn)單 一個(gè)最小系統(tǒng)通過(guò)CPU芯片的通用I/O 口與FPGA的專用配置總線相連,構(gòu)成了最基本的支持在ucliiiux操作系統(tǒng)中實(shí) 現(xiàn)現(xiàn)場(chǎng)可編程門(mén)陣列在線配置的電路。
圖1為現(xiàn)場(chǎng)可編程門(mén)陣列在線配置裝置結(jié)構(gòu)框圖2為中央處理器ARM7及其外圍電路原理圖3為程序/數(shù)據(jù)存儲(chǔ)和運(yùn)行單元電路原理圖4為現(xiàn)場(chǎng)可編程門(mén)陣列FPGA模塊及其外圍電路原理圖5為應(yīng)用程序、驅(qū)動(dòng)程序和FPGA配置文件之間調(diào)用關(guān)系圖6為中央處理器ARM7控制現(xiàn)場(chǎng)可編程門(mén)陣列FPGA配置的流程圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)采用本實(shí)用新型在uclinux操作系統(tǒng)環(huán)境下實(shí)現(xiàn)現(xiàn)場(chǎng)可編 程門(mén)陣列在線配置的實(shí)施例作進(jìn)一步詳細(xì)描述,但本實(shí)施例并不用于限制本發(fā) 明,凡是采用本實(shí)用新型的相似結(jié)構(gòu)、相似方法及其相似變化,均應(yīng)列入本實(shí) 用新型的保護(hù)范圍。
實(shí)施例
如圖1所示,為現(xiàn)場(chǎng)可編程門(mén)陣列在線配置裝置結(jié)構(gòu)框圖,所述的一種現(xiàn) 場(chǎng)可編程門(mén)陣列在線配置的裝置由中央處理器ARM7、程序/數(shù)據(jù)存儲(chǔ)和運(yùn)行單 元、現(xiàn)場(chǎng)可編程門(mén)陣列FPGA模塊及監(jiān)測(cè)電路組成,中央處理器ARM7即CPU 芯片的通用I/O管腳與現(xiàn)場(chǎng)可編程門(mén)陣列FPGA的專用配置總線相連,中央處 理器ARM7同時(shí)與程序/數(shù)據(jù)存儲(chǔ)和運(yùn)行單元、及監(jiān)測(cè)電路連接。
其中ucLinux操作系統(tǒng)運(yùn)行在中央處理器ARM7上,F(xiàn)PGA的配置文件存 放在程序存儲(chǔ)單元(FLASH)中,配制文件為二進(jìn)制格式文件,可由FPGA的 工具軟件生成,本裝置上電后,ucLinux操作系統(tǒng)在程序運(yùn)行單元(DRAM)中 運(yùn)行后,應(yīng)用程序讀取配置文件,通過(guò)調(diào)用底層驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn)對(duì)底層硬件的 操作,從而將配置文件配置到FPGA單元中,配置過(guò)程的執(zhí)行狀態(tài)由監(jiān)測(cè)電路 反映出來(lái)。
如圖2所示,為中央處理器ARM7及其外圍電路原理圖,ARM7架構(gòu)的嵌 入式處理器芯片D201的通用I/O管腳ArmPD0 ArmPD4 口連接FPGA模塊的 專用配置管腳,ArmPD5用來(lái)連接LED燈構(gòu)成一個(gè)監(jiān)測(cè)電路,電源轉(zhuǎn)換芯片 D202連接嵌入式處理器芯片D201提供2.5V的內(nèi)核電源。復(fù)位控制芯片D203 連接嵌入式處理器芯片D201完成電源監(jiān)控和系統(tǒng)控制的復(fù)位功能。
如圖3所示,為程序/數(shù)據(jù)存儲(chǔ)和運(yùn)行單元電路原理圖,所述的程序/數(shù)據(jù)存 儲(chǔ)和運(yùn)行單元由容量為128Mbit的FLASH存儲(chǔ)器D301、容量為256Mbit的 DRAM存儲(chǔ)器D302組成嵌入式程序和數(shù)據(jù)存儲(chǔ)電路,存儲(chǔ)電路的數(shù)據(jù)總線、 地址總線、控制總線與嵌入式數(shù)據(jù)處理單元ARM7的數(shù)據(jù)總線、地址總線、控 制總線連接。
如圖4所示,為現(xiàn)場(chǎng)可編程門(mén)陣列FPGA模塊及其外圍電路原理圖,可編 程邏輯單元芯片D401的配置按照FPGA的無(wú)源串行數(shù)據(jù)流(PS)的配置方式
進(jìn)行,這種方式只需要占用CPU的5根口線,而且誤操作幾率小,可靠性高, 其中DATA0為串行數(shù)據(jù)輸入線,它接到I/O 口線ArmPD4上;DCLK為配置 數(shù)據(jù)提供時(shí)鐘,它接到I/O 口線ArmPD3上,nSTATUS為配置狀態(tài)下FPGA 的狀態(tài)輸出位,在配置過(guò)程中如果出錯(cuò),它會(huì)變?yōu)榈碗娖?,它連接到I/O 口線 ArmPD2上;CONFIG_DONE也為配置的狀態(tài)輸出位,當(dāng)所有數(shù)據(jù)都配置完 畢后,它會(huì)變成高電平,它接到I/O 口線ArmPDl上;nCONFIG為FPGA的配 置控制輸入端,通過(guò)它來(lái)啟動(dòng)FPGA的配置,它連接到I/0口線ArmPD0。本 裝置的設(shè)計(jì)兼容了電纜下載配置的方式,P301為FPGA的電纜下載插座,供 FPGA模塊調(diào)試過(guò)程中選擇使用。
如圖5所示,為本裝置中的應(yīng)用程序、驅(qū)動(dòng)程序和FPGA配置文件之間調(diào) 用關(guān)系圖,用戶程序讀取FPGA的配置文件,通過(guò)系統(tǒng)調(diào)用接口來(lái)調(diào)用驅(qū)動(dòng)程 序,通過(guò)驅(qū)動(dòng)程序執(zhí)行各種配置命令將配置文件配置到FPGA中。用戶程序本 身并不直接訪問(wèn)硬件,驅(qū)動(dòng)程序負(fù)責(zé)和底層硬件打交道,由它來(lái)控制硬件完成 所有的操作,包括對(duì)硬件狀態(tài)的讀取也是由驅(qū)動(dòng)程序來(lái)完成。
如圖6所示,為本裝置中的中央處理器ARM7控制FPGA配置的流程圖, 現(xiàn)場(chǎng)可編程門(mén)陣列FPGA采用串行數(shù)據(jù)流配置方式,本實(shí)用新型上電后,處理 器首先執(zhí)行初始化程序,對(duì)中央處理器的各個(gè)寄存器進(jìn)行設(shè)置,使處理器可按 照設(shè)計(jì)要求正常工作,然后應(yīng)用程序啟動(dòng)配置流程首先將nCONFIG和DCLK 控制線置為低電平,nCONFIG作為配置控制輸入線,它被置為低電平將使現(xiàn)場(chǎng) 可編程門(mén)陣列FPGA復(fù)位,現(xiàn)場(chǎng)可編程門(mén)陣列FPGA復(fù)位將導(dǎo)致nSTATUS狀 態(tài)輸出為低電平,并在100ms內(nèi)釋放使它恢復(fù)高電平,這時(shí)程序要在100ms內(nèi) 檢測(cè)nSTATUS輸出是否為低電平。如果為低,則FPGA復(fù)位成功。否則監(jiān)測(cè) 電路的燈會(huì)常亮報(bào)錯(cuò),程序就要重啟配置流程,重新配置?,F(xiàn)場(chǎng)可編程門(mén)陣列 FPGA復(fù)位成功再置nCONFIG為高電平,在nCONFIG由低到高的跳變過(guò)程
現(xiàn)場(chǎng)可編程門(mén)陣列FPGA內(nèi)部啟動(dòng)配置模式,接著開(kāi)始向DATA0數(shù)據(jù)線上放 置配置數(shù)據(jù),并通過(guò)DCLK線為該數(shù)據(jù)提供時(shí)鐘。每送1個(gè)bit的數(shù)據(jù)后都要 重新檢測(cè)nSTATUS的狀態(tài),如果它變?yōu)榈碗娖絼t表示數(shù)據(jù)配置出錯(cuò),監(jiān)測(cè)電路 的燈會(huì)常亮報(bào)錯(cuò),程序就要重啟配置流程,重新配置。如果沒(méi)有出錯(cuò)則繼續(xù)送 下去直到所有的配置數(shù)據(jù)都配置完畢。當(dāng)所有配置數(shù)據(jù)無(wú)誤差配置完成后 CONFIG一DONE狀態(tài)線輸出應(yīng)該為高電平。此時(shí)檢測(cè)CONFIG—DONE輸出為 高電平則表示配置成功,否則監(jiān)測(cè)電路的燈會(huì)常亮報(bào)錯(cuò),程序就要重啟配置流 程,重新配置。配置成功后監(jiān)測(cè)電路會(huì)閃爍一下,告訴操作者配置成功。此后 還要給DCLK時(shí)鐘線送10個(gè)周期的時(shí)鐘,使配置好的現(xiàn)場(chǎng)可編程門(mén)陣列FPGA 完成初始化,以便從配置狀態(tài)進(jìn)入到用戶狀態(tài),此時(shí)現(xiàn)場(chǎng)可編程門(mén)陣列FPGA 進(jìn)入到了正常的工作狀態(tài),整個(gè)配置流程也全部完成。
權(quán)利要求1.一種現(xiàn)場(chǎng)可編程門(mén)陣列在線配置的裝置,其特征在于,由中央處理器ARM7、程序/數(shù)據(jù)存儲(chǔ)和運(yùn)行單元、現(xiàn)場(chǎng)可編程門(mén)陣列FPGA模塊及監(jiān)測(cè)電路組成,中央處理器ARM7即CPU芯片的通用I/O管腳與現(xiàn)場(chǎng)可編程門(mén)陣列FPGA的專用配置總線相連,中央處理器ARM7同時(shí)與程序/數(shù)據(jù)存儲(chǔ)和運(yùn)行單元、及監(jiān)測(cè)電路連接。
2. 根據(jù)權(quán)利要求1所述的一種現(xiàn)場(chǎng)可編程門(mén)陣列在線配置的裝置,其特征在 于,所述的中央處理器ARM7架構(gòu)的嵌入式處理器芯片D201的通用I/O管 腳ArmPD0 ArmPD4 口連接現(xiàn)場(chǎng)可編程門(mén)陣列FPGA模塊,ArmPD5連接 LED燈構(gòu)成一個(gè)監(jiān)測(cè)電路,電源轉(zhuǎn)換芯片D202和復(fù)位控制芯片D203分別 連接嵌入式處理器芯片D201。
3. 根據(jù)權(quán)利要求1所述的一種現(xiàn)場(chǎng)可編程門(mén)陣列在線配置的裝置,其特征在 于,所述的程序/數(shù)據(jù)存儲(chǔ)和運(yùn)行單元由容量為128Mbit的FLASH存儲(chǔ)器 D301、 256Mbit的DRAM存儲(chǔ)器D302組成,存儲(chǔ)電路的數(shù)據(jù)總線、地址 總線、控制總線與嵌入式數(shù)據(jù)處理單元ARM7的數(shù)據(jù)總線、地址總線、控 制總線連接。
4. 根據(jù)權(quán)利要求1所述的一種現(xiàn)場(chǎng)可編程門(mén)陣列在線配置的裝置,其特征在 于,所述的現(xiàn)場(chǎng)可編程門(mén)陣列FPGA模塊的可編程邏輯單元芯片D401為 FPGA的無(wú)源串行數(shù)據(jù)流的配置,其中串行數(shù)據(jù)輸入線DATAO通用I/O管 腳ArmPD4連接,DCLK接到I/O 口線ArmPD3上,nSTATUS連接到I/O 口線ArmPD2上;CONFIG—DONE接到I/O 口線ArmPDl上;nCONFIG 連接到I/0 口線ArmPD0。
專利摘要本實(shí)用新型涉及一種現(xiàn)場(chǎng)可編程門(mén)陣列在線配置的裝置,其特征在于,由中央處理器ARM7、程序/數(shù)據(jù)存儲(chǔ)和運(yùn)行單元、現(xiàn)場(chǎng)可編程門(mén)陣列FPGA模塊及監(jiān)測(cè)電路組成,中央處理器ARM7即CPU芯片的通用I/O管腳與現(xiàn)場(chǎng)可編程門(mén)陣列FPGA的專用配置總線相連,中央處理器ARM7同時(shí)與程序/數(shù)據(jù)存儲(chǔ)和運(yùn)行單元、及監(jiān)測(cè)電路連接。本實(shí)用新型的優(yōu)點(diǎn)在于電路簡(jiǎn)單一個(gè)最小系統(tǒng)通過(guò)CPU芯片的通用I/O口與FPGA的專用配置總線相連,構(gòu)成了最基本的支持在uclinux操作系統(tǒng)中實(shí)現(xiàn)現(xiàn)場(chǎng)可編程門(mén)陣列在線配置的電路。
文檔編號(hào)G06F15/78GK201000625SQ200620048730
公開(kāi)日2008年1月2日 申請(qǐng)日期2006年12月8日 優(yōu)先權(quán)日2006年12月8日
發(fā)明者侃 梁, 田蘇娟, 郭展鵬, 金少舫 申請(qǐng)人:上海欣泰通信技術(shù)有限公司