一種FPGA實現(xiàn)的高速緩存設計_第1頁
一種FPGA實現(xiàn)的高速緩存設計_第2頁
一種FPGA實現(xiàn)的高速緩存設計_第3頁
一種FPGA實現(xiàn)的高速緩存設計_第4頁
一種FPGA實現(xiàn)的高速緩存設計_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、【W(wǎng)ord版本下載可任意編輯】 一種FPGA實現(xiàn)的高速緩存設計 引言 隨著雷達、通信和圖像處理中數(shù)字處理技術的飛速發(fā)展,現(xiàn)代化生產(chǎn)和科學研究對數(shù)據(jù)采集系統(tǒng)的要求更加嚴格。在嵌入式條件下,要求數(shù)據(jù)獲取的速度越來越快,精度越來越高,以致數(shù)據(jù)量及處理速度要求大增,高速ADC的出現(xiàn)和DSP性能的不斷提高也對系統(tǒng)將來的升級提出了更*求,特別在一些特殊領域,如航空、航天等,其嵌入式系統(tǒng)體積小、功能強、實時性高,為了防止數(shù)據(jù)處理不及時,發(fā)生數(shù)據(jù)丟失,破壞系統(tǒng)可靠性,更要進一步提高系統(tǒng)實時性,必須研究開發(fā)高速嵌入式數(shù)據(jù)采集系統(tǒng)。 針對具體的任務要求,文中提出了一種通過FPGA 實現(xiàn)轉(zhuǎn)換接口的高速數(shù)據(jù)采集系統(tǒng)的

2、系統(tǒng)構(gòu)造,即高速A/D+大容量FPGA+高速DSP的嵌入式高速數(shù)據(jù)采集系統(tǒng)。模數(shù)轉(zhuǎn)換器A/D開展高速數(shù)據(jù)采集,F(xiàn)PGA實現(xiàn)對高速A/D 采集數(shù)據(jù)的存儲和控制調(diào)度,DSP 通過查詢方式訪問前端采集通道,對采集的數(shù)據(jù)開展高速處理,這種方法大大提高了DSP 可以訪問的外設數(shù)目,提高了DSP的處理能力,同時由于DSP 不直接與模數(shù)轉(zhuǎn)換芯片接口,所以ADC 芯片的升級或者替代都不會影響原來的數(shù)據(jù)采集,而且采用了時分復用方式讀取轉(zhuǎn)換完成的數(shù)據(jù),因此這個系統(tǒng)數(shù)據(jù)采集速率可以到達所采用的ADC 芯片輸出的速率,能充分發(fā)揮DSP 算法處理功能強大、速度快的優(yōu)勢,而FPGA 設計靈活、通用性強等特點,使得整個系統(tǒng)

3、具有實時性高、體積小、開發(fā)周期短、易于維護和擴展、適合于實時信號處理等多個優(yōu)點。文中結(jié)合成功開發(fā)的高速采集系統(tǒng)構(gòu)造,提出一種基于FPGA實現(xiàn)的FIFO構(gòu)來實現(xiàn)高速緩存,它可以成倍提高數(shù)據(jù)流通速率,增加嵌入式系統(tǒng)的實時性。 高速數(shù)據(jù)采集系統(tǒng)構(gòu)造 實時信號處理系統(tǒng)中,高層處理算法的特點是所處理的數(shù)據(jù)量較低層算法少,但算法的控制構(gòu)造復雜,適于用運算速度高、尋址方式靈活、通信機制強大的DSP芯片來實現(xiàn)。特別是TI 公司的C6000 系列DSP,其峰值處理速度已達每秒數(shù)十億條指令,是當今的DSP之一,非常適合于嵌入式實時系統(tǒng)應用。低層的信號預處理算法處理的數(shù)據(jù)量大、計算量大、對處理速度的要求高,但運算構(gòu)

4、造相比照較簡單,適于用FPGA來開展硬件實現(xiàn),這樣能同時兼顧速度及靈活性。目前FPGA的容量已經(jīng)跨過了百萬門級,使得FPGA成為解決系統(tǒng)級設計的重要選擇方案之一。它主要應用于協(xié)處理器,輔助DSP芯片完成一些計算密集型的算法。 在筆者設計的高速信息處理計算機中,高速ADC模塊、FPGA 模塊以及DSP 模塊構(gòu)成了高速數(shù)據(jù)采集系統(tǒng),從此構(gòu)造中可以看到,DSP可以在未知ADC 控制方式的情況下,定時地訪問外設來獲得模數(shù)轉(zhuǎn)換后的數(shù)據(jù),而大容量的FPGA協(xié)助DSP完成數(shù)據(jù)的預處理,并可以保證采集數(shù)據(jù)不丟失。 其中ADC是一個12位精度、65MHz采樣速率的高速模數(shù)轉(zhuǎn)換器,可開展高速采樣,處理器選用TI公

5、司的TMS320C6701 。DSP 內(nèi)部時鐘頻率可以到達167MHz,DSP讀取外部SDRAM 的時鐘頻率是1/2CPU ,而讀取外部異步存儲器的時鐘頻率可以通過CE 空間控制存放器來編程控制,其參數(shù)需要滿足一定要求,即CLK(Setup+Strobe+Hold)2個時鐘周期,時鐘頻率可達80MHz。如果DSP 不通過緩存直接與A/D相連,在采樣過程中,若A/D連續(xù)采樣數(shù)據(jù),DSP一直處于連續(xù)的間隔取數(shù)的狀態(tài),這將占用DSP 大部分處理時間,導致DSP 不能從事其他工作。也有可能出現(xiàn)上的數(shù)據(jù)還沒有被計算機處理完,下采集過程就開始的情況。如果選取更高速的A/D ,更會發(fā)生數(shù)據(jù)丟失,破壞系統(tǒng)的可

6、靠性。因此的做法是采用高速緩存來存儲采樣到的數(shù)據(jù),再集中傳輸一批數(shù)據(jù),保證DSP有充足的時間去處理、計算。 系統(tǒng)中采用容量比較大的FPGA,利用自主設計的IP核,主要協(xié)助主處理器實現(xiàn)數(shù)據(jù)的預處理(如FFT) 功能。為了保證設計的硬件系統(tǒng)體積盡可能小,因此在不增加系統(tǒng)的硬件負擔的前提條件下,利用系統(tǒng)中現(xiàn)有的FPGA,設計了基于FPGA 實現(xiàn)的異步FIFO 存儲器作為高速緩存器,它滿足前后讀寫時鐘頻率不同的硬件環(huán)境,可使采集系統(tǒng)設計靈活、簡單、方便,具有很強的可擴展性。FIFO 存儲器具有兩個特點:數(shù)據(jù)進出有序;輸出輸入口獨立。靈活使用FIFO ,可根據(jù)需要設計為不同速率、不同容量的數(shù)字系統(tǒng),接口

7、電路簡潔且不占用系統(tǒng)地址資源,系統(tǒng)移植或升級換代方便,而且控制簡單。 基于FPGA 實現(xiàn)的異步FIFO 的設計 FIFO構(gòu)造設計 設計一個異步FIFO ,讀寫使能由不同的時鐘激勵來控制輸入數(shù)據(jù)和輸出數(shù)據(jù),空/滿標志來防止數(shù)據(jù)的上溢和下溢,以及“半滿”狀態(tài)標志,在字寬和容量深度兩方面都可以擴展。讀寫操作自動訪問存儲空間連續(xù)的存儲單元,讀出的數(shù)據(jù)和寫入的數(shù)據(jù)順序相同,不需要額外的地址信息。首先,由復位信號清空存儲器數(shù)據(jù);然后,在寫使能和寫時鐘控制下向存儲器中寫數(shù)據(jù),當FIFO寫半滿,half-full將有效(同步于寫時鐘) ,觸發(fā)C6701中斷,C6701中斷服務程序通過DMA將FIFO中的數(shù)據(jù)取

8、走并寫入C6701片內(nèi)數(shù)據(jù)存儲器或SDRAM中去,F(xiàn)IFO中的數(shù)據(jù)空間存滿后,full信號有效,外部設備就不再向FIFO中寫數(shù)據(jù)了;同理,在讀時鐘和讀使能控制下從存儲器中讀數(shù)據(jù)時,若FIFO中的數(shù)據(jù)被外部設備取空了,則empty 信號有效,外部設備停止對FIFO的讀取。 本系統(tǒng)數(shù)據(jù)寬度根據(jù)需要,兩個端口可以設計為兩端是12位、16位、32位。 一般常用的FIFO設計,都是兩端數(shù)據(jù)寬度相同的FIFO 構(gòu)造。這很容易在XILINX公司提供的IP核中找到,或者用行為級語言描述得到。 但是,在筆者設計的硬件平臺下,這些設計有局限性,分析如下: 因為TI公司的DSP C6701的EMIF支持32bit寬

9、度的ASRAM,SDRAM和SBSRAM等存儲器,只有CE1空間支持16bit和8bit的ROM接口,本系統(tǒng)設計的FPGA是CE2和CE3空間尋址,物理接口是32bit。那么如果FIFO讀寫端口設計為12位,DSP接收的32位數(shù)據(jù)僅低12 位有效,而高20位是無效數(shù)據(jù),一方面,這將大大降低DSP 讀取數(shù)據(jù)的吞吐率,另一方面由于需要處理無效數(shù)據(jù)而降低系統(tǒng)的實時性。 為了改良系統(tǒng)的性能,提高系統(tǒng)的實時性,可以采取兩個措施:一是設計整字節(jié)寬度的FIFO端口,基于前端A/D的要求,的數(shù)據(jù)寬度是16位;二是設計寬位數(shù)端口的FIFO,提高數(shù)據(jù)的吞吐率,基于后端DSP的要求,的數(shù)據(jù)寬度是32位。由于C670

10、1可以對數(shù)據(jù)存儲器開展8bit/16bit/32bit的數(shù)據(jù)訪問,數(shù)據(jù)從FIFO中讀取數(shù)據(jù)到DSP 的數(shù)據(jù)存儲器后,可以根據(jù)需要決定是按字節(jié)、字、還是雙字處理。 針對筆者的硬件系統(tǒng),提出了一種基于FPGA的新型FIFO構(gòu)造,輸入數(shù)據(jù)寬度與輸出數(shù)據(jù)寬度不同,即輸入為16位、輸出為32位的異步FIFO。分析系統(tǒng)的數(shù)據(jù)吞吐率:由于A/D數(shù)據(jù)輸入口的速度固定,數(shù)據(jù)按采樣頻率輸入FIFO ,因此輸入數(shù)據(jù)的時間是不變的,而C6701訪問可以取走兩個有效數(shù)據(jù),在相同數(shù)據(jù)量的條件下明顯降低數(shù)據(jù)讀取時間,大大增加了DSP讀取數(shù)據(jù)的吞吐率,提高系統(tǒng)實時處理時間。 如果輸入數(shù)據(jù)的高4 位不接地,則傳給DSP的數(shù)據(jù)高

11、4位是任意值,所以取完數(shù)后要將取得的數(shù)開展預處理,這將降低DSP 的實時處理時間。因此在設計硬件電路時將FIFO的datain(15:12) 硬件置0,防止了DSP的軟件復位,省去DSP對數(shù)據(jù)的預處理過程,從而提高了DSP的實時處理能力。 筆者設計的FIFO是利用兩個16位RAM并行連接,輸入數(shù)據(jù)在寫控制模塊的調(diào)度下依次寫入兩個RAM中,兩個RAM的輸出經(jīng)過緩存器直接與DSP相應數(shù)據(jù)線相連,保證了32位的數(shù)據(jù)寬度,內(nèi)部實現(xiàn)如圖3所示,其中的寫控制邏輯實現(xiàn) 。其中寫控制邏輯分別產(chǎn)生兩個片選信號實現(xiàn)對兩個存儲器交替按字(16bit) 開展寫,讀控制邏輯對兩個存儲器按雙字(32bit) 同時讀,可以

12、實現(xiàn)兩端讀寫數(shù)據(jù)寬度的不同。 地址產(chǎn)生邏輯 ,讀寫地址產(chǎn)生利用相同的地址產(chǎn)生邏輯,在不同的時鐘和使能信號控制下實現(xiàn)地址的增加。寫地址產(chǎn)生器用CE1 作為允許增控制信號,讀地址產(chǎn)生器用rd - en 作為允許增控制信號來實現(xiàn)地址的產(chǎn)生。 異步FIFO的FPGA實現(xiàn) 由于FIFO是一種RAM的構(gòu)造,在大多數(shù)參考資料中對RAM 的描述都是建立在數(shù)組存取的根底上的。在大多數(shù)EDA軟件中,對VHDL硬件描述語言的編譯都是通過綜合器來完成的,綜合器將VHDL轉(zhuǎn)變成物理可形成的電路格式。然而遺憾的是,綜合器對數(shù)組的綜合一般是將其轉(zhuǎn)變成存放器的構(gòu)造??删幊唐骷械拇娣牌鱾€數(shù)是有限的,而FIFO是一種基于RAM

13、的器件,需要有大量的存儲空間,也就會用掉大量的存放器。所以,當直接用數(shù)組的形式來描述FIFO構(gòu)造時,綜合后的構(gòu)造都會非常龐大。 幸運的是,XILINX FPGA器件提供的片內(nèi)的RAM可直接使用,而不必使用存放器來構(gòu)成存儲空間,從而大大提高了芯片的利用率。在XILINX FPGA產(chǎn)品中,根據(jù)型號的不同,提供了兩種RAM 構(gòu)造: 分布式RAM和BLOCK RAM。 分布式RAM 存在于所有的XILINX FPGA器件中,而對于BLOCK RAM,只有的SPARTAN VETEX系列中才提供。分布式RAM 存儲器是由CLB 中的RAM構(gòu)造實現(xiàn)的(LUT),每個CLB 多可以組成321或162 容量的

14、RAM。 BLOCK RAM存儲器按列排列,左邊從0列開始,每隔12 列CLB 排列一個BLOCK RAM存儲器。每個BLOCK RAM是一個完全同步的雙端口RAM,每個端口都有獨立的控制信號,非常適合于FIFO器件的編寫。 其中XCV1000E的Block SelectRAM共有96塊BLOCK RAM ,這種嵌入式的塊RAM每塊含有4096-bit存儲單元,用戶可以根據(jù)需要靈活配置。 單個塊RAM 所存儲的數(shù)據(jù)寬度可為16位,可以多個塊RAM級連以構(gòu)成更大的數(shù)據(jù)寬度,多可有64個塊級連構(gòu)成1024位的數(shù)據(jù)存儲器。 用兩種方法使用FPGA資源情況的比較。 由表2 可以看出,基于存放器FIFO在綜合后用掉了VirtexTM-E器件大量的SLICES資源,而充分考慮FPGA器件構(gòu)造,用其自帶的存儲器BLOCK RAM來設計,則僅用掉1%的SLICES資源,兩廂一比較,明顯后一種設計可以充分節(jié)省現(xiàn)有的FPGA資源,設計出容量更大的存儲器,且更經(jīng)濟、有效。 結(jié)束語 由于現(xiàn)在ADC的精度和速度是一對矛盾,高速度難以做到高

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論