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

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > FPGA及動(dòng)態(tài)可重構(gòu)技術(shù)在軟件無線電中的應(yīng)用

          FPGA及動(dòng)態(tài)可重構(gòu)技術(shù)在軟件無線電中的應(yīng)用

          作者: 時(shí)間:2010-09-01 來源:網(wǎng)絡(luò) 收藏

          摘 要: 介紹了將現(xiàn)場可編程門陣列()專用硬件處理器集成到軟件通信體系結(jié)構(gòu)">軟件通信體系結(jié)構(gòu)(SCA)中的機(jī)制,實(shí)現(xiàn)了動(dòng)態(tài)部分可重構(gòu)技術(shù)在軟件無線電(SDR)硬件平臺(tái)中的應(yīng)用,有效地縮短系統(tǒng)開發(fā)周期,提高了硬件資源的利用率。

          SDR是使用一個(gè)簡單的終端設(shè)備通過軟件重配置來支持不同種類的無線系統(tǒng)和服務(wù)(包括2G、3G移動(dòng)通信系統(tǒng)和WLAN)的新技術(shù)。它具有較強(qiáng)的開放性和靈活性,硬件采用標(biāo)準(zhǔn)化、模塊化結(jié)構(gòu),可以隨著器件和技術(shù)的發(fā)展而更新和擴(kuò)展;軟件模塊可以進(jìn)行加載和更改,根據(jù)需要不斷升級(jí)。軟件無線電的結(jié)構(gòu)如圖1所示,主要分為實(shí)時(shí)信道數(shù)據(jù)處理部分、環(huán)境管理部分、系統(tǒng)分析和功能強(qiáng)化部分。實(shí)時(shí)信道數(shù)據(jù)處理部分包括A/D、D/A、變頻、信道分離、調(diào)制解調(diào)以及碼流處理等數(shù)據(jù)模塊。

          SDR的核心是聯(lián)合戰(zhàn)術(shù)無線電系統(tǒng)JTRS(Joint Tactical Radio System)的SCA規(guī)范,它對模塊化可編程無線通信系統(tǒng)的硬件體系結(jié)構(gòu)、軟件體系結(jié)構(gòu)和安全體系結(jié)構(gòu)以及應(yīng)用程序接口(API)規(guī)范進(jìn)行了描述,同時(shí)引入了嵌入式微處理器系統(tǒng)、總線、操作系統(tǒng)、公共對象請求代理體系(CORBA)、面向?qū)ο蟮能浖陀布O(shè)計(jì)等一系列計(jì)算機(jī)技術(shù),并采用了“波形應(yīng)用”和“資源”可裁剪、可擴(kuò)充的設(shè)計(jì)思想,從而保證了軟件和硬件的可移植性和可配置性。

          以接收機(jī)為例,SDR中A/D模塊之后的部分通過軟件來實(shí)現(xiàn)。本文在平臺(tái)上實(shí)現(xiàn)信號(hào)的調(diào)制解調(diào),以滿足高速數(shù)字信號(hào)處理發(fā)展的需求。在Xilinx Virtex2Pro 硬件平臺(tái)上實(shí)現(xiàn)了美國軍方短波通信系統(tǒng)標(biāo)準(zhǔn)MIL-STD-188-110B調(diào)制解調(diào)器,其中引入了動(dòng)態(tài)部分可重構(gòu)技術(shù),提高了配置速度和硬件資源的利用率。

          滿足SCA規(guī)范的波形組件之間通過CORBA總線通信,而FPGA平臺(tái)的專用處理器要實(shí)現(xiàn)對CORBA的支持比較困難。本文利用SCA規(guī)范中的SHP組件兼容性補(bǔ)充協(xié)議CP289提出了這一問題的具體解決方案。

          1 FPGA的動(dòng)態(tài)部分可重構(gòu)技術(shù)

          FPGA的動(dòng)態(tài)可重構(gòu)技術(shù)是指對時(shí)序變化的數(shù)字邏輯系統(tǒng),其時(shí)序邏輯的發(fā)生不是通過調(diào)用芯片內(nèi)不同區(qū)域不同邏輯資源的組合實(shí)現(xiàn),而是通過對具有專門緩存邏輯資源的FPGA進(jìn)行局部或全局芯片邏輯的動(dòng)態(tài)重構(gòu)而實(shí)現(xiàn)。部分重構(gòu)是指重構(gòu)器件或系統(tǒng)的一部分,在此過程中,其余部分的工作狀態(tài)不受影響。

          FPGA部分可重構(gòu)有多種實(shí)現(xiàn)方法,較為常用的是基于模塊化設(shè)計(jì)方法和EAPR(Early Access Partial Reconfiguration)設(shè)計(jì)流程,后者較前者而言,是一種較新的設(shè)計(jì)方法,并且有相應(yīng)的軟件可以代替命令行方式進(jìn)行實(shí)現(xiàn),本文采取的就是這種實(shí)現(xiàn)方法。

          圖2所示為一個(gè)簡單的基于EAPR設(shè)計(jì)流程生成的部分動(dòng)態(tài)可重配置系統(tǒng)。整個(gè)系統(tǒng)劃分出靜態(tài)模塊和動(dòng)態(tài)模塊,之間的通信通過總線宏來進(jìn)行。該系統(tǒng)通過FPGA板子上的dip開關(guān)為輸入引腳提供輸入數(shù)據(jù),確定計(jì)數(shù)器的初始值。通過下載不同部分的比特流可以實(shí)現(xiàn)加、減計(jì)數(shù)功能的動(dòng)態(tài)切換。計(jì)數(shù)結(jié)果通過值傳遞模塊接到FPGA板子上的LED管腳。整個(gè)設(shè)計(jì)過程可以概括為:

          (1)模塊劃分:靜態(tài)模塊和動(dòng)態(tài)模塊;

          (2)頂層模塊與靜態(tài)和動(dòng)態(tài)子模塊的設(shè)計(jì)及綜合;

          (3)編寫初始用戶約束文件,主要指定I/O管腳約束和時(shí)鐘約束;

          (4)在PlanAhead中進(jìn)行EAPR設(shè)計(jì):

          ①建立局部可重構(gòu)工程;

          ②為每一個(gè)PRM定義可重配置實(shí)體;

          ③為PRM規(guī)定可重配置區(qū)域;

          ④放置總線宏和全局時(shí)鐘邏輯;

          ⑤運(yùn)行DRC檢查;

          ⑥分別實(shí)現(xiàn)靜態(tài)邏輯和PR模塊;

          ⑦裝配并生成全局和部分比特流。

          2 基于FPGA的SDR硬件體系結(jié)構(gòu)及DPR實(shí)現(xiàn)

          Xilinx Virtex2Pro FPGA內(nèi)含處理器,通過一定的軟件編程,可根據(jù)環(huán)境及外部需求采用不同的調(diào)制解調(diào)算法處理通信系統(tǒng)中的數(shù)據(jù)。通過DPR技術(shù),可以實(shí)時(shí)快速地調(diào)整算法中的參數(shù)或者實(shí)現(xiàn)不同算法之間的切換。

          2.1 基于FPGA的SDR硬件平臺(tái)

          本文基于Xilinx Virtex2Pro FPGA,搭建的SDR硬件平臺(tái)如圖3所示。該系統(tǒng)以軟核處理器 MicroBlaze為核心,DDR SDRAM Controller、OPB_HWICAP和UART Controller通過OPB總線與處理器通信。DDR SDRAM為片外處理器,UART為串口設(shè)備,ICAP為內(nèi)部訪問互連接口,主要用于部分重構(gòu)。


          上一頁 1 2 下一頁

          關(guān)鍵詞: FPGA

          評論


          相關(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); })();