• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Verilog的DDS設計及仿真

    2016-09-16 08:27:13四川信息職業(yè)技術學院
    電子世界 2016年12期
    關鍵詞:累加器方波余弦

    四川信息職業(yè)技術學院 許 斌

    基于Verilog的DDS設計及仿真

    四川信息職業(yè)技術學院許斌

    介紹了直接數字頻率合成器的組成及工作原理。采用了Verilog語言在Xilinx公司的XC3S400系列器件上實現該系統,并通過ISE和Matlab軟件對設計進行聯合仿真,驗證設計的正確性。模塊中的相位累加器使該系統具有較高的頻率分辨率,可實現快速頻率切換,有廣泛的應用價值。

    數字頻率合成器;Verilog;ISE;Matlab

    直接數字頻率合成器(Digital Direct Synthesizer,DDS)是以數字信號處理理論為基礎,從信號的幅度相位關系出發(fā)進行頻率合成的。與傳統的頻率合成器相比,DDS具有極高的分辨率,快速的頻率轉換時間,很寬的相對帶寬、任意波形的輸出能力等優(yōu)點。本文研究的是正、余弦波,方波以及三角波輸出的DDS技術,這類直接數字合成技術最具價值,應用也最為廣泛。

    1 DDS工作原理

    DDS主要由相位累加器、函數表ROM存儲器、D/A轉換器及低通濾波器組成,其基本原理如圖1所示。

    圖1 直接數字頻率合成器原理框圖

    波形的信號幅值以數據表的形式存儲在ROM存儲器中。相位累加器在時鐘的作用下以頻率控制字為步進進行相位累加,累加結果依次作為ROM存儲器的地址,取出相應的幅值數據送D/A轉換器,以產生階梯波形,階梯波形經低通濾波器濾波后得到相應的正弦波形。

    若累加器的寬度為N位,查詢表ROM的輸出位數為M,則2N就相當于Trad;N位中的最低有效位相當于,即最小的相位增量;對應的相位為;完成一個周期的正弦波輸出需要個參考時鐘周期,所以一個參考時鐘周期Tc內輸出頻率的周期為:。

    輸出頻率與查詢表ROM的輸出位數M無關。在一定的時鐘頻率fc下,相位增量決定了合成信號的頻率,故被稱為頻率控制字,習慣上用K表示。因此合成信號的頻率為:。

    當時鐘頻率fc固定時,改變頻率控制字,可以改變合成信號的頻率f0;當K=1時,輸出頻率最低即:。

    2 系統設計

    系統設計采用美國Xilinx公司的xc4vsx35實現頻率為4M的四路波形分別為:正、余弦,方波以及三角波波形,時鐘為100M。

    2.1系統Verilog 源程序

    輸入的控制字為32bit(經計算為171798690),輸出20bit四路信號分別為:正、余弦,方波以及三角波波形,以及reset,cein,wein控制輸入的信號。

    module DDS(datain,wein,clkin,cein,reset,cosin,sin,rect,trip);

    input [31:0] datain; //頻率控制字

    input wein;

    input clkin;

    input cein;

    input reset;

    output [19:0] cosein; //余弦輸出

    output [19:0] sin; //正弦輸出

    output [19:0] trip; //三角波輸出

    output [19:0] rect; //方波輸出

    reg[31:0] ADD_A;

    reg[31:0] ADD_B;

    reg[19:0] cose_DR;

    reg[19:0] sine_DR;

    reg[19:0] rect_DR;

    reg[19:0] trip_DR;

    wire[9:0] ROM_A;

    wire[19:0] cose_D;

    wire[19:0] sine_D;

    wire[19:0] rect_D;

    wire[19:0] trip_D;

    assign cose=cose_DR;

    assign sine=sine_DR;

    assign trip=trip_DR;

    assign rect=rect_DR;

    assign ROM_A=ADD_B[31:22];

    …………

    rom_cose cose1( .addr(ROM_A),

    .clk(clk),.dout(cose_D));

    rom_sine sine1(.addr(ROM_A),

    .clk(clk),.dout(sine_D));

    rom_rectt rect1(.addr(ROM_A),

    .clk(clk),.dout(rect_D));

    rom_tripp trip1(.addr(ROM_A),

    .clk(clk),.dout(trip_D));

    endmodule

    2.2ROM定制

    在編譯源程序前,必須首先完成存放波形數據ROM的定制。利用MATLAB計算出波形幅度的浮點值,并量化16比特的定點波形數值。產生波形采樣點數據的matlab程序如下:

    x=linspace(0,2*pi,1024);

    y1=cos(x); y2=sin(x);

    y1=(y1+1)*32678; y2=(y2+1)*32678; %cose,sine wave

    fid=fopen(‘c:/cos_coe.txt’,’wt’);

    fprintf(fid,’%16.0f, ’,y1);

    fclose(fid);

    fid=fopen(‘c:/sin_coe.txt’,’wt’);

    fprintf(fid,’%16.0f, ’,y2);

    fclose(fid);

    x=linspace(-3,3,1024);

    y3=tripuls(x,3);

    y3=32678*y3; %trip wave

    fid=fopen(‘c:/tri.txt’,’wt’);

    fprintf(fid,’%16.0f, ’,y3);

    fclose(fid);

    x4=linspace(-5,5,1024);

    y4=rectpuls(x,5);

    y4=32678*y4; %rect wave

    fid=fopen(‘c:/rect.txt’,’wt’);

    fprintf(fid,’%16.0f, ’,y4);

    fclose(fid);

    圖2 時序仿真圖

    圖3 Matlab波形仿真圖

    圖4 DDS模塊的RTL級結構圖

    將產生的波形數據導入到ISE中調出的單端口ROM的IP核里。

    2.3ISE與Matlab聯合仿真

    在將設計文件加進行綜合之前必須對設計進行全面充分的仿真。Xilinx公司提供的ISE軟件除了具有強大的編譯綜合功能外,還提供一定的時序仿真功能。

    編寫的測試程序如下:

    module test_dds;

    reg [31:0] data;

    reg we;

    reg clk;

    reg ce;

    reg reset;

    wire [19:0] cose;

    wire [19:0] sine;

    wire [19:0] rect;

    wire [19:0] trip;

    DDS uut (.data(data), .we(we), .clk(clk),

    .ce(ce), .reset(reset), .cose(cose),

    .sine(sine), .rect(rect), .trip(trip) );

    initial begin

    data = 0; we = 0; clk = 0; ce = 0; reset = 1;

    #10

    data=171798690; we=1; ce=1; reset=0;

    end

    always #50 clk=~clk;

    endmodule由測試程序得到時序仿真圖如圖2所示。將時序仿真的波形數值導入Matlab中,進行波形仿真驗證,得到如圖3所示波形。

    經過綜合后,得到如圖4的結構圖。

    3 結束語

    根據仿真波形可以看到,DDS系統的輸出波形平滑,滿足一般系統的要求。DDS 已廣泛應用于接收機本振、信號發(fā)生器、通信系統、雷達系統。未來的DDS不僅應用于傳統上需要使用信號源的領域,而且必將開拓許多新的應用領域。同時利用ISE與Matlab聯合仿真,在開發(fā)FPGA過程中對增強電子設計自動化功能、提高FPGA設計效率具有普遍意義。

    [1]朱正偉.EDA技術及應用[M].北京:清華大學出版社,2005.

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

    [3]唐穎等.直接數字頻率合成器的FPGA實現[A].2005年全國單片機與嵌入式系統學術交流會論文集[C].深圳,2005.

    [4][美]帕爾尼卡,夏雨聞 譯.VerilogHDL數字設計與綜合[M].北京:電子工業(yè)出版社,2004.

    [5]湯家華等.基于FPGA設計的采用DDS技術的任波形發(fā)生器[J].電子測量技術,2007,30(4):129-131.

    許斌(1982—),男,陜西西安人,碩士,工程師,研究方向:通信技術。

    猜你喜歡
    累加器方波余弦
    格上身份基簡短關聯環(huán)簽名及其電子投票應用
    無線電工程(2024年5期)2024-07-20 00:00:00
    密碼累加器研究進展及應用
    兩個含余弦函數的三角母不等式及其推論
    碳納米管方波電沉積鉑催化劑的制備及其催化性能研究
    基于霍夫變換的工位點識別算法設計與實現
    物聯網技術(2016年8期)2016-12-02 14:27:53
    分數階余弦變換的卷積定理
    圖像壓縮感知在分數階Fourier域、分數階余弦域的性能比較
    用于時間延遲積分型圖像傳感器的流水采樣列級運放共享累加器*
    方波外場下有限維量子系統的控制協議
    離散余弦小波包變換及語音信號壓縮感知
    聲學技術(2014年1期)2014-06-21 06:56:26
    松溪县| 芷江| 澄江县| 毕节市| 同心县| 芷江| 潢川县| 固原市| 西贡区| 隆化县| 西和县| 兴海县| 南郑县| 元朗区| 黔江区| 台前县| 德令哈市| 瑞丽市| 镇康县| 攀枝花市| 桐柏县| 西城区| 梓潼县| 临海市| 张北县| 昆明市| 寻乌县| 深州市| 会宁县| 陇西县| 黎城县| 凌云县| 武冈市| 福安市| 股票| 肥城市| 乌海市| 璧山县| 藁城市| 南昌市| 吴江市|