亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Verilog HDL的DDS設(shè)計與仿真

        2008-04-12 00:00:00李春劍吉望西劉達倫
        現(xiàn)代電子技術(shù) 2008年20期

        摘 要:詳細闡述利用QuartusⅡ?qū)崿F(xiàn)DDS(直接數(shù)字頻率合成器)模塊的方法和步驟。首先分析DDS的設(shè)計原理,并對其進行系統(tǒng)建模,利用Verilog HDL實現(xiàn)設(shè)計并在開發(fā)環(huán)境下進行功能仿真,選用現(xiàn)場可編程器件FPGA作為目標器件,得到可以重構(gòu)的IP核,其可以很方便地實現(xiàn)復(fù)雜的調(diào)頻、調(diào)相和調(diào)幅功能。利用該方法實現(xiàn)的DDS模塊具有更廣泛的實際意義和更良好的實用性。

        關(guān)鍵詞:直接數(shù)字頻率合成器;現(xiàn)場可編程門陣列;Verilog HDL;Quartus Ⅱ;IP核

        中圖分類號:TN77文獻標識碼:B

        文章編號:1004373X(2008)2001503

        Design and Simulation of DDS Based on Verilog HDL

        LI Chunjian,JI Wangxi,LIU Dalun

        (National Institute of Metrology,Beijing,100013,China)

        Abstract:The method and steps of realization of DDS(Direct Digital Synthesizer)on Quartus II is described in detail.This paper analyzes the principle of DDS,builds up a system model,realizes DDS module based on Verilog HDL and simulates it.The IP nucleus of DDS which is built can be reframed.It is very easy to achieve frequency modulation,phase modulation and amplitude modulation with the DDS module.It has more comprehensive and nice practicality.

        Keywords:direct digital synthesizer;FPGA;Verilog HDL;Quartus II;IP nucleus

        直接數(shù)字頻率合成技術(shù)(Direct Digital Synthesize,DDS)是繼直接頻率合成技術(shù)和鎖相式頻率合成技術(shù)之后的第三代頻率合成技術(shù)[1]。它采用全數(shù)字技術(shù),并從相位角度出發(fā)進行頻率合成。隨著微電子技術(shù)和數(shù)字集成電路的飛速發(fā)展,以及電子工程領(lǐng)域的實際需要,DDS日益顯露出優(yōu)于傳統(tǒng)頻率合成技術(shù)的一些性能,高分辨率、極短的頻率切換時間、相位噪聲低、便于集成等,逐步成為現(xiàn)代頻率合成技術(shù)中的佼佼者。

        目前,DDS的設(shè)計大多是應(yīng)用HDL(Hardware Description Language)對其進行邏輯描述。整個設(shè)計可以很容易地實現(xiàn)參數(shù)改變和設(shè)計移植,給設(shè)計者帶來很大的方便。Verilog HDL就是其中一種標準化的硬件描述語言,它不僅可以進行功能描述,還可以對仿真測試矢量進行設(shè)計。Altera公司開發(fā)的QuartusⅡ設(shè)計軟件,提供了Verilog HDL的設(shè)計界面以及編譯平臺,并且該公司還集成了可供程序下載的FPGA器件CYCLONE Ⅱ系列芯片,這樣大大縮短了DDS的設(shè)計周期。

        1 DDS的設(shè)計原理

        DDS的原理圖如圖1所示。DDS實現(xiàn)頻率合成主要是通過查表的方式進行的[2]。

        正弦查詢表是一個只讀存儲器(ROM),以相位為地址,存有1個或多個按0o~360o相位劃分幅值的正弦波幅度信息。相位累加器對頻率控制字進行累加運算,若需要還可以加入相位控制字,得到的結(jié)果作為正弦波查詢表的地址。正弦查詢表的輸出為數(shù)字化正弦幅度值,通過D/A轉(zhuǎn)換器轉(zhuǎn)化為近似正弦波的階梯波,再通過低通濾波器濾除高頻成分和噪聲最終得到一個純正度很高的正弦波。

        1.1 建模

        如圖2所示正弦波y=sin(2πx),若以f量化的量化頻率對其幅度值進行量化,一個周期可以得到M=f量化個幅度值。將這些幅度值按順序存入到ROM。相位累加器在參考時鐘的驅(qū)動下,每來1個脈沖,輸出就會增加1個步長相位增量X,輸出數(shù)據(jù)作為地址送入ROM中,讀出對應(yīng)的幅度值形成相應(yīng)的波形。

        1.2 參數(shù)設(shè)定

        DDS輸出信號頻率:

        fo=fc×X/2N

        其中,X為頻率累加器設(shè)定值;N為相位累加器位數(shù);fc為參考時鐘頻率。

        例如,假定基準時鐘為200 MHz,累加器的位數(shù)為32,頻率控制字X為:

        0x08000000H,即為227,則:

        fo=200×227/232=6.25 MHz

        再設(shè)定頻率控制字X為0x80000000H,即為231,則:

        fo=200×231/232=100 MHz

        可見,理論上通過設(shè)定DDS相位累加器位數(shù)N、頻率控制字X和基準時鐘fc的值,就可以得到任一頻率的輸出[3]

        頻率分辨率為:fres=fc/2N,由參考時鐘和累加器的位數(shù)決定,當參考時鐘的頻率越高,相位累加器的位數(shù)越高,所得到的頻率分辨率就越高。

        1.3 方案的選擇

        在利用FPGA制作DDS時,相位累加器是決定DDS性能的一個關(guān)鍵部分[3]。一方面可以利用進位鏈來實現(xiàn)快速、高效的電路結(jié)構(gòu),同時長的進位鏈會減少其他邏輯的布線資源,限制整個系統(tǒng)速度的提高;另一方面可以利用流水線技術(shù)提高工作頻率,但系統(tǒng)頻率轉(zhuǎn)換速度會相對降低。在選擇累加器實現(xiàn)方案時需要綜合考慮。

        正弦波查詢表ROM也是制作的重點。在FPGA中ROM 表的尺寸隨著地址位數(shù)或數(shù)據(jù)位數(shù)的增加呈指數(shù)遞增,如何在滿足性能的前提下節(jié)省資源開銷。一方面通過相位累加器的輸出截斷方式,例如從32位的相位累加器結(jié)果中提取高16位作為ROM的查詢地址,由此而產(chǎn)生的誤差會對頻譜純度有影響,但是對波形的精度的影響是可以忽略的;另一方面可以根據(jù)信號周期對稱性來壓縮ROM的尺寸,這時系統(tǒng)硬件設(shè)計復(fù)雜度會有所增加。因此,需要選取合適的參數(shù)和ROM壓縮技術(shù),在滿足系統(tǒng)性能的前提下使得系統(tǒng)盡量優(yōu)化。

        2 Verilog HDL實現(xiàn)DDS模塊

        2.1 相位累加器

        module acc(aclr,clock,dataa,datab,result);

        inputaclr,clock;//輸入輸出端口說明

        input[31:0] dataa,datab;

        output[31:0] result;

        reg[31:0] result;

        reg[31:0] A;

        always@(posedge clock or posedge aclr)//功能實現(xiàn)

        begin

        if (aclr)

        result=0;

        else

        begin

        A=dataa+A;

        result=A+datab;

        end

        end

        endmodule

        上述為相位累加器的Verilog HDL功能實現(xiàn),其中數(shù)據(jù)寬度為32位。同時利用Quartus Ⅱ進行波形仿真見圖3。對應(yīng)的模塊符號見圖4。

        2.2 ROM正弦查詢表

        根據(jù)DDS的原理,將正弦波形的量化數(shù)據(jù)存儲于波形查詢表ROM中,即可完成正弦波發(fā)生的功能[4]。Altera公司提供了LPM ROM(ROM兆函數(shù)),這里只需借助Matlab生成.mif文件,并加載到LPM ROM中即可得到所需的正弦查詢表ROM。

        在Matlab中,運行下面的語句可以得到儲存正弦波數(shù)字幅度值的.mif文件。例如產(chǎn)生214×12 b的正弦波0~2π幅度值,語句如下:

        >>x=0:1:16383;

        >>y=round(1000*sin(2*pi*x/16383))+1000;

        >>a=[x;y];

        >>fid=fopen(′rom.mif′,′w′);

        >>fprintf(fid,′%d:%d;\\\′,a);

        >>fclose(fid);

        由此而生成的rom.mif文件內(nèi)容是正弦波0~2π數(shù)字幅度值,但是格式不符合.mif文件的格式,需要對其進行修改。.mif文件的格式如下:

        WIDTH=12;

        DEPTH=16384;

        ADDRESS_RADIX=DEC;

        DATA_RADIX=DEC;

        CONTENT BEGIN

        …7646:1208;…

        END

        這樣通過例化LPM ROM得到了正弦波查詢表ROM的模塊,地址寬度為14位,輸出數(shù)據(jù)為12位。模塊符號見圖5。

        2.3 DDS頂層模塊的實現(xiàn)

        module dds(clear,clk200,freq,phase,A,sinout);

        input clear,clk200;

        input [31:0] freq,phase;

        output [31:0] A;

        output [11:0] sinout;

        reg [31:0] A;

        wire[13:0] address;//內(nèi)部信號的定義

        assign address=A[31:18];

        acc u0(.clock(clk200),.aclr(clear),.dataa(freq),

        .datab(phase),.result(A));//相位累加器模塊的例化

        sinromu1(.clock(clk200),.address(address),.q(sinout));

        //正弦查詢表模塊例化

        endmodule

        上述代碼為DDS模塊的Verilog HDL頂層文件。對應(yīng)的模塊圖見圖6。

        若需要利用NIOS Ⅱ?qū)ζ溥M行控制,需要并將DDS模塊加載到NIOS Ⅱ的系統(tǒng)中。例如,通過NIOS Ⅱ為DDS模塊的頻率控制字freq和相位控制字phase置數(shù)。此時DDS的代碼應(yīng)改為:

        module dds(clear,clk200,idata,iwr,iclk,addr,A,sinout);

        input clear,clk200,iclk,iwr,addr;

        input [31:0] idata;

        output [31:0] A;

        output [11:0] sinout;

        reg [31:0] freq,phase,A;

        wire[13:0] address;

        always@(posedge iclk)

        begin

        if(iwr)

        case(addr)

        1'b0:freq=idata;

        1'b1:phase=idata;

        endcase

        end

        assign address=A[31:18];

        acc u0(.clock(clk200),.aclr(clear),.dataa(freq),

        .datab(phase),.result(A));

        sinromu1(.clock(clk200),.address(address),.q(sinout));

        endmodule

        模塊的輸入端口添加了寫信號iwr、地址信號addr和與NIOS Ⅱ同步的時鐘信號iclk,這樣是為了將DDS模塊連接到Avalon總線上,利用總線和NIOS Ⅱ進行通信。

        加載到NIOS Ⅱ系統(tǒng)之前,需要將該模塊進行仿真和調(diào)試。仿真結(jié)果如圖7所示。

        至此DDS的數(shù)字部分已經(jīng)完成。

        對于整個模塊的驅(qū)動時鐘,若時鐘源器件的頻率不符合實際需要,需要再設(shè)計一個倍(分)頻器將其倍頻或是分頻。例如現(xiàn)有時鐘源為50MHz,可以使用FPGA中的PLL(鎖相環(huán))實現(xiàn)4倍頻得到200 MHz。

        參考文獻

        [1]羅韓君,林亞風,吳伶錫.一種基于DDS技術(shù)的新型激光測距系統(tǒng)的設(shè)計[J].現(xiàn)代電子技術(shù),2005,28(17 ):42-44.

        [2]鐘蔚杰,蔣壘,劉耀應(yīng).基于VHDL編程的DDS設(shè)計\\.艦船電子對抗,2007,30(2):102-105.

        [3]周俊峰,陳濤.基于FPGA的直接數(shù)字頻率合成器的設(shè)計和實現(xiàn)\\.電子技術(shù)應(yīng)用,2002,28(8):34-36.

        [4]李威.FPGA/DDS的諧波信號發(fā)生器的研究與設(shè)計\\.南京:河海大學,2007.

        [5]夏雨聞.Verilog數(shù)字系統(tǒng)設(shè)計教程\\.北京:北京航空航天大學出版社,2003.

        [6]\\帕爾尼卡.Verilog HDL數(shù)字設(shè)計與綜合\\.夏雨聞,譯.北京:電子工業(yè)出版社,2004.

        [7]湯家華,王道德.基于FPGA設(shè)計的采用DDS 技術(shù)的任意波形發(fā)生器\\.電子測量技術(shù),2007,30(4):129-131.

        [8]張春榮,張厥盛.DDS/PLL快速調(diào)頻頻率合成器研究[J].西部電子,1993(4):35-39.

        [9]彭澄廉,周博,邱衛(wèi)東,等.挑戰(zhàn)SoC[M].北京:清華大學出版社,2004.

        [10]周立功.SoPC嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學出版社,2005.

        [11]\\坂俊昭.鎖相環(huán)(PLL)電路設(shè)計與應(yīng)用\\.何希才,譯.北京:科學出版社,2006.

        [12]唐穎,阮越.直接數(shù)字頻率合成器的FPGA實現(xiàn)\\.2005年全國單片機與嵌入式系統(tǒng)學術(shù)交流會論文集\\.深圳,2005.

        作者簡介 李春劍 女,1983年出生,中國計量科學研究院在讀研究生。

        国产少妇高潮在线视频| 亚洲AV电影天堂男人的天堂| 色播中文字幕在线视频| 国产情侣自拍偷拍精品| 成年女人免费v片| 色一情一乱一乱一区99av| 国产V日韩V亚洲欧美久久| 久久综合老鸭窝色综合久久| 午夜免费观看日韩一级视频| 被黑人猛躁10次高潮视频| 亚洲最新版无码AV| 日本一曲二曲三曲在线| 国产18禁黄网站免费观看| 亚洲人成电影在线观看天堂色 | 精品国产sm捆绑最大网免费站| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 热99精品| 亚洲视频在线中文字幕乱码| 色偷偷激情日本亚洲一区二区 | 国产成人久久精品激情| 国产乱人伦AV在线麻豆A| 久久老熟女乱色一区二区| 久草青青91在线播放| 国产在线视频一区二区三区| 国产精品丝袜美女在线观看| 99视频一区二区日本| 日日摸天天碰中文字幕你懂的| 白天躁晚上躁麻豆视频| 久久久国产精品福利免费| 五十路一区二区中文字幕| 欧美激欧美啪啪片| 手机在线看永久av片免费| 国产精品女同久久免费观看| 麻婆视频在线免费观看| 精东天美麻豆果冻传媒mv| 久久99精品久久久久久齐齐百度| 亚洲无码美韩综合| 亚洲国产精品国自产拍久久蜜av| 久久婷婷五月综合色欧美 | 中文字幕日本女优在线观看| 国产一品二品精品在线|