• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于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)式展開(kāi)或近似的方法漸漸不能適應(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ǔ)言,省去了代碼的繁雜編寫(xiě)任務(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] 門(mén)愛(ài)東,楊波,全子一.數(shù)字信號(hào)處理[ M] .北京:人民郵電出版社, 2003.

      [ 2] 胡廣書(shū).現(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)廢汽車(chē)拆解半自動(dòng)流水線研究
      圖像壓縮感知在分?jǐn)?shù)階Fourier域、分?jǐn)?shù)階余弦域的性能比較
      用于時(shí)間延遲積分型圖像傳感器的流水采樣列級(jí)運(yùn)放共享累加器*
      克山县| 沁阳市| 通江县| 峡江县| 黑龙江省| 温州市| 正宁县| 和政县| 囊谦县| 横峰县| 斗六市| 普定县| 扶余县| 临城县| 衡山县| 灌云县| 祁东县| 宁武县| 乐清市| 博客| 岱山县| 晋州市| 故城县| 长岛县| 万源市| 罗城| 瑞丽市| 和顺县| 宜昌市| 鄯善县| 那曲县| 罗田县| 册亨县| 高碑店市| 突泉县| 刚察县| 桂平市| 浑源县| 山西省| 龙里县| 洪湖市|