新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的自適應(yīng)波束形成算法實(shí)現(xiàn)

基于FPGA的自適應(yīng)波束形成算法實(shí)現(xiàn)

作者: 時間:2011-07-11 來源:網(wǎng)絡(luò) 收藏

  2.2 系統(tǒng)軟件模塊設(shè)計(jì)

  (Field-Programmable Gate Array),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。

  目前以硬件描述語言(Verilog 或 VHDL)所完成的電路設(shè)計(jì),可以經(jīng)過簡單的綜合與布局,快速的燒錄至 上進(jìn)行測試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)主流。這些可編輯元件可以被用來實(shí)現(xiàn)一些基本的邏輯門電路(比如AND、OR、XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flip-flop)或者其他更加完整的記憶塊。

  系統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來,就好像一個電路試驗(yàn)板被放在了一個芯片里。一個出廠后的成品FPGA的邏輯塊和連接可以按照設(shè)計(jì)者而改變,所以FPGA可以完成所需要的邏輯功能。

  FPGA一般來說比ASIC(專用集成芯片)的速度要慢,無法完成復(fù)雜的設(shè)計(jì),而且消耗更多的電能。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來改正程序中的錯誤和更便宜的造價(jià)。廠商也可能會提供便宜的但是編輯能力差的FPGA。因?yàn)檫@些芯片有比較差的可編輯能力,所以這些設(shè)計(jì)的開發(fā)是在普通的FPGA上完成的,然后將設(shè)計(jì)轉(zhuǎn)移到一個類似于ASIC的芯片上。另外一種方法是用CPLD(復(fù)雜可編程邏輯器件備)。

  根據(jù)數(shù)字形成的原理和數(shù)學(xué)模型,本文設(shè)計(jì)的基于FPGA數(shù)字波束形成系統(tǒng)結(jié)構(gòu)如圖2所示。8路輸入信號x(n)經(jīng)過前端信號處理,A/D轉(zhuǎn)換后,在總控模塊的控制下進(jìn)入輸入數(shù)據(jù)存儲模塊雙口RAM,形成的具體實(shí)現(xiàn)步驟如下:

  第一步:由式(1)得,實(shí)際輸入的x(n)和調(diào)整后的權(quán)值w(n)各分量相乘之后累加得到輸出y(n);

  第二步:由式(2)得,實(shí)際輸出的y(n)與期望d(n)相減得到調(diào)整誤差e(n);

  第三步:由式(3)得,延時后的調(diào)整誤差P(n)跟步長的2倍相乘,再和延時的輸入x(n-D)相乘得到的積與延時的權(quán)值相加,得到新的權(quán)值向量。

  第四步:新的權(quán)值向量再與新的輸入向量循環(huán)進(jìn)行第一到第三步實(shí)現(xiàn)自適應(yīng)。

  由此,我們可以將系統(tǒng)分為五大模塊:主控模塊:主要產(chǎn)生時鐘信號,給各模塊提供時序信號觸發(fā)各模塊的啟動和初始化;雙口存儲模塊(包括輸入數(shù)據(jù)存儲模塊、權(quán)值存儲模塊、誤差信號存儲模塊等):存儲各功能模塊所需的數(shù)據(jù)和參數(shù);自適應(yīng)權(quán)值計(jì)算模塊,誤差計(jì)算模塊:這兩個模塊可以合在一起,用于系數(shù)更新的白適應(yīng);空間濾波器乘加模塊:完成濾波運(yùn)算,得到輸出結(jié)果。

基于FPGA圓陣超聲自適應(yīng)波束形成的設(shè)計(jì)

  2.2.1 控制模塊

  輸入信號和權(quán)值是8位的復(fù)數(shù)數(shù)據(jù),通過控制模塊選擇乘法操作的操作數(shù),兩個復(fù)數(shù)信號相乘的4種組合00,11,01,10可以完成實(shí)部和虛部之間4個乘法運(yùn)算,四種情況控制模塊輸出的控制信號分別為ST0,ST1,ST2,ST3。

  其中,clk_regbt用來控制乘法器完成乘法,counterbt用來控制乘數(shù)的位選,clk_reg用來控制運(yùn)算新數(shù)的進(jìn)入、上次計(jì)算的完畢和結(jié)果的輸出。



關(guān)鍵詞: FPGA 自適應(yīng)波束 算法

評論


相關(guān)推薦

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

關(guān)閉