在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

DDS信號生成模塊的Verilog實現

CHANBAEK ? 來源:新海客 ? 作者:陳一偉 ? 2023-11-08 14:39 ? 次閱讀

直接數字頻率合成器(Direct Digital Synthesizer,DDS),是一種頻率合成技術,具有相對帶寬大、頻率轉換速度快、相位分辨率高、連續性好等優點,在數字信號處理中常用于調制信號的生成,模塊設計較為簡單,頻率、相位容易控制,多用于無線通信領域。

DDS發生器的組成原理精髓在于對“模板”信號在單個周期內的采樣,在系統工作頻率一定的情況下,輸出信號頻率和周期內的取樣點數有著直接的關系,舉個栗子,假設基波信號 U(t)=sin(2pift+θ )=sin( 2pit ) ,* 在0~2Π

等分周期,在相同的系統時鐘下采用不同的抽樣點數進行抽樣,如下圖所示:

圖片

以*Π/4 *為步進在單個周期內抽樣

圖片

以*Π/8 *為步進在單個周期內抽樣

圖片

可以很明顯看出,相同系統時鐘下使用不同的抽樣點數,可以得到不同的輸出頻率;基本組成架構如下,系統時鐘驅動頻率控制字(抽樣間隔)逐次累加生成存儲著基波數據ROM的對應抽樣地址,相位控制字主要用來決定基波的起始相位;

圖片

FPGA中開辟一塊Block RAM用于存儲對應的“模板”信號,也就是要輸周期信號的一個完整周期,輸出數據位數決定采樣波形存儲ROM的寬度,數據深度與采樣精度有關,累加器用于按頻率控制字步長控制等間隔采樣精度,相位寄存器用于鎖定波形發生起始的位置,生成的周期數列作為ROM表的驅動地址,完成對"模板"信號不同頻率的抽樣;

圖片

模塊設計前需要先準備ROM初始化文件“ .coe ”,生成方式可以使用工具或者MATLAB,下面是個人使用的一個基于MATLAB的coe文件生成代碼;

clc;clear;close all;  
width = 10;  
depth = 2048;  
t = linspace(0,2*pi,depth);  
sin_val = sin(t);  
% %cos_val = cos(t); 
plot(t,sin_val,'--');
 sin_val = fix(sin_val*(2^width-1)/2 + 0.5); %四舍五入  
% %cos_val = fix(cos_val*(2^width-1)/2 + 0.5);


sin_val(find(sin_val< 0))=sin_val(find(sin_val< 0)) + 2^width; %求補碼 
addr = [0:depth - 1];  
file = fopen('sin1024.coe','wt');  
fprintf(file,'MEMORY_INITIALIZATION_RADIX=10;n);
fprintf(file,'MEMORY_INITIALIZATION_VECTOR=n');


for i=1:depth  
    fprintf(file,'%04X : %04X;n',addr(i), sin_val(i)); 

end  
fprintf(file,'END;n');  
fclose(file);

模塊設計為便于修改添加部分參數定義,在有不同位寬需求時可以只修改參數和ROM模塊IP即可實現;頻率計算公式不在推到,直接給出:

圖片

其中K為頻率控制字,N為相位累加器位寬,f0為模塊輸出頻率,fC為系統時鐘頻率;舉個例子,設系統時鐘為50Mhz,相位寬度10Bit,要輸出1Mhz的信號,則K=(2^101)/50; *設計代碼如下,使用時只需添加ROM模塊的IP,然后就可以例化工程使用:

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: nhike
// Engineer: chenyivi
// 
// Create Date: 2019/11/03 19:25:35
// Design Name:DDS_ROM_IP 
// Module Name: DDS_ROM
// Project Name: DDS_ROM_IP
// Target Devices: zynq7010
// Tool Versions:1.0 
// Description: WaveFrom
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////




module DDS_ROM(
    clk,          //系統時鐘
    rst_n,        //系統復位
    Freword,      //頻率控制參數
    Phaword,      //初始相位控制參數
    WaveDataOut    //輸出信號
  );

  parameter   FrequencyBitWidth = 32;       
  parameter   PhaseBitWidth =10;
  parameter   DataOutBitWidth= 10;

  input clk;
  input rst_n;
  input   [FrequencyBitWidth-1:0] Freword;
  input   [PhaseBitWidth-1:0]    Phaword;
  output   [DataOutBitWidth-1:0]   WaveDataOut;

  reg   [FrequencyBitWidth-1:0]  Freword_temp;
  reg   [PhaseBitWidth-1:0]    Phaword_temp;
  wire   [PhaseBitWidth-1:0]    WaveAddData;

  always@(posedge clk or negedge rst_n)begin    //data latch.
    if(!rst_n)begin
      Freword_temp <= 32'b0;
      Phaword_temp <= 10'b0;
      end
    else begin
      Freword_temp <= Freword;
      Phaword_temp <= Phaword;  
      end
  end

  reg [FrequencyBitWidth-1:0] cnt;

  always @(posedge clk or negedge rst_n)begin    //Sampling control.
    if(!rst_n)
      cnt <= 0;
    else
      cnt <= cnt + Freword_temp;
  end

  assign WaveAddData = cnt[FrequencyBitWidth-1:FrequencyBitWidth-(DataOutBitWidth + 1)] + Phaword_temp;   //Data precision interception

  WaveRom WaveRomBase (
    .clka(clk),   
    .addra(WaveAddData),  
    .douta(WaveDataOut)  
  );

endmodule

下面是仿真結果和RTL:

圖片

圖片

以上實現均在Vivado中驗證,Quartus使用方法與上述一致;

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 合成器
    +關注

    關注

    0

    文章

    273

    瀏覽量

    25360
  • 頻率合成器
    +關注

    關注

    5

    文章

    219

    瀏覽量

    32354
  • 無線通信
    +關注

    關注

    58

    文章

    4570

    瀏覽量

    143538
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110100
  • DDS
    DDS
    +關注

    關注

    21

    文章

    634

    瀏覽量

    152664
收藏 人收藏

    評論

    相關推薦

    Verilog實現DDS正弦波發生器

    DDS 同 DSP(數字信號處理)一樣,是一項關鍵的數字化技術。DDS 是直接數字式頻率合成器(Direct Digital Synthesizer)的英文縮寫。與傳統的頻率合成器相比,DDS
    的頭像 發表于 12-22 09:48 ?1239次閱讀
    <b class='flag-5'>Verilog</b><b class='flag-5'>實現</b><b class='flag-5'>DDS</b>正弦波發生器

    DDSVERILOG原代碼

    DDSVERILOG原代碼
    發表于 08-11 09:35

    基于Verilog HDL的DDS設計與仿真

    基于Verilog HDL的DDS設計與仿真
    發表于 08-19 23:15

    Verilog通過DDS合成正弦波信號

    。而存儲每一個幅度的比特數決定了幅度的量化誤差。可以通過Quartus II的IP核資源創建。Verilog編寫的DDS模塊主要由三部分組成,一、相位累加器,用于決定輸出信號頻率的范圍
    發表于 03-22 23:42

    急急急!!!各位大神幫幫忙!怎么用Verilog控制DDS芯片AD9852

    ,看了網上的資料,都是Verilog通過內部模塊實現DDS。希望大神們給點給我個控制程序,讓我參考一下。大恩大德,不勝感激!實在很急
    發表于 04-25 21:56

    請問怎么用Verilog寫一個DDS產生Chirp線性調頻信號

    有沒有前輩用Verilog寫一個DDS產生Chirp線性調頻信號,方便的話能不能給個代碼,我的郵箱是year2015@126.com,
    發表于 09-11 17:35

    基于DDS實現信號的頻譜分析

    1 引言 直接數字頻率合成(DDS)是近幾年一種新型的頻率合成法,其具有頻率切換速度快,頻率分辨率高,以及便于集成等優點。在此,設計了基于DDS的頻譜分析儀,該頻譜分析儀依據外差原理,被測信號與本征頻率混頻,
    發表于 05-31 08:01

    使用AD9739A生成信號,用FPGA的DDS生成信號,為什么諧波特別明顯?

    使用AD9739A生成信號,用FPGA的DDS生成信號,見圖,諧波特別明顯,尤其是3次諧波,購買的是AD9739_FMC的評估板,下圖中產生
    發表于 12-07 07:57

    基于FPGA的DDS調頻信號的研究與實現

    本文從DDS 基本原理出發,利用FPGA 來實現DDS 調頻信號的產生,重點介紹了其原理和電路設計,并給出了FPGA 設計的仿真和實驗,實驗結果表明該設計是行之有效的。直接數字頻率
    發表于 06-26 17:29 ?72次下載

    基于FPGA的DDS信號源設計與實現

    基于FPGA的DDS信號源設計與實現 利用DDS和 FPGA 技術設計一種信號發生器.介紹了該信號
    發表于 02-11 08:48 ?225次下載

    DDS在羅盤測試信號產生模塊中的應用

    本文在對DDS原理和AD9854芯片研究的基礎上,介紹了一種羅盤測試信號產生模塊的設計方案。通過單片機對DDS芯片的控制,可以產生正弦波信號
    發表于 07-31 10:45 ?12次下載

    基于DDS信號發生器設計

    基于dds函數信號發生器,用單片機及dds實現正玄波,三角波,矩形波的產生
    發表于 01-11 14:55 ?21次下載

    DDS多波信號發生器的實現

    詳細介紹了直接數字頻率合成器(DDS)的工作原理、基本結構。在參考DDS 相關文獻的基礎上,提出了符合結構的DDS 設計方案,利用DDS 技術設計了一種高頻率精度的多波形
    發表于 11-22 14:35 ?0次下載

    基于Verilog實現DDS任意波形發生器

    DDS是從相位的概念直接合成所需波形的一種頻率合成技術。不僅可以產生不同頻率的正弦波,而且可以控制波形的初始相位。本文為大家介紹基于Verilog實現DDS任意波形發生器。
    發表于 01-08 11:58 ?6849次閱讀
    基于<b class='flag-5'>Verilog</b><b class='flag-5'>實現</b>的<b class='flag-5'>DDS</b>任意波形發生器

    如何自動生成verilog代碼

    介紹幾種自動生成verilog代碼的方法。
    的頭像 發表于 11-05 11:45 ?316次閱讀
    如何自動<b class='flag-5'>生成</b><b class='flag-5'>verilog</b>代碼
    主站蜘蛛池模板: 97综合久久| 天天摸天天操天天爽| 国产日韩三级| 国产精品视频网站你懂得| 国产卡一卡2卡三卡免费视频| 涩色影院| 成人午夜亚洲影视在线观看| 五月天激情在线| 日本免费一区二区视频| 曰本三级香港三级人妇99视频| 爱爱天堂| 欲香欲色| 精品一区二区视频| brazzers在线| 亚洲欧美日韩高清mmm777| 亚洲国产高清人在线| 日本韩国三级视频| 激情文学综合| 亚洲手机看片| 国产在线观看www鲁啊鲁免费| 色琪琪一本到影院| 精品久久久久久国产免费了| 婷婷六月综合| 酒色激情网| 一级片在线免费观看| 国产综合在线观看视频| 在线播放交视频| 国产精品主播在线观看| 欧美男人的天堂| 在线视频亚洲色图| 国产码一区二区三区| 午夜黄网| 欧美日韩一日韩一线不卡| 91精品久久国产青草| 狠狠轮| 精品国产自在在线在线观看| 老师别揉我胸啊嗯上课呢视频| 国产午夜剧场| 手机看片a永久免费看大片| 国产日韩欧美一区二区| 免费啪啪网|