国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于System Generator的CORDIC算法DDS的FPGA實(shí)現(xiàn)

2010-12-21 06:27:34夏少峰黃世震
電子器件 2010年1期
關(guān)鍵詞:累加器余弦流水線

夏少峰,黃世震

(福州大學(xué)物理與信息工程學(xué)院,福州 350002)

在現(xiàn)代數(shù)字信號(hào)處理中,特別是在通信、雷達(dá)和導(dǎo)航等系統(tǒng)中高精度的DDS有著廣泛的應(yīng)用。近年來(lái)隨著電子技術(shù)的迅速發(fā)展,傳統(tǒng)的查表、多項(xiàng)式展開或近似的方法漸漸不能適應(yīng)現(xiàn)代電子系統(tǒng)在速度、精度、簡(jiǎn)單性和高效實(shí)現(xiàn)方面的綜合要求,而用CORDIC算法實(shí)現(xiàn)的DDS系統(tǒng)則能很好的兼顧這些方面,由于該算法僅涉及移位與加減運(yùn)算,便于軟硬件實(shí)現(xiàn)。因而受到了人們的廣泛關(guān)注。目前該算法已經(jīng)應(yīng)用到FFT、DCT、DWT、DDFS以及極化調(diào)制等諸多領(lǐng)域。

本文先介紹DDS的原理,然后再?gòu)腃ORDIC算法的基本原理出發(fā),論述了其流水線結(jié)構(gòu)的FPGA實(shí)現(xiàn)的具體方法及其system generator模型,文中的模型經(jīng)ISE編譯并經(jīng)過(guò)modelsim驗(yàn)證通過(guò),仿真結(jié)果表明文中的設(shè)計(jì)方法是完全可行的,且運(yùn)算結(jié)果具有較高的精度。

1 DDS原理

DDS一般由相位累加器、相幅轉(zhuǎn)換器組成。具體工作原理為:相位累加器在時(shí)鐘控制下以頻率控制字為步長(zhǎng)進(jìn)行累加,累加的結(jié)果經(jīng)過(guò)量化處理后送入相幅轉(zhuǎn)換器輸出為正弦和余弦波形。 DDS的輸出頻率為F=FcwFclk/2N,頻率分辨率Δf=Fclk/2N,其中Fcw為頻率控制字, Fclk為系統(tǒng)時(shí)鐘頻率, N為頻率控制字的字長(zhǎng)。

傳統(tǒng)的相幅轉(zhuǎn)換器采用查找表結(jié)構(gòu),為了達(dá)到高分辨率和較高的頻譜程度, Fcw一般取值較大,本文的頻率控制字為32位,如果存儲(chǔ)全部的正、余弦值,需要大量的ROM資源,這在實(shí)際應(yīng)用是不現(xiàn)實(shí)的。而采用CORDIC算法代替查找表結(jié)構(gòu)的相幅轉(zhuǎn)換器既能滿足高精度、高分辨率、實(shí)時(shí)運(yùn)算的要求,又減少了ROM資源,是一種好的實(shí)現(xiàn)方法。

2 CORDIC算法原理

CORDIC算法主要用于三角函數(shù)、對(duì)數(shù)、指數(shù)函數(shù)的計(jì)算。它的工作模式分為圓周模式和矢量模式。 DDS產(chǎn)生的正、余弦信號(hào)主要采用圓周模式。具體原理如下:初始向量A(xi, yi)依據(jù)一定的角度序列順時(shí)針或逆時(shí)針旋轉(zhuǎn), 逐漸逼近目標(biāo)角度B(xi+1, yi+1)。假設(shè)旋轉(zhuǎn)N次,每次的旋轉(zhuǎn)角度為θi,則第i次的旋轉(zhuǎn)公式表示為:

經(jīng)過(guò)約定tanθ=2-i,即θi=arctan2-i,提出cosθi后di決定了旋轉(zhuǎn)方向, di=+1表示按順時(shí)針?lè)较蛐D(zhuǎn), di=-1表示按逆時(shí)針?lè)较蛐D(zhuǎn),其中di的數(shù)值由zi的符號(hào)位決定,在高速數(shù)字信號(hào)迭代結(jié)果后乘以模矯正因子:

3 DDS系統(tǒng)的設(shè)計(jì)

對(duì)于一個(gè)數(shù)字系統(tǒng),系統(tǒng)的運(yùn)算速度已經(jīng)成為衡量系統(tǒng)性能的一個(gè)重要指標(biāo)。而采用流水線設(shè)計(jì)是提高其運(yùn)算速度的有效方法。流水線設(shè)計(jì)方法的基本思想是將一個(gè)完整的操作分成若干個(gè)時(shí)間上均衡的分段操作,從流水線的起點(diǎn)連續(xù)地輸入,流水線的各操作段以重疊方式執(zhí)行。這使得操作執(zhí)行速度只與流水線輸入的速度有關(guān),而與處理所需的時(shí)間無(wú)關(guān)。這樣,在理想的流水操作狀態(tài)下其運(yùn)行效率很高。

3.1 相位累加器設(shè)計(jì)

相位累加器由32位加法器和寄存器組成,其中又加入了抖動(dòng)電路,如圖1所示。因?yàn)橄辔唤財(cái)嘟o輸出信號(hào)引入了周期性的雜散,因此設(shè)法破壞雜散的周期性及其與信號(hào)的相關(guān)性,可以有效地抑制相位截?cái)鄮?lái)的誤差。抖動(dòng)注入能打破相位截?cái)嗾`差的周期性,采用抖動(dòng)注入后的雜散抑制可達(dá)到與增加2 bit相位尋址相同的效果。在每次累加器溢出時(shí),產(chǎn)生一個(gè)隨機(jī)整數(shù)加到累加器上,使相位累加器的溢出隨機(jī)性的提前,從而打破周期性,抑制了雜散。

圖1 相位累加器

3.2 相幅轉(zhuǎn)換器設(shè)計(jì)和輸出

相幅轉(zhuǎn)換器設(shè)計(jì)采用圖2所示的結(jié)構(gòu), 截位器truncate截取相位累加器累加后結(jié)果的高16位,作為相幅轉(zhuǎn)換器的相位輸入。

圖2 相幅截位器

由于 CORDIC算法所能覆蓋的角度范圍為[ -99.8°, +99.8°],為了能夠達(dá)到[ -180°, +180°]角度的全覆蓋,本module采用分象限法來(lái)解決角度覆蓋問(wèn)題。文中采用兩個(gè)truncate模塊來(lái)實(shí)現(xiàn)角度的轉(zhuǎn)換,即在16位相位輸入中用truncate1來(lái)截取高2位作為輸出波形的相位控制信號(hào)。用truncate4截取低14位用來(lái)代表第一象限的[0°, 90°]。通過(guò)分析控制信號(hào)與三角函數(shù)之間的關(guān)系,來(lái)控制輸出角度范圍在[ -180°, +180°]內(nèi)。另外由于CORDIC算法采用了流水線結(jié)構(gòu),導(dǎo)致了16(圖中18表示還有實(shí)現(xiàn)因子k所引入的兩個(gè)時(shí)鐘延時(shí))個(gè)時(shí)鐘周期的延時(shí),為了保證控制信號(hào)能夠與CORDIC運(yùn)算器輸出同步,在控制器后插入了一個(gè)18個(gè)時(shí)鐘周期的延時(shí)單元。通過(guò)延時(shí)后的兩個(gè)控制信號(hào)控制輸出完整的正、余弦波形。具體的控制邏輯電路如圖3所示。

圖3 輸出轉(zhuǎn)換器

3.3 CORDIC運(yùn)算器設(shè)計(jì)

CORDIC運(yùn)算器設(shè)計(jì)采用圖4所示結(jié)構(gòu), 圖4上部是16階中的第2階,由于CORDIC算法中每一次的迭代公式都一樣,所以其他16階結(jié)構(gòu)是完全相同,且只有移位和加/減運(yùn)算,易于采用流水線技術(shù)來(lái)提高其運(yùn)算速度。其中加減法器上所加的寄存器即是用來(lái)實(shí)現(xiàn)流水線操作的。圖4下部為迭代次數(shù)N=16時(shí)的全流水線結(jié)構(gòu)。

設(shè)定初始向量X0=1?215、Y0=0、Z0=θ,經(jīng)過(guò)N次迭代后, Xn=cosθ、Yn=sinθ、Zn=0。 (cordic_gain實(shí)現(xiàn)乘模矯正因子功能)CORDIC運(yùn)算器輸入角度范圍為[0°, 90°], 輸出為該角度范圍內(nèi)的正、余弦波形。

圖4 CORDIC運(yùn)算器設(shè)計(jì)

4 仿真驗(yàn)證

本仿真環(huán)境是matlab7.5.0 的simulink通信仿真工具箱。用matlab集成工具sptool查得輸出正旋波的頻域結(jié)果如圖5所示,從圖5 中可以看到此方法完全實(shí)現(xiàn)了所需的正旋波,并且cordic產(chǎn)生的正弦信號(hào)的無(wú)雜散動(dòng)態(tài)范圍SFDR(無(wú)雜散動(dòng)態(tài)范圍)約為-83 db。

圖5 頻域仿真結(jié)果

另外用matlab集成工具system generator直接生成verilog代碼并在modelsim中進(jìn)行仿真,得到的局部仿真結(jié)果如圖6所示。從結(jié)果可以看出,成功的用system generator工具實(shí)現(xiàn)了cordic算法的dds發(fā)生器。

圖6 modelsim仿真結(jié)果

5 結(jié)語(yǔ)

文中介紹了一種新型的算法級(jí)的FPGA設(shè)計(jì)方法,并成功的利用system generator完成了cordic算法的DDS設(shè)計(jì),給出了詳細(xì)的設(shè)計(jì)過(guò)程,而且對(duì)數(shù)字部分進(jìn)行了仿真。這種方法的優(yōu)點(diǎn)在于它可以從系統(tǒng)框圖(模型)直接轉(zhuǎn)化成HDL語(yǔ)言,省去了代碼的繁雜編寫任務(wù),實(shí)現(xiàn)了系統(tǒng)的快速設(shè)計(jì)。

本文作者創(chuàng)新點(diǎn),加入了兩個(gè)關(guān)鍵技術(shù):抖動(dòng)注入和1/4象限旋轉(zhuǎn)覆蓋,此方法既提高了輸出信號(hào)的SFDR,又節(jié)省了硬件資源。

[ 1] 門愛東,楊波,全子一.數(shù)字信號(hào)處理[ M] .北京:人民郵電出版社, 2003.

[ 2] 胡廣書.現(xiàn)代信號(hào)處理教程[ M] .北京:清華大學(xué)出版社, 2004.

[ 3] 張雅綺,李鏘譯.(美)Michael D Ciletti著.Verilog HDL高級(jí)數(shù)字設(shè)計(jì)[ M] .北京:電子工業(yè)出版社, 2005.

[ 4] 田耕,徐文波,張延偉.無(wú)線通信FPGA設(shè)計(jì)[ M] .北京:電子工業(yè)出版社, 2008.

[ 5] Volder J.The CORDIC Computing Technique[ J] .IRE Trans.Comput., Sept.1959.

[ 6] Despain A M.Fourier Tansform Computers Using CORDIC Iterations[ J] .IEEE Trans.Comput., May 1984.

[ 7] Ercegovac M D, Lang T.Implementation of Fast Angle Calculation and Rotation Using Online Cordic[ C] //Proc.ISCAS' 88, 2703-2706.

猜你喜歡
累加器余弦流水線
Gen Z Migrant Workers Are Leaving the Assembly Line
密碼累加器研究進(jìn)展及應(yīng)用
流水線
Fpga的信號(hào)發(fā)生器設(shè)計(jì)原理
兩個(gè)含余弦函數(shù)的三角母不等式及其推論
基于霍夫變換的工位點(diǎn)識(shí)別算法設(shè)計(jì)與實(shí)現(xiàn)
分?jǐn)?shù)階余弦變換的卷積定理
報(bào)廢汽車拆解半自動(dòng)流水線研究
圖像壓縮感知在分?jǐn)?shù)階Fourier域、分?jǐn)?shù)階余弦域的性能比較
用于時(shí)間延遲積分型圖像傳感器的流水采樣列級(jí)運(yùn)放共享累加器*
建平县| 仪征市| 屏山县| 凤冈县| 浙江省| 安达市| 梁平县| 黄龙县| 青冈县| 福建省| 都昌县| 六枝特区| 东台市| 鹤壁市| 台南市| 临清市| 吉安市| 扬中市| 张家口市| 通化县| 嵩明县| 滨海县| 亚东县| 邵阳县| 江阴市| 布尔津县| 沾益县| 诏安县| 晴隆县| 宝丰县| 望谟县| 康保县| 竹溪县| 辽宁省| 湖南省| 榆树市| 兴安县| 五家渠市| 万全县| 方正县| 三门县|