<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Virtex-6 FPGA的雙緩沖模式PCIe總線設(shè)計方案和實現(xiàn)

          基于Virtex-6 FPGA的雙緩沖模式PCIe總線設(shè)計方案和實現(xiàn)

          作者: 時間:2013-12-31 來源:網(wǎng)絡(luò) 收藏

           ?、?接收引擎。接收引擎將來自上位機的數(shù)據(jù)包解碼并轉(zhuǎn)存至RX_FIFO中,也接收來自驅(qū)動的配置信息并將寄存器值寫入DMA控制/狀態(tài)寄存器中。

            ③ DMA控制/狀態(tài)寄存器。該模塊是DMA的主控制器,控制著DMA復(fù)位、讀寫等操作;內(nèi)存緩沖區(qū)的地址信息和TLP包長度等信息也存儲在該寄存器中。

           ?、?MSI中斷控制器。該模塊產(chǎn)生讀寫中斷,然后通過中斷接口通知PCIE核,進而通知驅(qū)動程序。

            ⑤ TX/RX_FIFO.通過Xilinx Core Generator將FIFO配置為獨立時鐘異步模式,實現(xiàn)不同時鐘域的數(shù)據(jù)緩沖和位寬轉(zhuǎn)換。本文PCIE時鐘為250 MHz、位寬64位,而DSP核時鐘為200 MHz、位寬32位。

           ?、?PCIE核。該模塊為例化的PCIE集成塊,框圖和參數(shù)詳見圖5和表1.

           ?、?DSP核。該模塊為用戶設(shè)計的算法或者功能模塊,例如通過Simulink調(diào)用Xilinx庫實現(xiàn)某種功能。

            

            圖6 DMA結(jié)構(gòu)框圖

            3.4 雙緩沖PCIE協(xié)議

            以寫操作為例,雙緩沖PCIE協(xié)議如圖7所示。初始化時,驅(qū)動程序在內(nèi)存中分配兩塊緩沖區(qū)Buff 1a/2a,然后將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寫操作完成時,MSI中斷控制器產(chǎn)生MSI中斷并通知驅(qū)動,此時驅(qū)動和DMA控制器同時切換緩沖區(qū),即驅(qū)動將緩沖區(qū)切換至Buff 2a,DMA控制器將TLP頭信息切換至DMA_Reg2,如此繼續(xù)傳輸數(shù)據(jù)。

            雙緩沖PCIE操作協(xié)議(寫操作)

            圖7 雙緩沖PCIE操作協(xié)議(寫操作)

            將MSI中斷與新緩沖區(qū)配置間的時間間隔稱為中斷延時,如圖2和圖7所示。的引入消除了中斷延時的影響,使SRSE在中斷延時期間仍能傳輸數(shù)據(jù),節(jié)約了硬件資源,驅(qū)動程序也有更多時間來處理緩沖區(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 軟件完成代碼的輸入、綜合、實現(xiàn)、驗證和下載。

            硬件平臺為DELL T3400型PC和Xilinx ML605開發(fā)套件。PC端基于Ubuntu 10.10操作系統(tǒng)運行驅(qū)動程序,F(xiàn)PGA端DSP核(圖6)通過Matlab Simulink調(diào)用Xilinx元件庫實現(xiàn)。本文DSP核由32位計數(shù)器和加法器組成:計數(shù)器將值寫入TX_FIFO,PC端檢測接收數(shù)據(jù)以驗證寫操作(SRSE→PC);同樣地,PC端產(chǎn)生+1計數(shù)值并將數(shù)據(jù)寫入RX_FIFO,DSP核的加法器用來驗證讀操作(PC→SRSE)。

            結(jié)語

            本文設(shè)計了基于Xilinx Virtex6 FPGA的通用軟件無線電平臺,利用C語言開發(fā)了基于Linux系統(tǒng)的驅(qū)動程序,利用Verilog語言設(shè)計基于Xilinx PCIE硬核的雙緩沖DMA控制器。雙緩沖消除了中斷延時的影響,節(jié)約了硬件資源,提高了數(shù)據(jù)傳輸速度。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: Virtex-6 雙緩沖模式 PCIe總線

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();