基于FPGA嵌入式的多比特自相關(guān)器設(shè)計(jì)_第1頁
基于FPGA嵌入式的多比特自相關(guān)器設(shè)計(jì)_第2頁
基于FPGA嵌入式的多比特自相關(guān)器設(shè)計(jì)_第3頁
基于FPGA嵌入式的多比特自相關(guān)器設(shè)計(jì)_第4頁
基于FPGA嵌入式的多比特自相關(guān)器設(shè)計(jì)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于FPGA嵌入式的多比特自相關(guān)器設(shè)計(jì)基于FPGA嵌入式的多比特自相關(guān)器設(shè)計(jì)引言

確定性信號(hào)的不同時(shí)刻取值一般都具有較強(qiáng)的相關(guān)性;而干擾噪聲的隨機(jī)性較強(qiáng),其不同時(shí)刻取值的相關(guān)性較差,利用這一差異可以把確定性信號(hào)和干擾噪聲區(qū)分開來。對于疊加了噪聲的信號(hào)x(t),當(dāng)其自相關(guān)函數(shù)Rx(τ)的延時(shí)τ較大時(shí),隨機(jī)噪聲對Rx(τ)的貢獻(xiàn)很小,這時(shí)的Rx(τ)主要表現(xiàn)x(t)中包含的確定性信號(hào)的特征,例如直流分量,周期性分量的幅度和頻率等。而對于非周期性的隨機(jī)噪聲,當(dāng)延時(shí)τ較大時(shí),噪聲項(xiàng)的自相關(guān)函數(shù)趨向于零,這就從噪聲中把有用信號(hào)提取出來了。

利用FPGA強(qiáng)大的并行運(yùn)算功能和其內(nèi)核中豐富的存儲(chǔ)器資源,很容易實(shí)現(xiàn)一些在分立元器件中難以實(shí)現(xiàn)的功能,例如高速的并行乘積運(yùn)算,向存儲(chǔ)器儲(chǔ)存和調(diào)用數(shù)據(jù)等。利用這個(gè)優(yōu)勢可以將一些本來復(fù)雜的運(yùn)算和數(shù)字邏輯大大的簡化在一塊芯片之中。

SoC(SystemonChip)是20世紀(jì)90年代提出的概念,它是將多個(gè)功能模塊集成在一塊硅片上,提高芯片的集成度并減少了外設(shè)芯片的數(shù)量和相互之間在PCB上的連接,同時(shí)系統(tǒng)性能和功能都有很大的提高。隨著FPGA芯片工藝的不斷發(fā)展,設(shè)計(jì)人員在FPGA中嵌入軟核處理器成為可能,Altera和Xilinx公司相繼推出了SoPC(SystemonaProgrammableChip)的解決方案,它是指在FPGA內(nèi)部嵌入包括CPU在內(nèi)的各種IP組成一個(gè)完整的系統(tǒng),在單片F(xiàn)PGA中實(shí)現(xiàn)一個(gè)完整得系統(tǒng)功能。

與SoC相比,SoPC具有更高的靈活性,F(xiàn)PGA的可編程特性使之可以根據(jù)需要任意定制SoPC系統(tǒng);與ASIC相比,SoPC具有設(shè)計(jì)周期短,設(shè)計(jì)成本低的優(yōu)勢同時(shí)開發(fā)難度也大大降低。1相關(guān)算法的分析及系統(tǒng)總體設(shè)計(jì)

1.1相關(guān)算法

隨機(jī)信號(hào)x(t)的自相關(guān)函數(shù)Rx(t1,t2)是其在時(shí)域特性的平均度量,它反應(yīng)同一隨機(jī)噪聲x(t)在不同時(shí)刻t1和t2取值的相關(guān)程度,其定義為:

對于各態(tài)遍歷的平穩(wěn)隨機(jī)噪聲,其統(tǒng)計(jì)特征量與時(shí)間起點(diǎn)無關(guān)。令t1=t,t2=t-τ,則Rx(t1,tz)=Rx(t,t-r),簡記為Rx(τ):

在連續(xù)域中自相關(guān)函數(shù)可以用積分表示為:

在離散域中自相關(guān)函數(shù)的表現(xiàn)為數(shù)字累加和,即:

式中:N為累加平均的次數(shù);k為延時(shí)序號(hào)。因?yàn)樵贔PGA等數(shù)字器件中自相關(guān)計(jì)算都是建立在數(shù)字離散域基礎(chǔ)上的。其中x(n)與x(n-k)時(shí)間的相隔即式(2)中τ的值為采樣時(shí)間間隔△t乘以延時(shí)數(shù)k,τ=△tk,在數(shù)字離散處理系統(tǒng)中τ的取值只能為△t的整數(shù)倍。根據(jù)數(shù)字相關(guān)量化噪聲導(dǎo)致的SNR的退化比的定義:

D=模擬相關(guān)的SNR/數(shù)字相關(guān)的SNR(5)

數(shù)字相關(guān)的SNR=6.02n+1.76(dB),

n=A/D轉(zhuǎn)換器的量化位數(shù)(6)

從上式可見,在保持模擬相關(guān)的SNR參數(shù)不變的情況下,有效地提高A/D轉(zhuǎn)換器的量化位數(shù)可以很好地減小SNR的退化比。

該設(shè)計(jì)的基本算法思想是:首先將A/D(AnalogetoDigital)轉(zhuǎn)化得到的數(shù)字信號(hào)通過“乒乓”RAM進(jìn)行緩沖,然后將數(shù)據(jù)送人乘法器中進(jìn)行乘法運(yùn)算,計(jì)算得到x(n)與x(n-k)的乘積,將N次乘積送入累加器相加得到以后,乘以1/N或者除以N即可得到式(4)。其具體流程圖如圖1所示。1.2總體實(shí)現(xiàn)思路

相關(guān)算法整體設(shè)計(jì)思路如圖2所示。

FLASH芯片用于保存NiosⅡ中運(yùn)行的程序代碼和FPGA中的配置數(shù)據(jù)。在SoPCBuilder中定制NiosⅡ系統(tǒng)時(shí)集成了CFI(通用FLASH接口)控制器。這樣就可以很方便地使用FLASH芯片;SDRAM通常用于需要大量易失性存儲(chǔ)器且成本要求高的的應(yīng)用系統(tǒng)。SDRAM比較便宜,但需要實(shí)現(xiàn)刷新操作、行列管理、不同延遲和命令序列等邏輯。NiosⅡ系統(tǒng)中集成的SDRAM芯片接口能夠處理所有的SDRAM協(xié)議要求,使SDRAM的使用方便。

CLOCK時(shí)鐘模塊,通過FPGA內(nèi)部自帶的數(shù)字鎖相環(huán)將開發(fā)板上的晶振(50MHz)提供的信號(hào)分別提供給NiosⅡ處理器和外部的SDRAM作為時(shí)鐘。

Interface在該設(shè)計(jì)中為了方便地驗(yàn)證算法的正確,采用JTAG_UART接口實(shí)現(xiàn)PC和NiosⅡ系統(tǒng)之間的串行通信,通過在程序中調(diào)用相關(guān)驅(qū)動(dòng)函數(shù)傳輸數(shù)據(jù),可以在集成開發(fā)環(huán)境IDE的Console窗口中觀察到運(yùn)行數(shù)據(jù)。

A/D轉(zhuǎn)換器采用串行12位A/D轉(zhuǎn)換器ADS7822,其最高采樣率位75KS/s,將它設(shè)置為掛接在AVALON總線上的從設(shè)備,通過NiosⅡ操作系統(tǒng)發(fā)起詢問傳輸獲取數(shù)據(jù)。

鍵盤用于用戶輸入信息給處理器。

在FPGA中有著豐富的存儲(chǔ)器資源,對于驗(yàn)證的試驗(yàn)板,AItera公司提供的CycloneⅡ系列FPGA芯片EP2C20F484C8含有18752個(gè)LE(Logicelements,邏輯單元),52個(gè)嵌入式RAM模塊,35個(gè)18×18乘法器模塊,4個(gè)數(shù)字鎖相環(huán),完全能實(shí)現(xiàn)中小規(guī)模的數(shù)字信號(hào)處理運(yùn)算,在FPGA中的整體算法框圖如圖3所示。2外圍處理邏輯的設(shè)計(jì)與實(shí)現(xiàn)

2.1“乒乓”RAM的設(shè)計(jì)與實(shí)現(xiàn)

為了保持?jǐn)?shù)據(jù)處理的連續(xù)性,這里采用“乒乓”RAM數(shù)據(jù)緩沖模式,即兩組功能能相互切換且長度相同的RAM。它的工作原理是:其中一組RAM在進(jìn)行儲(chǔ)存操作時(shí);另一組RAM進(jìn)行讀取操作,并且讀取和存儲(chǔ)的速率相同,當(dāng)進(jìn)行存儲(chǔ)操作的RAM存儲(chǔ)滿,進(jìn)行讀取操作的RAM被清空時(shí)兩者被外部控制邏輯功能互換,這樣可以使兩組RAM能連續(xù)不斷地對A/D采集數(shù)據(jù)進(jìn)行緩沖處理。如圖4所示。

為了提高自相關(guān)計(jì)算的處理速度,每一組RAM均含有兩個(gè)完全相同的RAM。在存儲(chǔ)時(shí)存儲(chǔ)相同的數(shù)據(jù);在讀取數(shù)據(jù)時(shí)其中一個(gè)RAM輸入地址碼從0開始依次讀取數(shù)據(jù)形成序列x(n),另一個(gè)RAM在輸入地址碼加上k后讀取數(shù)據(jù)形成序列x(n-k),然后將兩列數(shù)列送人乘法器中進(jìn)行運(yùn)算完成自相關(guān)運(yùn)算。這樣雖然犧牲了FPGA中的存儲(chǔ)空間,但是較之于單RAM分時(shí)讀取數(shù)據(jù)的操作方式,提高了運(yùn)算速率(減少2個(gè)總線讀取周期)。如圖5所示。

從式(4)可以看出:存儲(chǔ)器輸出的第一個(gè)數(shù)據(jù)為第一個(gè)記錄數(shù)據(jù)往后延遲k個(gè)記錄數(shù)據(jù)。這樣就會(huì)出現(xiàn)一個(gè)問題:在RAM中記錄的所有數(shù)據(jù)不能都用于自相關(guān)計(jì)算,當(dāng)RAM1_2讀取到倒數(shù)第N-1-k個(gè)數(shù)據(jù)時(shí),RAM1_1的數(shù)據(jù)已經(jīng)讀取完畢,再進(jìn)行計(jì)算均為無效數(shù)據(jù)(見表1)。從表1中可以看出:在存儲(chǔ)器中存儲(chǔ)的N個(gè)數(shù)值中僅有N-1-k個(gè)數(shù)據(jù)進(jìn)行了自相關(guān)運(yùn)算,超出這個(gè)范圍的數(shù)據(jù)應(yīng)視為無效數(shù)據(jù)被舍棄。因此如果N的長度過短或者k的數(shù)值過大,存儲(chǔ)器中的數(shù)據(jù)將有相當(dāng)一部分?jǐn)?shù)據(jù)被舍棄,并且隨著k值的增加被舍棄的數(shù)據(jù)量將在整個(gè)存儲(chǔ)數(shù)據(jù)量中的比例越來越大;但是由于信號(hào)的自相關(guān)性隨著延遲k增加而降低,在做自相關(guān)運(yùn)算時(shí)一般采用較小的k值。為此,如果采用較大的RAM存儲(chǔ)器和較小的k值,在一組存儲(chǔ)數(shù)據(jù)中舍棄的數(shù)據(jù)其實(shí)是占比例很小的。例如在k=3的情況下,即延時(shí)為3個(gè)A/D轉(zhuǎn)換周期,CyclmleⅡFPGA中存儲(chǔ)器的最大存儲(chǔ)長度為65536個(gè)8b存儲(chǔ)單元,舍棄記錄數(shù)據(jù)為3個(gè)8b,舍棄數(shù)據(jù)量僅占存儲(chǔ)數(shù)據(jù)量的0.004%,在自相關(guān)處理時(shí)是能夠接受的。如圖6所示。

2.2累加器及1/N相乘單元實(shí)現(xiàn):

如果使用2的N階次冪數(shù)據(jù)用作自相關(guān)計(jì)算,在二進(jìn)制下可以通過向右移位N個(gè)bit位實(shí)現(xiàn)除法功能。在設(shè)計(jì)中采用了2×16個(gè)采樣數(shù)據(jù)組成的數(shù)組完成自相關(guān)計(jì)算,其算法具體流程圖如圖7所示。3微處理器的設(shè)計(jì)實(shí)現(xiàn)

嵌入式微處理器的設(shè)計(jì)包括3個(gè)部分:利用SoPCBuilder定制的軟核CPU,在QuartusII環(huán)境下設(shè)計(jì)的電路和NiosII編程。

NiosII的軟件編程主要基于嵌入式操作系統(tǒng)μC/OS-Ⅱ。μC/OS-Ⅱ是一個(gè)完整的、可移植、固化和剪裁的占先式實(shí)時(shí)多任務(wù)核(Kernel)。從1992年發(fā)布至今,μC/OS-II已經(jīng)有上百個(gè)的商業(yè)應(yīng)用案例,在40多種處理器上成功移植。其中Altera提供對μC/OS-II的完整支持,非常容易使用。

μC/OS—II提供以下系統(tǒng)服務(wù):任務(wù)管理(TaskManagement);事件標(biāo)志(EventFlag);消息傳遞(Mes-sagePassing);內(nèi)存管理(MemoryManagement);信號(hào)量(Semaphores);時(shí)間管理(TimeManagement)。在應(yīng)用程序中,用戶可以方便地使用這些系統(tǒng)調(diào)用實(shí)現(xiàn)目標(biāo)功能。

在該設(shè)計(jì)中,建立了一個(gè)主任務(wù)和兩個(gè)子任務(wù)(任務(wù)1,任務(wù)2):主任務(wù)主要是負(fù)責(zé)啟動(dòng)子任務(wù);任務(wù)1主要負(fù)責(zé)數(shù)據(jù)的采集和采集數(shù)據(jù)的存儲(chǔ),任務(wù)2主要負(fù)責(zé)調(diào)用存儲(chǔ)器中存儲(chǔ)的采集數(shù)據(jù)控制外圍計(jì)算模塊進(jìn)行自相關(guān)計(jì)算??傮w軟件算法流程圖如圖8所示。圖9為由SoPC實(shí)現(xiàn)的NiosII處理器圖。

在NiosII系統(tǒng)中,首先,通過main()主函數(shù)調(diào)用OSTaskCreateExt()函數(shù)創(chuàng)建任務(wù)1,即數(shù)據(jù)采集任務(wù)。

由于AD7822作為AVALON的從外設(shè)掛接在了AVALON總線上,通過在任務(wù)1中通過調(diào)用IORD_16DIRECT()端口查詢函數(shù)實(shí)時(shí)發(fā)起A從端口傳輸啟動(dòng)AD7822,獲取采集數(shù)據(jù),然后使能外圍RAM的wren端口存儲(chǔ)。當(dāng)存儲(chǔ)到該設(shè)計(jì)中存儲(chǔ)器長度的數(shù)據(jù)以后,通過“尾觸發(fā)”方式啟動(dòng)任務(wù)2,即自相關(guān)計(jì)算任務(wù),并且調(diào)用延遲函數(shù)OSTimeDlyHMSM(),交出CPU的使用權(quán)。程序要點(diǎn)如下:

在任務(wù)2中,首先關(guān)閉兩個(gè)存儲(chǔ)器的寫入使能,使之只能讀出數(shù)據(jù);然后輸出相應(yīng)的兩個(gè)地址碼:兩個(gè)地址碼之間有相對k的延時(shí),并且同時(shí)使能18×18乘法器,累加器及1/N相乘單元,當(dāng)循環(huán)完成后,自動(dòng)刪除任務(wù)2,交CPU使用權(quán)給數(shù)據(jù)采集任務(wù)。程序要點(diǎn)如下:

4結(jié)語

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論