• 
    

    
    

      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
      阿坝| 巴林右旗| 天柱县| 五寨县| 象山县| 沈丘县| 汶川县| 杭锦后旗| 杂多县| 婺源县| 凉城县| 巴中市| 醴陵市| 南城县| 邳州市| 青海省| 文山县| 保定市| 项城市| 昌都县| 肃南| 界首市| 商南县| 榆林市| 内江市| 昌宁县| 文登市| 正蓝旗| 罗城| 浏阳市| 略阳县| 登封市| 彝良县| 四川省| 长汀县| 锦屏县| 固镇县| 阜城县| 樟树市| 新竹县| 平阴县|