潘吉華(貴州航天天馬機(jī)電科技有限公司,貴州遵義,563000)
對(duì)FPGA加載速度提升的方法研究
潘吉華
(貴州航天天馬機(jī)電科技有限公司,貴州遵義,563000)
由于當(dāng)前FPGA技術(shù)呈現(xiàn)出迅猛發(fā)展的態(tài)勢(shì),這也就會(huì)存在更多的繼承FPGA邏輯資源,相應(yīng)也就會(huì)存在更大的配置FPGA文件。從這就能夠了解到,在當(dāng)前科學(xué)技術(shù)背景下,相應(yīng)也就會(huì)存在更大的高端配置FPGA文件,相應(yīng)也會(huì)使得極大的增加加載FPGA時(shí)間,導(dǎo)致啟動(dòng)單板時(shí)間縮短,必須提升FPGA加載速度。本文在此背景下,通過(guò)對(duì)FPGA加載過(guò)程的分析,提到方法能夠?qū)PGA加載速度加快,另外憑借相應(yīng)工程實(shí)踐實(shí)施的證明,借助這一描述方法能夠做到縮減加載速度為優(yōu)化和之前的五分之一以下。
邏輯資源;FPGA技術(shù);加載速度
根據(jù)當(dāng)前相對(duì)來(lái)說(shuō)使用比較廣泛的Xilinx這種 FPGA芯片選擇的加載模式往往是Slave SelectMAP (parallel,x8) 配置模式,將這一過(guò)程具體化,這也就是憑借著相應(yīng)所具備的CPU當(dāng)中的GPIO模擬localbus總線,從而可以做到有效的讀寫(xiě)EPLD當(dāng)中的城鄉(xiāng)定義的寄存器,通常EPLD引腳上面映射部分寄存器的Bit,以便能夠讓這些引腳與相關(guān)FPGA配置引腳相連接,針對(duì)這樣的情況,這也就能夠憑借著CPU對(duì)EPLD的寄存器讀寫(xiě),從而可以將相關(guān)FPGA配置引腳進(jìn)行控制,使得滿足配置FPGA的目的。
根據(jù)對(duì)某個(gè)單板實(shí)施分析就能夠發(fā)現(xiàn),其中存在著多塊的FPGA芯片,憑借這種方法的使用加載一塊FPGA,往往從時(shí)間上必須達(dá)到三十秒左右的時(shí)間,那么如果是加載四塊FPGA的時(shí)間則累積達(dá)到兩分鐘以上,要想做到將加載速度提升,這就應(yīng)該做出一系列的分析討論,從而提出三個(gè)層次優(yōu)化。
根據(jù)對(duì)FPGA實(shí)施加載的EPLD寄存器實(shí)施控制主要存在著兩種類型,第一種類型是做好數(shù)據(jù)寄存器FPGA_CFGDATA_REG的配置,CPU能夠做到將這一寄存器當(dāng)中寫(xiě)入所有的配置數(shù)據(jù),立足于此基礎(chǔ),這一寄存器的數(shù)值則是在所有配置時(shí)鐘的上升寫(xiě)入FPGA。另外的一個(gè)寄存器則是做好寄存器FPGA_CFG_REG的控制配置,在這一寄存器當(dāng)中存在著五個(gè)Bits。那么在這一單板當(dāng)中,進(jìn)行FPGA配置數(shù)據(jù)時(shí)序的加載則為以下兩步:第一個(gè)步驟是通過(guò)CPU向FPGA_CFGDATA_REG寫(xiě)入配置數(shù)據(jù);第二個(gè)步驟則是憑借著三次讀寫(xiě)FPGA_CFG_REG,以便能夠做到讓FPGA_ CFGCLK從低到高再到底的順序?qū)嵤瑢?dǎo)致FPGA_CFGCLK面臨上升沿,這也就會(huì)導(dǎo)致相應(yīng)的配置數(shù)據(jù)在FPGA_CFGCLK的上升沿寫(xiě)入FPGA。。從這就能夠了解到,將一個(gè)配置數(shù)據(jù)寫(xiě)入到FPGA當(dāng)中,這就應(yīng)該讓CPU針對(duì)EPLD寄存器執(zhí)行三個(gè)讀操作與四個(gè)寫(xiě)操作,其中總共耗費(fèi)的時(shí)間大致是3018ns,型號(hào)XC6VLX240T的FPGA配置數(shù)據(jù)為9232444字節(jié),則加載一塊FPGA時(shí)間大約為3018ns*9232444=27.8s。在這里需要值得重點(diǎn)關(guān)注的問(wèn)題是,全部耗費(fèi)的時(shí)間數(shù)值則是出于仿真的環(huán)境下,憑借著TSC計(jì)數(shù)器進(jìn)行測(cè)量獲得,在進(jìn)行編譯代碼的過(guò)程當(dāng)中,選擇出的是03優(yōu)化。
根據(jù)以上所進(jìn)行的分析就能夠了解到,將一個(gè)配置數(shù)據(jù)寫(xiě)入到AFPGA,這必須借助于CPU對(duì)于EPLD寄存器執(zhí)行三個(gè)讀操作與四個(gè)寫(xiě)操作,在這一環(huán)節(jié)當(dāng)中,后面的三次寫(xiě)操作與三次讀操作知識(shí)為了產(chǎn)生一個(gè)配置時(shí)鐘的上升沿。黨在CPU將一個(gè)配置數(shù)據(jù)寫(xiě)入到EPLD的時(shí)候,EPLD可以自動(dòng)產(chǎn)生出一個(gè)周期的配置時(shí)鐘,那么一個(gè)配置數(shù)據(jù)價(jià)值只是需要CPU針對(duì)EPLD及尋求執(zhí)行一個(gè)寫(xiě)操作就可以了,這也就可以將加載FPGA的時(shí)間最大限度的縮短。根據(jù)這樣的思路,如果CPU寫(xiě)入一個(gè)數(shù)據(jù)到EPLD的時(shí)候,那么EPLD則是會(huì)做到一個(gè)配置時(shí)鐘的自動(dòng)產(chǎn)生。如果CPU寫(xiě)入數(shù)據(jù)到EPLD的時(shí)候,這也就會(huì)導(dǎo)致呈現(xiàn)一個(gè)WR的低脈沖,相應(yīng)的時(shí)鐘配置則是屬于一個(gè)高脈沖,除此之外,還處于WR低脈沖的基礎(chǔ)的后面,針對(duì)這樣的情況,那么就能夠考慮取反WR,另外還對(duì)其實(shí)施延時(shí)。根據(jù)對(duì)某單板進(jìn)行分析,這也就會(huì)存在著四塊FPGA,每個(gè)FPGA配置時(shí)鐘FPGA_CFGCLK和片選FPGA_CFGCS保持著獨(dú)立的狀態(tài),在進(jìn)行數(shù)據(jù)的配置過(guò)程當(dāng)中則會(huì)存在著八條數(shù)據(jù)線。要想在實(shí)際應(yīng)用環(huán)節(jié)當(dāng)中做到分開(kāi)四個(gè)FPGA_CFGCLK,在這里必須做到把WR取反另外延時(shí)之后的信號(hào)與CFGCS取反后的信號(hào)相與。憑借著現(xiàn)實(shí)環(huán)節(jié)當(dāng)中進(jìn)行的測(cè)試結(jié)果現(xiàn)實(shí),一個(gè)配置數(shù)據(jù)寫(xiě)入從時(shí)間上則是從3018ns縮短至633ns,加載XC6VLX240T型號(hào)的FPGA時(shí)的加載總時(shí)間則是從之前的27.8秒減少到5.85秒。
從XC6VLX240T型號(hào)的FPGA角度進(jìn)行分析就能夠發(fā)現(xiàn),那么所配置的數(shù)據(jù)字節(jié)數(shù)是9232444個(gè),CPU則是做到在EPLD的同一個(gè)寄存器當(dāng)中寫(xiě)入全部的配置數(shù)據(jù),也就是FPGA_CFGDATA_ REG。那么在進(jìn)行這一寄存器的寫(xiě)入的過(guò)程當(dāng)中,CPU往往是率先將這一寄存器的地址寫(xiě)入,基于此基礎(chǔ)隨后將數(shù)據(jù)進(jìn)行寫(xiě)入。通常來(lái)說(shuō),寄存器是存在著固定的地址,針對(duì)這樣的情況,我們能夠考慮只是在第一次寫(xiě)FPGA_CFGDATA_REG的過(guò)程當(dāng)中提供相應(yīng)的寄存器地址,EPLD寄存地址,隨后CPU在進(jìn)行這一寄存器的寫(xiě)入過(guò)程并不提供地址,只是在比較低的WR的過(guò)程當(dāng)中,將有效數(shù)據(jù)提供給EPLD就行。如果使用這一方式,那么一塊FPDA加載的時(shí)間是3.01秒,而一個(gè)配置數(shù)據(jù)加載的時(shí)間則是325ns。
根據(jù)對(duì)FPDA配置數(shù)據(jù)進(jìn)行觀察就能夠了解到,大量的連續(xù)值存在于數(shù)據(jù)當(dāng)中,比如連續(xù)1000個(gè)0x00。在這里則是將某一個(gè)單板下行FPDA當(dāng)成例子,處于050d這一版本之下,那么在下行FPDA代碼當(dāng)中的0x00的連續(xù)個(gè)數(shù)超過(guò)512的就有31處之多,最多一處為連續(xù)1215388個(gè)字節(jié)0x00;在某單板上,下行FPGA連通性測(cè)試代碼中,0x00連續(xù)個(gè)數(shù)超過(guò)512的也有271處之多,最多一處為2428942個(gè)字節(jié)0x00。根據(jù)這樣的i情況,我們能夠考慮通過(guò)CPU對(duì)某個(gè)數(shù)值連續(xù)個(gè)數(shù)進(jìn)行統(tǒng)計(jì),立足于此基礎(chǔ),向EPLD告訴這一數(shù)值與連續(xù)個(gè)數(shù),那么EPLD則存在著不變的配置數(shù)據(jù),那么隨后就會(huì)呈現(xiàn)N個(gè)配置時(shí)鐘,也就是將加載N個(gè)配置數(shù)據(jù)完成。憑借著以上所提到的方法優(yōu)化實(shí)施測(cè)試之后,那么下行FPDA加載的時(shí)間則是減少至0.75秒。
根據(jù)相應(yīng)的理論分析與實(shí)際測(cè)試,那么以上所提到的三個(gè)層次優(yōu)化方法顯得十分有效。通過(guò)對(duì)比以上的三種優(yōu)化方式,其特征為:
第一種方式能夠?qū)PU部分代碼進(jìn)行簡(jiǎn)化,僅僅只是做到把配置數(shù)據(jù)順序?qū)懭氲紼PLD配置數(shù)據(jù)寄存器,EPLD能夠增加自動(dòng)檢測(cè)WR,另外還會(huì)導(dǎo)致產(chǎn)生CCLK邏輯,相對(duì)來(lái)說(shuō),要想實(shí)現(xiàn)這一方式顯得比較簡(jiǎn)單,提升加載速度則是大致五倍。
第二種方式則是立足于第一章方式的基礎(chǔ)之上,稍微改動(dòng)CPU代碼,確保EPLD代碼不變,相對(duì)來(lái)說(shuō)實(shí)現(xiàn)這一方式也比較簡(jiǎn)單,可以進(jìn)一步提升加載速度大致是兩倍。
第三種方式比較大幅度的改動(dòng)CPU與EPLD代碼,除此之外,在進(jìn)行FPDA版本的制作過(guò)程當(dāng)中,應(yīng)該進(jìn)行相應(yīng)的處理,相對(duì)來(lái)說(shuō)實(shí)現(xiàn)這一方式比較復(fù)雜,能夠進(jìn)一步提升一倍至十五倍的加載速度。
[1]劉遠(yuǎn)華.極大規(guī)模集成電路測(cè)試技術(shù)發(fā)展[J].電子與封裝.2014(07)
[2]王高峰,趙文生.三維集成電路中的關(guān)鍵技術(shù)問(wèn)題綜述[J].杭州電子科技大學(xué)學(xué)報(bào).2014(02)
[3] 樊麗春,李群.模擬集成電路設(shè)計(jì)的自動(dòng)化綜合流程研究[J].科技資訊.2013(07)
Study on the method of loading speed of FPGA
Pan Jihua
(Guizhou Aerospace Tianma Electromechanical Technology Co.Ltd.Guizhou Zunyi 563000)
Due to the current FPGA technology showing a rapid development trend,it will also exist more inherited FPGA logical resources,accordingly there will be a larger configuration FPGA file.From this can be learned,under the background of the current science and technology,there will be more high-end FPGA configuration file,the corresponding will also make great FPGA loading time increases,resulting in start single board time relationship,it is necessary to improve the loading speed of FPGA.Under this background,this paper,through on FPGA loading process analysis,mentioned method can to accelerate FPGA loading speed,also with the corresponding engineering practice implementation of proof,with the aid of this method can do reduce the load speed optimization and before a fifth of the following.
logical resources;FPGA technology;loading speed