??? 摘 要: 一種基于FPGA的適用于中小壓縮比情況的時(shí)域數(shù)字脈沖壓縮" title="脈沖壓縮">脈沖壓縮處理器的實(shí)現(xiàn)方案,。該處理器具有使用靈活,、便于功能擴(kuò)展、成本低的特點(diǎn),,已用于某雷達(dá)信號處理機(jī)中,,性能穩(wěn)定。
??? 關(guān)鍵詞: 脈沖壓縮? 自適應(yīng)FIR濾波器? 現(xiàn)場可編程邏輯門陣列
?
??? 在現(xiàn)代雷達(dá)系統(tǒng)中,,數(shù)字脈沖壓縮技術(shù)以其性能穩(wěn)定,、抗干擾能力強(qiáng)、控制方式靈活等優(yōu)點(diǎn)而被廣泛使用,?;诂F(xiàn)場可編程門陣列(FPGA)實(shí)現(xiàn)的數(shù)字脈沖壓縮處理器受到了國內(nèi)外學(xué)者的青睞[1][2]。
??? 數(shù)字脈壓系統(tǒng)實(shí)現(xiàn)算法有兩種方案:頻域法和時(shí)域法,。頻域法的優(yōu)點(diǎn)是大時(shí)寬信號時(shí)可采用FFT(快速傅立葉轉(zhuǎn)換)算法,,從而大大減少運(yùn)算量;但在小壓縮比,、距離單元數(shù)較大時(shí),,相對于時(shí)域法成本較高,運(yùn)算過程較復(fù)雜,。本文介紹一種基于時(shí)域的FPGA數(shù)字脈壓處理器,,能夠完成四通道63位M序列二相" title="二相">二相編碼數(shù)字脈壓,具有使用靈活,、便于功能擴(kuò)展,、成本低的特點(diǎn)。
1 設(shè)計(jì)原理
1.1 時(shí)域脈壓算法原理
??? 時(shí)域匹配濾波法等效于求離散接收信號與發(fā)射信號波形離散樣本之間的復(fù)相關(guān)運(yùn)算,,其輸入輸出關(guān)系可表示為[3]:
???
??? 其中si,、h和s0分別表示輸入信號、權(quán)系數(shù)和輸出信號(均為復(fù)數(shù)),,*表示卷積運(yùn)算,。對于有限沖擊響應(yīng)的情況,式(1)可寫為:
???
??? 對于M序列碼,h(n)應(yīng)為發(fā)射脈沖M序列的本原碼,,即發(fā)射脈沖碼元,。
1.2 FIR實(shí)現(xiàn)方法
??? 時(shí)域脈壓算法結(jié)構(gòu)清晰,其數(shù)字實(shí)現(xiàn)系統(tǒng)為FIR濾波器結(jié)構(gòu),。本文設(shè)計(jì)的四通道63位M序列二相編碼數(shù)字脈壓處理器實(shí)質(zhì)是要實(shí)現(xiàn)四個(gè)高速,、高精度的64級數(shù)字式橫向?yàn)V波器" title="橫向?yàn)V波器">橫向?yàn)V波器。該濾波器能夠?qū)崿F(xiàn)高速自適應(yīng)濾波,,其輸入數(shù)據(jù)和系數(shù)均采用二進(jìn)制補(bǔ)碼形式,,濾波系數(shù)能夠修改,可以與不同的頻率碼相匹配,,模塊具有自檢功能,。
在處理器設(shè)計(jì)過程中,關(guān)鍵是充分考慮脈壓算法特點(diǎn)和FPGA結(jié)構(gòu),減少硬件實(shí)現(xiàn)的資源開銷,提高處理速度,。為此,,可考慮將兩個(gè)32級的自適應(yīng)數(shù)字橫向?yàn)V波器通過級聯(lián)的方式來實(shí)現(xiàn)64級自適應(yīng)橫向?yàn)V波器,然后通過“流水線”的設(shè)計(jì)思想,,并行實(shí)現(xiàn)四個(gè)64級自適應(yīng)橫向?yàn)V波器,。在實(shí)現(xiàn)32級自適應(yīng)橫向?yàn)V波器時(shí),考慮了兩種實(shí)現(xiàn)結(jié)構(gòu),,一種是經(jīng)典的橫向?yàn)V波器結(jié)構(gòu),,如圖1所示;另一種是經(jīng)過修改的具有相同功能的濾波器結(jié)構(gòu),,稱之為轉(zhuǎn)置式FIR濾波器,如圖2所示,。
?????? ????? ?
??? 通過分析發(fā)現(xiàn),,修改后的濾波器結(jié)構(gòu)中,每個(gè)輸入采樣點(diǎn)數(shù)據(jù)都是同時(shí)送到32級的每一級,。在每一級中,,當(dāng)前輸入的樣點(diǎn)與存儲在存儲器中的系數(shù)相乘,并與前一級的經(jīng)一個(gè)時(shí)鐘周期延時(shí)后的輸出值相加,,從而實(shí)現(xiàn)整個(gè)脈壓過程,。該結(jié)構(gòu)的優(yōu)點(diǎn)在于不需要給輸入數(shù)據(jù)提供額外的移位寄存器,也不必為達(dá)到高吞吐量給乘積的加法器添加額外的流水線級,。所以,,在工程實(shí)現(xiàn)時(shí)采用修改后的結(jié)構(gòu)。
2 脈壓處理器的FPGA實(shí)現(xiàn)
??? 脈壓處理器完成的運(yùn)算操作主要是:乘加運(yùn)算,、系數(shù)存取和自檢驗(yàn)證,。實(shí)現(xiàn)脈壓處理器的硬件資源主要包括:RAM Blocks(塊靜態(tài)存儲器)、MULT 18X18-bit(乘法器" title="乘法器">乘法器)等,。Altera公司生產(chǎn)的Stratix系列芯片EP1S25是一種超大規(guī)模集成電路芯片, 該系列采用0.13微米和全銅SRAM工藝, 為需要高數(shù)據(jù)吞吐量的復(fù)雜應(yīng)用進(jìn)行優(yōu)化,,且片內(nèi)資源豐富:其中包括25 660個(gè)邏輯門,,1 944KB的RAM存儲器,40個(gè)MULT 18X18-bit,、10個(gè)數(shù)字時(shí)鐘管理模塊等,。在實(shí)際工作中,4路信號采用1片EP1S25完成,。圖3給出了基于FPGA實(shí)現(xiàn)的數(shù)字脈壓處理器的結(jié)構(gòu)框圖(單路),。
2.1 乘法器的FPGA實(shí)現(xiàn)
??? 由于所要設(shè)計(jì)的四通道63位M序列二相編碼數(shù)字脈壓處理器含有64×4個(gè)乘法器,如果設(shè)計(jì)不好就會導(dǎo)致資源的浪費(fèi)和速度的下降,。為此,,在FPGA的快速陣列乘法器的樹中引入流水線級的思想。FPGA的快速陣列乘法器為實(shí)現(xiàn)二叉樹乘法器(并行)[4]提供了條件,。二叉樹乘法器的步驟總數(shù)為log2(N),,表1顯示了最大吞吐量所需要的流水線級的數(shù)量與位寬之間的關(guān)系。
??? 根據(jù)以上分析,,結(jié)合實(shí)際輸入數(shù)據(jù)為12位的二進(jìn)制補(bǔ)碼,,濾波系數(shù)為4位二進(jìn)制補(bǔ)碼,因此需要構(gòu)造含有兩個(gè)流水線級的二進(jìn)制補(bǔ)碼乘法器,。乘法器的帶寬為:
???
??? 式中W1為輸入數(shù)據(jù)位寬,,W2為濾波系數(shù)位寬,L為濾波器的深度,,log2L為采用無符號算法時(shí)乘積和(SOP)的保護(hù)位,。當(dāng)采用有符號算法時(shí)保護(hù)位個(gè)數(shù)為(log2L-1),此時(shí),,乘法器的帶寬為:
???
??? 對于本濾波器,,數(shù)據(jù)均采用有符號數(shù),W1為12位,,W2為4位,,濾波器的深度為32級,所設(shè)計(jì)的乘法器帶寬為20位,。
為實(shí)現(xiàn)自適應(yīng)濾波器,,濾波器系數(shù)需隨外部送來的頻率碼的變化而變化。為此,,需要在復(fù)位信號(PT5)到來時(shí),,在雷達(dá)休止期進(jìn)行系數(shù)的重新存儲,以達(dá)到匹配濾波的效果,。
2.2 自檢碼及脈壓系數(shù)存儲模塊的設(shè)計(jì)
??? 由于自適應(yīng)濾波系數(shù)是4位有符號數(shù),,可將兩級相同濾波深度的系數(shù)值放到同一個(gè)地址單元里,規(guī)定高4位是第二級濾波器的系數(shù)值,低4位是第一級濾波器系數(shù)值,,在輸出到數(shù)據(jù)處理模塊" title="處理模塊">處理模塊進(jìn)行乘法運(yùn)算時(shí)再將它們分開,。由于自檢碼存的是8位有符號數(shù),輸出時(shí)也要進(jìn)行4位符號位擴(kuò)展,。為抗干擾,,規(guī)定每次在時(shí)鐘的下降沿取地址位,存儲器輸出碼值,,在每次時(shí)鐘的上升沿?cái)?shù)據(jù)處理模塊讀存儲器送過來的碼值,,以減少不確定性。
2.3 邏輯控制模塊的設(shè)計(jì)
??? 脈壓處理器的工作時(shí)序必須與整個(gè)雷達(dá)的工作時(shí)序和自適應(yīng)濾波的時(shí)序相一致,。為滿足邏輯要求,,設(shè)計(jì)一個(gè)有限狀態(tài)機(jī)(FSM),把整個(gè)時(shí)序邏輯過程分為四個(gè)狀態(tài),,分別是初始狀態(tài)(S0),、置數(shù)狀態(tài)(S1)、計(jì)數(shù)狀態(tài)(S2),、保持狀態(tài)(S3),。由于采取的是Mealy型狀態(tài)機(jī),故邏輯控制模塊的輸出依賴于數(shù)字處理模塊的當(dāng)前狀態(tài)和輸入的值,。例如在S2狀態(tài)時(shí),,當(dāng)輸入不同時(shí),輸出的值也會不同,。采取Mealy型狀態(tài)機(jī)能夠有效減少一些狀態(tài)變量,,但帶來的后果是描述難度增加。圖4是整個(gè)脈壓處理器的MDS圖,。
??? 為了提高抗干擾能力,,增加了一些保護(hù)邏輯電路,例如在雷達(dá)休止期由于干擾而沒有出現(xiàn)復(fù)位信號時(shí),,狀態(tài)機(jī)就會做出判斷,直接進(jìn)入自檢前的狀態(tài),,等待自檢信號的到來,,避免進(jìn)入不確定狀態(tài)。
3 仿真測試
??? 對所設(shè)計(jì)的處理器進(jìn)行了軟件仿真,,從圖5中可以清楚地看到處理器的輸入輸出時(shí)序,。其中x_in_I(Q)PH(L)為輸入數(shù)據(jù),pc_I(Q)PH(L)為輸出數(shù)據(jù),,check_code為自檢時(shí)的信號,。從圖6中可以看到,脈壓數(shù)據(jù)在63位M序列碼輸完以后,延遲8個(gè)時(shí)鐘周期,,準(zhǔn)確地計(jì)算出脈壓值H07C(124),,最大旁瓣-13dB,主副瓣比達(dá)到19.6dB,,滿足設(shè)計(jì)要求,。完成仿真后,在QUARTUS編譯后下載到Altera器件EP1S25中進(jìn)行了調(diào)試,,與仿真結(jié)果一致,。
圖5 處理器的仿真波形(一)
?
圖6 處理器的仿真波形(二)???
?
??? 采用超大規(guī)模FPGA并結(jié)合流水線設(shè)計(jì),降低了處理時(shí)間,減少了設(shè)計(jì)成本,,取得了較好的效果,。整個(gè)處理器共使用了22 405個(gè)邏輯單元(LC),占到了芯片總邏輯單元的87%,,使用了99 840bit的內(nèi)存,,占到了芯片總內(nèi)存的5%,以87.57MHz的Registered Performance運(yùn)行,,工作性能穩(wěn)定,。目前該處理器已應(yīng)用于某信號處理機(jī)中。
參考文獻(xiàn)
[1] LIU Zhenyu.Tracking radar digital matched-filter ASIC?design and its error analysis.IEEE?5th International Conference on?ASIC,,Tsinghua University,,2003:777-782.
[2] DAY R H,GERMON R,,O NEILLl?B C.A real time digital signal processing solution for radar pulse?compression.IEE Colloquium on?Digital Filters,,1998,252:1-6.
[3] 馬曉巖,,向家彬,,朱裕生,等.雷達(dá)信號處理[M].湖南:湖南科學(xué)技術(shù)出版社,,1999.
[4] ARMSTRONG J R.Chip-level modeling with VHDL,,Prentice Hall?PTR,Englewood Cliffs,,NJ,,1999.