<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 一種DDS的優(yōu)化設計

一種DDS的優(yōu)化設計

作者: 時(shí)間:2011-08-26 來(lái)源:網(wǎng)絡(luò ) 收藏

在高可靠應用領(lǐng)域,如果設計得當,將不會(huì )存在類(lèi)似于MCU的復位不可靠和PC可能跑飛等問(wèn)題。CPLD/FPGA的高可靠性還表現在,幾乎可將整個(gè)系統下載于同一芯片中,實(shí)現所謂片上系統,從而大大縮小了體積,易于管理和屏蔽。所以,本文將在對的基本原理進(jìn)行深入理解的基礎上,采用多級流水線(xiàn)控制技術(shù)對的VHDL語(yǔ)言實(shí)現進(jìn)行優(yōu)化,同時(shí)考慮到系統設計中的異步接口的同步化設計問(wèn)題,把該設計適配到Xilinx公司的最新90nm工藝的Spartan3E系列的FPGA中。

本文引用地址:http://dyxdggzs.com/article/187371.htm

  1 基本原理及工作過(guò)程

  一個(gè)基本的DDS由相位累加器、波形存儲器ROM、D/A轉換器和低通濾波器組成,如圖1所示。

  

DDS基本組成模塊

  在圖1中,fc為時(shí)鐘頻率,K為頻率控制字(N位),m為ROM地址線(xiàn)位數,n為ROM數據線(xiàn)寬度(一般也為D/A轉換器的位數),f0為輸出頻率。DDS的基本工作過(guò)程如下:每來(lái)一個(gè)時(shí)鐘脈沖fc,加法器將頻率控制字K與累加寄存器輸出的累加相位數據相加,把相加后的結果送至累加寄存器的數據輸入端。其中相位累加器由N位加法器與N位累加寄存器級聯(lián)構成,累加寄存器將加法器在上一個(gè)時(shí)鐘脈沖作用后所產(chǎn)生的新相位數據反饋到加法器的輸入端,以使加法器在下一個(gè)時(shí)鐘脈沖的作用下繼續與頻率控制字相加。這樣,相位累加器在時(shí)鐘作用下,不斷對頻率控制字進(jìn)行線(xiàn)性相位累加。由此可見(jiàn),相位累加器在每一個(gè)時(shí)鐘脈沖輸入時(shí),把頻率控制字累加一次,相位累加器輸出的數據就是合成信號的相位,相位累加器的溢出頻率就是DDS輸出的信號頻率。用相位累加器輸出的數據作為波形存儲器ROM的相位取樣地址,可把存儲在波形存儲器內的波形抽樣值(二進(jìn)制編碼)經(jīng)查找表查出,完成相位到幅值轉換。波形存儲器的輸出送到D/A轉換器,D/A轉換器將數字量形式的波形幅值轉換成所要求合成頻率的模擬量形式信號,由低通濾波器濾除雜散波和諧波以后,輸出一個(gè)頻率為f0的正弦波。輸出頻率f0與時(shí)鐘頻率fc之間的關(guān)系滿(mǎn)足下式:

  

  由式(1)可見(jiàn),輸出頻率f0由fc和K共同決定,保持時(shí)鐘頻率一定,改變一次K值,即可合成一個(gè)新頻率的正弦波。DDS的最小輸出頻率(頻率分辨率)△f可由方程△f=f0/2N確定??梢?jiàn),頻率分辨率在fc固定時(shí),取決于相位累加器的位數N。只要N足夠大,理論上就可以獲得足夠高的頻率分辨精度。另外,由采樣定理,合成信號的頻率不能超過(guò)時(shí)鐘頻率的一半,即f0≤f0/2,因此頻率控制值的最大值Kmax應滿(mǎn)足Kmax≤2N-1。

  2 DDS的與實(shí)現

  采用VHDL硬件描述語(yǔ)言實(shí)現整個(gè)電路,不僅利于設計文檔的管理,而且方便了設計的修改和擴充,還可以實(shí)現在不同FPGA器件[4]之間的移植。以下采用VHDL語(yǔ)言,探討對FPGA實(shí)現DDS電路的三點(diǎn)優(yōu)化方法。

  2.1 流水線(xiàn)累加器

  在用FPGA設計DDS電路時(shí),相位累加器是決定DDS電路性能的一個(gè)關(guān)鍵部分。為使輸出波形具有較高的分辨率,本系統采用32位累加器。但若直接用32位加法器構成累加器,則加法器的延時(shí)會(huì )大大限制累加器的操作速度。因此,這里引入了流水線(xiàn)算法,即采用4個(gè)8位累加器級聯(lián)結構,每級用一個(gè)8位累加器實(shí)現該部分相位相加,然后將進(jìn)位值傳給下一級做進(jìn)一步累加。這樣可大幅提高系統的工作速度。但由于累加器是一個(gè)閉環(huán)反饋電路,因此必須使用寄存器,以保證系統的同步、準確運行。具體實(shí)現如圖2所示。

  

流水累加器原理

  2.2 相位/幅度轉換電路

  相位/幅度轉換電路是DDS電路中的另一個(gè)關(guān)鍵部分,設計中面臨的主要問(wèn)題就是資源的開(kāi)銷(xiāo)。該電路通常采用ROM結構,相位累加器的輸出是一種數字式鋸齒波,通過(guò)取它的若干位作為ROM的地址輸入,而后通過(guò)查表和運算,ROM就能輸出所需波形的量化數據??紤]到正弦函數的對稱(chēng)性:在[0,2π]內,正弦函數關(guān)于x=π成奇對稱(chēng),在[0,π]內,關(guān)于x=π/2成軸對稱(chēng)。因此,在正弦查找表中只須存儲相位在[0,π/2]的函數值。這樣,通過(guò)一個(gè)正弦碼表的前1/4周期就可以變換得到整個(gè)周期碼表,節省了近3/4的資源,非??捎^(guān)。具體實(shí)現如表1所示,為節省ROM資源,取相位累加器輸出的高8位做為ROM的輸入地址,其中最高位(MSB)控制對輸出信號符號的處理,次高位(MSB-1)控制對輸入地址的處理。

  


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: DDS 優(yōu)化設計

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>