




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、【W(wǎng)ord版本下載可任意編輯】 FPGA的雙緩沖模式PCI Express總線設(shè)計(jì)方案 1.1 PCIE總線實(shí)現(xiàn)方式 目前,PCI Express總線的實(shí)現(xiàn)方式主要有兩種:基于專用接口芯片ASIC和基于IP核的可編程邏輯器件FPGA方案。前者通常采用ASIC+FPGA/DSP的組合方式,專用PCIE接口芯片(如PEX8311)防止用戶過多地接觸PCIE協(xié)議,降低了開發(fā)難度;但其硬件電路設(shè)計(jì)復(fù)雜,功能固定,靈活性和可擴(kuò)展性較差。后者使用IP核實(shí)現(xiàn)PCIE協(xié)議,用戶可以開發(fā)其所需的功能和驅(qū)動,具有可編程性和可重配置能力;另外,單片F(xiàn)PGA降低了成本和電路復(fù)雜程度,更符合片上系統(tǒng)(SoC)的設(shè)計(jì)思想
2、。本文采用Xilinx公司Virtex6 FPGA和PCIE集成塊,實(shí)現(xiàn)雙緩沖模式的高速PCIE接口設(shè)計(jì)。 1.2 雙緩沖與單緩沖比較 以寫操作(數(shù)據(jù)從FPGA到內(nèi)存)為例,雙緩沖PCIE系統(tǒng)框圖如圖1所示。為描述方便,將該FPGA片上系統(tǒng)命名為SRSE(Software Radio System with PCI Express)。 圖1 雙緩沖PCIE系統(tǒng)框圖 PC端的驅(qū)動程序在系統(tǒng)內(nèi)存上為SRSE分配了兩個緩沖區(qū)(WR_BUF1/2)用于數(shù)據(jù)存儲,這兩個緩沖區(qū)的地址信息分別存儲在FPGA端的DMA存放器(DAM_Reg1/2)中。Root Complex連接CPU、內(nèi)存和PCIE器件,它
3、代表CPU產(chǎn)生傳輸請求;PCIE核是Xilinx公司提供的集成塊程序,實(shí)現(xiàn)PCIE協(xié)議的處理;DMA(直接存儲器訪問)引擎用于實(shí)現(xiàn)DSP核和PCIE器件間的高速數(shù)據(jù)存儲與交換;DSP(數(shù)字信號處理)核是用戶設(shè)計(jì)的算法或應(yīng)用程序。以圖1為例,DSP核將產(chǎn)生的數(shù)據(jù)寫入TX_FIFO,DMA引擎將數(shù)據(jù)以傳輸層數(shù)據(jù)包(TLP)的形式發(fā)送至PCIE核,其中數(shù)據(jù)包的頭信息來自存放器DMA_Reg1.當(dāng)SRSE將數(shù)據(jù)寫入緩沖區(qū)WR_BUF1時(shí),驅(qū)動分配另外一塊緩沖區(qū)WR_BUF2并將該緩沖區(qū)的地址信息寫入存放器DMA_Reg2中;當(dāng)DMA引擎發(fā)出WR_BUF1的寫操作消息中斷(MSI)后,DMA控制器將數(shù)據(jù)
4、包的頭信息切換至DMA_Reg2,驅(qū)動將緩沖區(qū)切換至WR_BUF2,繼續(xù)傳輸數(shù)據(jù)。 圖2 PCIE總線中斷延遲測量 與雙緩沖相對應(yīng)的是單緩沖模式。以寫操作為例,驅(qū)動程序每次在內(nèi)存上分配一個緩沖區(qū)WR_BUF,該緩沖區(qū)的地址信息存儲在DMA存放器DMA_Reg中。當(dāng)寫滿緩沖區(qū)WR_BUF時(shí),DMA引擎會產(chǎn)生MSI中斷,并通過PCIE核通知驅(qū)動程序。驅(qū)動分配新的緩沖區(qū),并將該緩沖區(qū)地址通過PCIE總線寫入DMA存放器DMA_Reg中。中斷的傳輸和DMA存放器的更*產(chǎn)生一定延時(shí),這需要較大的TX_FIFO來存取延時(shí)期間DSP核產(chǎn)生的數(shù)據(jù)。 為測量中斷延時(shí)時(shí)間,搭建了基于DELL T3400型PC和M
5、L605開發(fā)套件的平臺,通過ChipScope觀察的波形結(jié)果如圖2所示。DMA中斷發(fā)生在時(shí)刻0(mwr_done:01);然后PCIE核向驅(qū)動發(fā)出MSI中斷,驅(qū)動程序查詢中斷存放器發(fā)生在時(shí)刻2241(irq_wr_accessed:10);驅(qū)動程序分配新的內(nèi)存緩沖區(qū),然后更新DMA存放器發(fā)生在時(shí)刻2802(wr_dma_buff0_rdy:01)。在這2802個時(shí)鐘周期內(nèi),PCIE器件無法將數(shù)據(jù)寫入內(nèi)存。PCIE的時(shí)鐘頻率為250 MHz,所以中斷延時(shí)T=2802(1/250 MHz)=11.2 s.假定DSP核產(chǎn)生數(shù)據(jù)的速率為200 MB/s,中斷延時(shí)期間將產(chǎn)生11.2 s200 MB/s=
6、2241 B大小的數(shù)據(jù)??紤]到其他不可預(yù)測因素,如中斷堵塞等,為了不丟失數(shù)據(jù),TX_FIFO至少需要幾KB的空間。這對于FPGA內(nèi)寶貴的硬件資源(如Block RAM)來說是嚴(yán)峻的挑戰(zhàn)。 與單緩沖模式相比,雙緩沖模式優(yōu)點(diǎn)歸納如下: 更新緩沖區(qū)不會引入中斷延時(shí),這意味著較小的FIFO即可滿足需求,節(jié)約了硬件資源。 雙緩沖模式延長了驅(qū)動程序處理中斷的時(shí)間,也使緩沖區(qū)數(shù)據(jù)的處理更加容易,丟包率大大減小。 數(shù)據(jù)的傳輸和內(nèi)存緩沖區(qū)的數(shù)據(jù)處理可以并行處理,系統(tǒng)的實(shí)時(shí)性得到保證。 雙緩沖更適合Scatter/Gather DMA,取代block DMA,從而提高內(nèi)存效率。 2 軟件無線電平臺設(shè)計(jì) 軟件無線電
7、基于可編程、可重構(gòu)的通用硬件平臺,通過加載不同的軟件實(shí)現(xiàn)不同的無線電功能,廣泛應(yīng)用于軍用和民用領(lǐng)域。為了能夠?qū)崿F(xiàn)復(fù)雜的算法,其平臺需要具備高速數(shù)據(jù)交換和實(shí)時(shí)信號處理的能力。該設(shè)計(jì)參考Xilinx ML605開發(fā)套件,基于Xilinx Virtex6 LX240T FPGA芯片,通過增加相應(yīng)的模塊搭建通用的軟件無線電平臺。 軟件無線電原理框圖如圖3所示。信號獲取模塊采用兩片ADC和DAC以實(shí)現(xiàn)IQ兩路信號的數(shù)模轉(zhuǎn)換;通信模塊由以太網(wǎng)和USBRS232接口組成;擴(kuò)展卡可以是射頻發(fā)射機(jī)或接收機(jī),通過擴(kuò)展卡接口與母板相連;JTAG接口提供在線編程和內(nèi)部測試功能;存儲器件包括512 MB DDR3內(nèi)存和
8、128 MB平臺Flash,分別用于動態(tài)數(shù)據(jù)存儲和配置FPGA;人機(jī)接口由LED/LCD、按鍵和開關(guān)等元件組成,實(shí)現(xiàn)人機(jī)對話;200 MHz有源晶振和SMA時(shí)鐘接口組成時(shí)鐘輸入模塊,向FPGA提供時(shí)鐘基準(zhǔn);8通道PCIE接口和IP核實(shí)現(xiàn)平臺與PC間高速數(shù)據(jù)交換。 圖3 軟件無線電原理框圖 3 雙緩沖模式PCIE總線設(shè)計(jì) 3.1 PCIE驅(qū)動設(shè)計(jì) PC端基于Linux(Ubuntu 10.10)操作系統(tǒng)。該操作系統(tǒng)開源,安全穩(wěn)定靈活,適合低成本軟件開發(fā)。驅(qū)動程序包含數(shù)據(jù)流接口和控制接口。數(shù)據(jù)流接口用于Linux用戶空間和SRSE平臺間高速的數(shù)據(jù)交換;控制接口使用戶可以觀察和配置SRSE平臺存放器
9、,例如通過控制接口,用戶可以在PC端改變SRSE平臺的調(diào)諧頻率等參數(shù)。數(shù)據(jù)流接口是雙向獨(dú)立的,支持雙/單工,即可以同時(shí)讀和寫數(shù)據(jù)。以數(shù)據(jù)發(fā)送(從PC到SRSE)為例,用戶空間調(diào)用write()函數(shù)將任意數(shù)量的數(shù)據(jù)發(fā)送至驅(qū)動,驅(qū)動整理數(shù)據(jù)碎片以滿足PCIE對數(shù)據(jù)對齊和傳輸塊數(shù)據(jù)量的要求。當(dāng)數(shù)據(jù)滿足4096字節(jié),驅(qū)動將數(shù)據(jù)塊發(fā)送至Root Complex并保存已發(fā)送數(shù)據(jù)的列表,等待接收來自SRSE平臺的寫操作中斷。PCIE驅(qū)動數(shù)據(jù)接收的原理如圖4所示。當(dāng)用戶空間調(diào)用read()函數(shù)或者驅(qū)動接收到來自PCIE設(shè)備的數(shù)據(jù)時(shí),驅(qū)動初始化讀操作。驅(qū)動程序?qū)⒈3肿枞╞locking),直到用戶空間調(diào)用re
10、ad()函數(shù),并且已接收到足夠的數(shù)據(jù)包,從而能夠填滿read()請求的數(shù)據(jù)量。碎片整理模塊對已接收的數(shù)據(jù)開展整理,然后將數(shù)據(jù)塊返回至用戶空間,并通知其解除驅(qū)動阻止。 圖4 PCIE驅(qū)動中的數(shù)據(jù)接收 3.2 PCIE核配置 Virtex6 PCIE Endpoint Block集成了傳輸層(TL)、數(shù)據(jù)鏈路層(DLL)和物理層(PL)協(xié)議,它完全符合PCIE基本規(guī)范,可配置性增加了設(shè)計(jì)的靈活性,降低了成本。其功能框圖與接口如圖5所示。其中收發(fā)器通過PCIE總線與Root Complex實(shí)現(xiàn)數(shù)據(jù)包的傳遞,PCIE總線由系統(tǒng)接口和PCIE接口組成;系統(tǒng)接口由復(fù)位和時(shí)鐘信號組成,PCIE接口由8條差分
11、傳輸和接收對組成(8lane)。TX/RX Block RAM用來存儲來自DMA引擎和系統(tǒng)內(nèi)存的數(shù)據(jù),其大小可以通過Xilinx Core Generator配置。傳輸接口為用戶提供了產(chǎn)生和接收TLP的機(jī)制;物理層接口使用戶能夠觀測和控制鏈路的狀態(tài);配置接口使用戶能夠觀察和配置PCIE終端的配置空間,即DMA存放器;中斷接口實(shí)現(xiàn)DMA與PCIE核之間的中斷傳輸。用戶通過這些接口設(shè)計(jì)符合其需要的DMA引擎。 圖5 PCIE功能框圖與接口 本文使用Xilinx CORE Generator生成PCIE核,其主要配置參數(shù)如下表1所列。 表1 PCIE核主要配置參數(shù) 3.3 總線主控DMA傳輸 參考X
12、ilinx應(yīng)用實(shí)例XAPP1052,本文設(shè)計(jì)的DMA構(gòu)造框圖如圖6所示,各部分功能介紹如下: 發(fā)射引擎。發(fā)射引擎產(chǎn)生傳輸層數(shù)據(jù)包(TLP)并通過傳輸接口發(fā)送至PCIE核,數(shù)據(jù)包的數(shù)據(jù)來自TX_FIFO,頭信息來自DMA控制/狀態(tài)存放器,也負(fù)責(zé)驅(qū)動對DMA存放器的讀取。 接收引擎。接收引擎將來自上位機(jī)的數(shù)據(jù)包解碼并轉(zhuǎn)存至RX_FIFO中,也接收來自驅(qū)動的配置信息并將存放器值寫入DMA控制/狀態(tài)存放器中。 DMA控制/狀態(tài)存放器。該模塊是DMA的主控制器,控制著DMA復(fù)位、讀寫等操作;內(nèi)存緩沖區(qū)的地址信息和TLP包長度等信息也存儲在該存放器中。 MSI中斷控制器。該模塊產(chǎn)生讀寫中斷,然后通過中斷接
13、口通知PCIE核,進(jìn)而通知驅(qū)動程序。 TX/RX_FIFO.通過Xilinx Core Generator將FIFO配置為獨(dú)立時(shí)鐘異步模式,實(shí)現(xiàn)不同時(shí)鐘域的數(shù)據(jù)緩沖和位寬轉(zhuǎn)換。本文PCIE時(shí)鐘為250 MHz、位寬64位,而DSP核時(shí)鐘為200 MHz、位寬32位。 PCIE核。該模塊為例化的PCIE集成塊,框圖和參數(shù)詳見圖5和表1. DSP核。該模塊為用戶設(shè)計(jì)的算法或者功能模塊,例如通過Simulink調(diào)用Xilinx庫實(shí)現(xiàn)某種功能。 圖6 DMA構(gòu)造框圖 3.4 雙緩沖PCIE協(xié)議 以寫操作為例,雙緩沖PCIE協(xié)議如圖7所示。初始化時(shí),驅(qū)動程序在內(nèi)存中分配兩塊緩沖區(qū)Buff 1a/2a,然
14、后將Buff 1a的地址信息寫入DMA控制/狀態(tài)存放器DMA_Reg1(圖1)中并開始寫操作;DMA引擎將FIFO中的數(shù)據(jù)以數(shù)據(jù)包的形式通過PCIE總線發(fā)送至緩沖區(qū)Buff 1a中,期間驅(qū)動程序?qū)uff 2a的地址信息發(fā)送至DMA控制/狀態(tài)存放器DMA_Reg2中;當(dāng)Buff 1a寫操作完成時(shí),MSI中斷控制器產(chǎn)生MSI中斷并通知驅(qū)動,此時(shí)驅(qū)動和DMA控制器同時(shí)切換緩沖區(qū),即驅(qū)動將緩沖區(qū)切換至Buff 2a,DMA控制器將TLP頭信息切換至DMA_Reg2,如此繼續(xù)傳輸數(shù)據(jù)。 圖7 雙緩沖PCIE操作協(xié)議(寫操作) 將MSI中斷與新緩沖區(qū)配置間的時(shí)間間隔稱為中斷延時(shí),如圖2和圖7所示。雙緩沖
15、模式的引入消除了中斷延時(shí)的影響,使SRSE在中斷延時(shí)期間仍能傳輸數(shù)據(jù),節(jié)約了硬件資源,驅(qū)動程序也有更多時(shí)間來處理緩沖區(qū)的數(shù)據(jù)。 4 PCIE調(diào)試與性能 提供了Root Port的Test Bench,它可以模擬PC和驅(qū)動程序,如初始化DMA引擎、產(chǎn)生下行數(shù)據(jù)流并發(fā)送至PCIE設(shè)備,也可以接收來自PCIE設(shè)備的上行數(shù)據(jù)流等,使整個系統(tǒng)(PCIE核+DMA引擎+DSP核)可以在Modelsim SE環(huán)境下仿真。這大大縮短了開發(fā)周期,提高了開發(fā)效率。功能仿真通過后,使用Xilinx ISE 軟件完成代碼的輸入、綜合、實(shí)現(xiàn)、驗(yàn)證和。 硬件平臺為DELL T3400型PC和Xilinx ML605開發(fā)套件。PC端基于Ubuntu 10.10操作系統(tǒng)運(yùn)行驅(qū)動程序,F(xiàn)PGA端DSP核(圖6)通過Matlab Simulink調(diào)用Xilinx元件庫實(shí)現(xiàn)。本文DSP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題代寫申報(bào)書是什么
- 課題申報(bào)評審書范例范文
- 就業(yè)心理 課題申報(bào)書
- 河南小學(xué)課題申報(bào)書范例
- 兌換房子合同范本
- 公司外匯借款合同范本
- 益智課堂課題研究申報(bào)書
- 閱讀推廣 課題申報(bào)書
- 課題申報(bào)項(xiàng)目書推廣價(jià)值
- 同城工程勞務(wù)合同范例
- 廣東省惠州市惠東縣2022年小升初語文試卷(學(xué)生版+解析)
- 智能建筑監(jiān)理例會會議記錄
- 《數(shù)與形》(教學(xué)設(shè)計(jì))-2024-2025學(xué)年六年級上冊數(shù)學(xué)人教版
- 政府審計(jì) 課件 第二章 政府審計(jì)組織與審計(jì)法律
- 常用血管活性藥物的應(yīng)用及護(hù)理
- 2025年云南省昆明國家高新技術(shù)產(chǎn)業(yè)開發(fā)區(qū)招聘合同聘用制專業(yè)技術(shù)人員47人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 農(nóng)機(jī)安全知識講座
- DeepSeek從入門到精通 -指導(dǎo)手冊
- 2025年九年級上冊道德與法治核心知識點(diǎn)梳理匯編
- 校長第一次全體教師會上發(fā)言:2025春季開學(xué)教師掌握這 6 詞教育之路暢通無阻
- 2024年河南省鄭州某中學(xué)小升初數(shù)學(xué)試卷(含答案)
評論
0/150
提交評論