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

          新聞中心

          EEPW首頁(yè) > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于VerilogHDL語(yǔ)言的FIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)

          基于VerilogHDL語(yǔ)言的FIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2012-08-21 來源:網(wǎng)絡(luò) 收藏

           隨著現(xiàn)場(chǎng)可編程門陣列的廣泛應(yīng)用,對(duì)其進(jìn)行靈活的重新配置的研究也越來越多。目前絕大多數(shù)FPGA都是查找表LUT(Look UP Table)的技術(shù),采用SRAM工藝生產(chǎn)。這種工藝的FPGA有兩層結(jié)構(gòu),上層為配置存儲(chǔ)器,下層是硬件邏輯層。通過上層配置信息控制硬件層門電路的通斷,改變芯片內(nèi)基本邏輯塊的布線,從而形成特定的功能。這種架構(gòu)為動(dòng)態(tài)重構(gòu)技術(shù)提供了可能。一個(gè)FPGA大型系統(tǒng)總是由很多功能模塊組合而成,這樣各個(gè)系統(tǒng)模塊的激活狀態(tài)就可能在時(shí)間軸上產(chǎn)生分離,時(shí)間上分離的模塊就可以共用一個(gè)硬件邏輯區(qū),根據(jù)需要對(duì)這個(gè)邏輯區(qū)動(dòng)態(tài)地改變配置,不同的功能,這就是局部動(dòng)態(tài)重構(gòu)[1]。FPGA的動(dòng)態(tài)重構(gòu)使其應(yīng)用更加靈活,減少了硬件的資源消耗,縮短了開發(fā)周期。但是對(duì)一些特殊場(chǎng)合,如深海數(shù)據(jù)采集或機(jī)器人野外勘探,開發(fā)者可以為某個(gè)系統(tǒng)模塊幾個(gè)功能,設(shè)備在自主運(yùn)行過程中根據(jù)需要選擇相應(yīng)的配置數(shù)據(jù)進(jìn)行配置。如果遇到特殊環(huán)境,事先的功能有可能不適合工作要求,需要增加新的功能。在目前硬件進(jìn)化技術(shù)還無法進(jìn)行實(shí)際應(yīng)用的情況下,本文了一種遠(yuǎn)程動(dòng)態(tài)重構(gòu)的系統(tǒng)來解決上述問題。

          本文引用地址:http://www.ex-cimer.com/article/154088.htm

            1 遠(yuǎn)程動(dòng)態(tài)重構(gòu)系統(tǒng)的結(jié)構(gòu)

            遠(yuǎn)程動(dòng)態(tài)重構(gòu)系統(tǒng)有PowerPC處理器和89C54微控制器兩個(gè)核心。VirtexII-Pro FPGA內(nèi)部集成有2個(gè)PowerPC405嵌入式處理器[2],本文系統(tǒng)使用其中一個(gè),對(duì)動(dòng)態(tài)重構(gòu)進(jìn)行控制和調(diào)配。FPGA內(nèi)部用于對(duì)局部重構(gòu)區(qū)域PRR進(jìn)行重新配置的硬件模塊有3個(gè),分別是嵌入式內(nèi)核PowerPC、系統(tǒng)高級(jí)配置環(huán)境System ACE和內(nèi)部配置訪問通道ICAP。System ACE是一種在系統(tǒng)編程的高級(jí)配置解決方案,它提供CF(Compact Flash)、MPU和Test JTAG等多個(gè)接口,本系統(tǒng)采用CF卡作為配置數(shù)據(jù)的來源,可以更方便地改變和存儲(chǔ)配置數(shù)據(jù)。ICAP的主要作用就是按照特定時(shí)序?qū)⑴渲脭?shù)據(jù)重新配置到PRR中[3]。

            遠(yuǎn)程數(shù)據(jù)傳輸通過外接控制器89C54完成,一方面控制器要通過UART接口接收GSM模塊TC35傳來的數(shù)據(jù);另一方面要把接收到的配置數(shù)據(jù)寫入CF卡中,以供FPGA系統(tǒng)讀取。

            System ACE和89C54控制器共用CF卡的控制接口。為避免互相影響,本系使用多路復(fù)用器將CF卡端口做分時(shí)復(fù)用處理,即配置過程中與System ACE連接,而數(shù)據(jù)傳輸存儲(chǔ)過程中與89C54進(jìn)行連接。遠(yuǎn)程動(dòng)態(tài)重構(gòu)系統(tǒng)結(jié)構(gòu)如圖1所示。

            遠(yuǎn)程動(dòng)態(tài)重構(gòu)系統(tǒng)結(jié)構(gòu)

          2 遠(yuǎn)程動(dòng)態(tài)重構(gòu)的本地準(zhǔn)備

            以機(jī)械手臂的控制為例,采用PID控制、模糊控制和備用三種控制方案,每個(gè)控制算法經(jīng)過驗(yàn)證綜合生成獨(dú)立的bit流模塊。這三個(gè)模塊共用一個(gè)可重構(gòu)的區(qū)域PRregion,根據(jù)具體情況,選用最適合的算法模塊,動(dòng)態(tài)地配置重構(gòu)區(qū)域來控制機(jī)械手臂,其他靜態(tài)邏輯區(qū)域則仍然正常運(yùn)行。這樣不僅提高了系統(tǒng)的靈活性,而且節(jié)省了配置時(shí)間、減少了不必要的消耗。FPGA的設(shè)計(jì)流程一般包括設(shè)計(jì)、仿真、綜合、實(shí)現(xiàn)過程,本文根據(jù)系統(tǒng)自身結(jié)構(gòu)提出如圖2所示的設(shè)計(jì)流程。

            動(dòng)態(tài)重構(gòu)設(shè)計(jì)流程圖

            FPGA重構(gòu)系統(tǒng)綜合使用EDK(Embedded Development Kit)、ISE和PlanAhead多種工具平臺(tái),采用分層化設(shè)計(jì),以簡(jiǎn)化設(shè)計(jì)過程。其過程如下:

           ?。?)利用嵌入式開發(fā)工具EDK設(shè)計(jì)一個(gè)PowerPC405的嵌入式控制系統(tǒng)[4],添加SystemACE_CompactFlash外設(shè)以支持從CF卡配置FPGA;添加IP核opb_hwicap以支持嵌入式內(nèi)核通過ICAP讀取配置數(shù)據(jù)動(dòng)態(tài)地配置FPGA。

           ?。?)EDK包含有軟件開發(fā)工具SDK,因此利用SDK對(duì)PowerPC405進(jìn)行軟件編程和調(diào)試,最終生成應(yīng)用程序二進(jìn)制executable.elf文件;利用EDK外設(shè)創(chuàng)建向?qū)В瑒?chuàng)建多個(gè)控制算法IP模塊,在各自的VHDL文件中編寫相應(yīng)的算法;使用ISE工具對(duì)多個(gè)算法模塊進(jìn)行綜合、創(chuàng)建頂層模塊、實(shí)例化嵌入式系統(tǒng)和算法模塊。綜合產(chǎn)生top網(wǎng)表文件。

            (3)創(chuàng)建PlanAhead工程,使用以上產(chǎn)生的網(wǎng)表文件和約束文件進(jìn)行布局布線。其中最重要的是將算法模塊設(shè)置為可重構(gòu)模塊,對(duì)其進(jìn)行嚴(yán)格的區(qū)域約束[5],其約束代碼如下:

            AREA_GROUP “AL_PRregion” RANGE = SLICE_(minX)(minY):SLICE_(maxX)(maxY)

            AREA_GROUP “AL_PRregion” RANGE = RAMB16_(minX)(minY):RAMB16(maxX)(maxY)

            在PlanAhead工具中可以通過可視化方法進(jìn)行區(qū)域約束,既直觀又簡(jiǎn)單??芍貥?gòu)模塊在運(yùn)行過程中如果需要實(shí)現(xiàn)不同的控制算法,則需要在重構(gòu)區(qū)中添加所有算法模塊綜合生成的網(wǎng)表文件、使用PR Assemble命令生成多個(gè)不同的算法bit流文件。除了動(dòng)態(tài)bit流文件外,PlanAhead還會(huì)產(chǎn)生一個(gè)靜態(tài)完整的bit流文件static_full.bit??蓤?zhí)行以下兩個(gè)命令生成ace配置文件:

            (1)data2mem -bm implementation/system_stub_bd -bt implementation/static_full.bit -bd TestApp/executable.elf tag ppc310_0 –o b implementation/static.bit。

           ?。?)xmd -tcl genace.tcl -jprog -target ppc_hw -hw implementation/static.bit -elf TestApp/executable.elf -board ml310 -ace system.ace。

          3 遠(yuǎn)程動(dòng)態(tài)重構(gòu)的實(shí)現(xiàn)

            經(jīng)過動(dòng)態(tài)重構(gòu)本地準(zhǔn)備之后,得到如表1所示的CF卡配置文件列表。設(shè)置保留模塊,是為了給新的控制算法保留一個(gè)接口(以一個(gè)空文件存儲(chǔ)在CF卡中)。

            

            傳統(tǒng)的本地重構(gòu)設(shè)計(jì)完成后,針對(duì)重構(gòu)區(qū)域會(huì)得到幾個(gè)不同的配置文件,如針對(duì)機(jī)械臂控制算法重構(gòu)區(qū)得到兩個(gè)初期設(shè)計(jì)的控制算法配置文件。在實(shí)際運(yùn)行過程中,有些環(huán)境只需PID控制就可滿足要求,而有些環(huán)境采用模糊控制更合適。如果采用這兩種控制方法都不能滿足工作要求時(shí),必然要對(duì)初期設(shè)計(jì)進(jìn)行升級(jí),對(duì)復(fù)雜危險(xiǎn)的工作現(xiàn)場(chǎng)進(jìn)行遠(yuǎn)程動(dòng)態(tài)重構(gòu)。

            本文提出的設(shè)計(jì)方法是:GSM模塊作為遠(yuǎn)程數(shù)據(jù)傳輸工具,與89C54單片機(jī)通過UART端口連接,單片機(jī)接收到一個(gè)扇區(qū)512 B的數(shù)據(jù)寫入CF卡reserved.bit文件中。GSM模塊采用西門子公司的TC35模塊,它支持AT指令,由89C54發(fā)送AT指令A(yù)SCI碼對(duì)TC35進(jìn)行控制[5]。本設(shè)計(jì)主要涉及到的AT指令如表2所示,TC35以串行模式與89C54進(jìn)行通信。

            

            CF卡必須格式化成FAT16格式才能用于FPGA的配置文件存儲(chǔ)。FAT格式磁盤必須一次性對(duì)一個(gè)扇區(qū)進(jìn)行操作,所以單片機(jī)必須從TC35接收滿512 B的數(shù)據(jù)才可以對(duì)CF卡進(jìn)行寫操作。FPGA配置完成之后CF卡處于閑置狀態(tài),通過多路復(fù)用器將CF卡與外接控制器連接以完成對(duì).bit文件的讀寫操作。單片機(jī)對(duì)CF卡進(jìn)行操作本質(zhì)就是對(duì)FAT文件系統(tǒng)的讀寫。

          電源濾波器相關(guān)文章:電源濾波器原理


          數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理

          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


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