精华内容
下载资源
问答
  • Vivado DDS

    千次阅读 2017-10-26 18:04:41
    DDS产生的信号频率。 3.verilog代码如下 `timescale 1 ns / 1 ps module nco( input mclk, input rst_n, input [ 31 : 0 ]fword, //frequency control input [ 11 : 0 ]pword, //phase control ...

    1.Matlab生成coe文件

     t=0:2*pi/2^12:2*pi
     y=0.5*sin(t)+0.5;
     r=ceil(y*(2^8-1)); %将小数转换为整数,ceil是向上取整。
     fid = fopen('sin.coe','w'); %写到sin.coe文件,用来初始化sin_rom

    2.DDS原理

    F1=F0K/2N

    F0是CLK频率,F1是DDS产生的信号频率。

    3.verilog代码如下

    `timescale 1ns / 1ps
    module nco(
                input mclk,
                input rst_n,
                input [31:0]fword,//frequency control
                input [11:0]pword,//phase control
                output [9:0]da_data
        );
    
        reg [31:0]r_fword=32'd0;
        reg [11:0]r_pword=12'd0;
        reg [31:0]fcnt=32'd0;
    
        wire [11:0]addr_rom;
    
        //同步寄存器
        always @(posedge mclk)
        begin
                r_fword <= fword;
                r_pword <= pword;
            end
    
        always @(posedge mclk or posedge rst_n)
        begin
            if(!rst_n)
                fcnt <= 32'd0;
            else
                fcnt <= fcnt + r_fword;
            end
       // 取高11位相当于除以4096
        assign addr_rom = fcnt[31:20] + r_pword;
        //custom sin_rom
        blk_mem_gen_0 sin_rom (
        .clka(mclk),    // input wire clka
        .addra(addr_rom),  // input wire [11 : 0] addra
        .douta(da_data)  // output wire [9 : 0] douta
        );
    
    endmodule

    4.Simulation

    `timescale 1ns / 1ps
    module nco(
                input mclk,
                input rst_n,
                input [31:0]fword,//frequency control
                input [11:0]pword,//phase control
                output [9:0]da_data
        );
    
        reg [31:0]r_fword=32'd0;
        reg [11:0]r_pword=12'd0;
        reg [31:0]fcnt=32'd0;
    
        wire [11:0]addr_rom;
    
        //同步寄存器
        always @(posedge mclk)
        begin
                r_fword <= fword;
                r_pword <= pword;
            end
    
        always @(posedge mclk or posedge rst_n)
        begin
            if(!rst_n)
                fcnt <= 32'd0;
            else
                fcnt <= fcnt + r_fword;
            end
       // 取高11位相当于除以4096
        assign addr_rom = fcnt[31:20] + r_pword;
        //custom sin_rom
        blk_mem_gen_0 sin_rom (
        .clka(mclk),    // input wire clka
        .addra(addr_rom),  // input wire [11 : 0] addra
        .douta(da_data)  // output wire [9 : 0] douta
        );
    
    endmodule
    
    展开全文
  • VIVADO DDS IP核设置

    2018-09-13 18:56:21
    主要讲述了VIVADO 软件中DDS IP核的设置方法和设计流程,以正弦波为例。说明了dds核频率控制字和相位控制字的计算,并利用VIVADO自带的仿真软件编写了测试向量进行了仿真,给出了仿真结果。
  • 33-Vivado DDS IP设计.7z

    2021-03-12 23:47:32
    Vivado DDS IP设计,Vivado仿真工程
  • vivado dds IP核笔记

    2020-07-24 20:46:24
    vivado dds IP核笔记 DDS IP核在vivado提供的GUI界面中,可以选择三种配置: Phase Generator and SIN/COS LUT (DDS) SIN/COS LUT only, Phase Generator 这里记录一下DDS 的Phase Generator and SIN/COS LUT (DDS)...

    vivado dds IP核笔记

    DDS IP核在vivado提供的GUI界面中,可以选择三种配置:
    Phase Generator and SIN/COS LUT (DDS)
    SIN/COS LUT only,
    Phase Generator
    这里记录一下DDS 的Phase Generator and SIN/COS LUT (DDS)与SIN/COS LUT only模式。
    Phase Generator and SIN/COS LUT (DDS):
    在IP核内部集成好相位累加器与sin/cos模块,只需要在GUI中配置好需要生成的频率即可,可选择单独输出sin,或cos,也可以两个曲线正交输出。
    SIN/COS LUT only模式:
    例化的IP核只有一个sin/cos模块,需要外部不断的输入累加的相位

    输出频率计算

    1. Standard Mode of Operation
      输出频率fout,
      系统时钟fclk,
      相位累加量Δθ
      Bθn 相位位宽,
      在这里插入图片描述
    2. Rasterized Mode of Operation
      wwwwwww频率分辨率:
      对于标准模式频率分辨率计算公式为:
      在这里插入图片描述
    always @ (posedge clk or posedge rst)
    begin
        if (rst)
            phase_data <= 16'd0;
        else
            phase_data <= phase_data + fre_word;
    end
    
    dds_compiler_0 dds_i (
      .aclk(clk),                                // input wire aclk
      .aclken(1'b1),                            // input wire aclken
      .s_axis_phase_tvalid(1'b1),  // input wire s_axis_phase_tvalid
      .s_axis_phase_tdata(phase_data),    // input wire [15 : 0] s_axis_phase_tdata
      .m_axis_data_tvalid(),    // output wire m_axis_data_tvalid
      .m_axis_data_tdata(t_data)      // output wire [31 : 0] m_axis_data_tdata
    );
    
    

    最后有几点还没有搞明白,
    在Implementation Tab 栏中
    Phase Increment Programmability: Selects the means by which the PINC value is set.
    ° Fixed: PINC is fixed at generation time and cannot be changed at run-time. Fixed requires minimal resource.
    ° Programmable: PINC value can be changed at run-time using the CONFIG channel. This is recommended when the DDS frequency is to change between modes of operation.
    ° Streaming: PINC value is taken directly from the input PHASE channel. This is recommended when the PINC value has to change often, or for example when frequency modulation is required.
    对于需要改变频率的使用还没有搞明白,暂时先使用手动相位累加器来实现吧

    -------------------------7/27更新-------------------------
    在使用Streaming模式配置生成调频信号时,如果输出的信号频率需要变化那么s_axis_phase_tvalid,要高有效s_axis_phase_tdata换算成输出频率的公式如下:在这里插入图片描述重要的事情说三遍
    重要的事情说三遍
    重要的事情说三遍
    :注意在s_axis_phase_tdata发生变化时需要对IP核进行复位(arestn),不然无法产生调频信号。

    展开全文
  • Vivado dds compiler6.0开发者手册,官网最新版本,有需要的可以下载,用于配置dds ip核
  • VIVADO使用DDS IP核

    千次阅读 2020-06-01 11:13:11
    这里写自定义目录标题VIVADO使用DDS IP核介绍DDS固定频率的计算 VIVADO使用DDS IP核介绍 在使用DDS内核之前,我们需要知道DDS是什么东西,常用的DDS,在电子设计竞赛中我使用的DDS芯片是AD9954,AD9959,他们有较宽的...

    VIVADO使用DDS IP核介绍

    在使用DDS内核之前,我们需要知道DDS是什么东西,常用的DDS,在电子设计竞赛中我使用的DDS芯片是AD9954,AD9959,他们有较宽的带宽。他们的原理是我写入一个频率控制字,去控制DDS产生的一定频率的信号。DDS的实质是,他的内部是一个ROM,存储了一个sin数组。如果你们使用过matlab,你们应该知道sin信号或者cos信号在数字电路中是如何产生的。DDSIP核跟我们电路中的DDS是一样的。我们往IP核里面写频率控制字就行。

    DDS固定频率的计算

    1. 首先我们可以打开VIVADO,在IP CATALOG里面搜索DDS,随便选取一个IP核打开就可以。
      创建IP核
    2. 创建了IP核后,我们需要知道如何对这个IP核进行配置。所以我们需要打开这个DDS的设计手册,在右上方有个documentation,我们打开这个指导手册。
    3. 在指导手册里面,我们可以找到一页介绍DDS内核的
      DDS频率控制字介绍
      在这个图中,我们知道fclk关系到我们最后的输出频率.(第一次写博客,还不太会打公式)。
    4. 比如我需要0.01MHZ的频率,我给DDS内核输入的fclk为10.24MHZ,频率输出跟相位输出我设置为10位10.24/2^10就为0.01MHZ,满足我实验的需求
      当然这只是简单设置一下DDS内核,具体如何改变DDS产生的频率,后面接着更
    展开全文
  • Vivado DDS IP核混频设计,Vivado仿真工程
  • VIVADO DDS IP核的使用

    2020-10-17 19:50:48
    在前面的内容介绍了 ISE14.7 下 DDS IP 核的例化及使用方法,本文介绍如何使用 VIVADO 工具例化 DDS IP核,并在例化后给出简单的仿真测试,用于验证功能是否正常。 2. IP 核例化 在“Configuration”页面中,...

    1. 前言

    在前面的内容介绍了 ISE14.7 下 DDS IP 核的例化及使用方法,本文介绍如何使用 VIVADO 工具例化 DDS IP核,并在例化后给出简单的仿真测试,用于验证功能是否正常。

    2. IP 核例化

    在“Configuration”页面中,Configuration Options选项设置为 SIN COS LUT only;Parameter Selection 选项设置为 Hardware Parameters,Phase Width 和 Output Width 分别设置为 16;

    在 ”Implemention“ 页面中,Output Selection 选项设置为 Cosine,输出余弦波形数据,其它保持默认值;

    在 ”Detailed Implementation“ 页面中,勾选 Control Signals 的 ARESETn 框,使能 IP 核的复位功能,其它参数保持默认值。

    至此,该 IP 核实现了一个余弦形查找表的功能,我们不断更改输入信号-相位,即可输出对应相位的余弦值。

    3. IP 核接口信号说明

    打开 IP 核对应的 .vhd 文件,可以看到输入输出信号如下:

    ENTITY dds_compiler_0 IS  PORT (    aclk : IN STD_LOGIC;    aresetn : IN STD_LOGIC;    s_axis_phase_tvalid : IN STD_LOGIC;    s_axis_phase_tdata : IN STD_LOGIC_VECTOR(15 DOWNTO 0);    m_axis_data_tvalid : OUT STD_LOGIC;    m_axis_data_tdata : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)  );END dds_compiler_0;

    其中,s_axis_phase_tvalid 为输入相位有效信号,s_axis_phase_tdata 为输入的相位值;m_axis_data_tvalid 为输出的数据有效标志,m_axis_data_tdata 为对应输入相位的余弦输出值。通过不断的更改相位的值,则可输出一个余弦函数。

    4. 测试文件

    `timescale 1ns / 1psmodule dds_ip_tb;    reg aclk;  reg aresetn;    wire s_axis_phase_tvalid;  reg [15:0] s_axis_phase_tdata;    wire m_axis_data_tvalid;  wire [15:0] m_axis_data_tdata;    initial begin    aclk = 1'b1;    aresetn = 1'b0;    #201    aresetn = 1'b1;    #100000    $stop;  end    always #5.000 aclk = ~aclk;    assign s_axis_phase_tvalid = 1'b1;    always @ (posedge aclk or negedge aresetn)  if(!aresetn)    s_axis_phase_tdata <= 16'd0;  else    s_axis_phase_tdata <= s_axis_phase_tdata + 'd512;
      dds_compiler_0 DUT(      .aclk (aclk),    .aresetn (aresetn),    .s_axis_phase_tvalid (s_axis_phase_tvalid),    .s_axis_phase_tdata (s_axis_phase_tdata),    .m_axis_data_tvalid (m_axis_data_tvalid),    .m_axis_data_tdata (m_axis_data_tdata)  );
    endmodule

    5 仿真波形

    可以看出,随着相位的变化,输出的余弦值也在相应变化,从而得到了一个余弦波形。需要注意的是,以上设置输出的波形数据为有符号值。

    更多内容请关注公众号:

    展开全文
  • vivadoIP核DDS使用及注意

    千次阅读 2020-02-19 11:20:23
    title: vivadoIP核DDS使用及注意 date: 2020-02-19 10:38:24 tags: work categories: work vivadoIP核DDS使用及注意 vivado当前版本2018.3 vivado提供了DDS IP核可以输出正余弦波形,配置方法如下 打开VIVADO,选择...
  • vivado dds Compiler v6.0 学习笔记

    千次阅读 2019-10-16 22:36:51
    最近在调试DA芯片AD9125正好需要测试输出正弦波,看了下VIVADO有自带的IP可以产生正弦波和余弦波,正好拿过来学习学习。 Xilinx® LogiCORE直接数字合成器(DDS)编译器内核通过兼容 AXI4-Stream的接口实现了高...
  • 数字信号处理(一):Xilinx Vivado DDS IP核设计实例...vivado DDS IP核参数设置和仿真 https://blog.csdn.net/weixin_43773312/article/details/103964418 Vivado DDS IP核使用和仿真(一、单...
  • vivado DDS IP核参数设置和仿真

    千次阅读 2020-01-13 22:04:23
    IP核版本 DDS Compiler(6.0) 参考文件:PG141. DOCNEV真的是神器,它能解决你对工具所有的问题。 以生成一个64Mhz时钟驱动,14位带符号位的1Mhz正弦波为例,讲解下DDS核的设置和仿真。 建立DDS IP核 IP Catalog 中...
  • Vivado IP核生成DDS 1. Vivado 新建工程 创建完成! 然后,新建一个source文件 finish! 2. 使用IP核创建DDS 设置DDS频率、位宽等参数 设置完成后看下summary,确认无误继续。 创建成功! 3. 例化 **...
  • vivado dds核生成一个正弦波

    千次阅读 2020-03-21 20:11:58
    DDS三大组成部分:频率控制字、相位累加器、rom查找表 1.新建工程 2.选择IP catalog(目录),选择dds compiler(编译),系统时钟选择板子时钟,例如10.24M。 3.parameter selection 选择 有两种,如果选择hardware ...
  • 这周六看了Xilinx的 DDS手册学了下DDS的使用,目标是可编程生成任意频率的正弦波。
  • 相关文章FPGA探索者:Matlab与FPGA——DDS信号发生器——Quartus ii 实现DDS​zhuanlan.zhihu.comFPGA仿真必备(1)--Matlab生成.mif文件--JPG图片转.mif文件--Matlab生成.txt文件--Matlab生成.coe文件_DengFengLai...
  • 基于 Vivado 调用 ROM IP core设计DDS 原作者:NingHeChuan(宁河川)
  • 使用vivado提供的DDS IP核时,我使用的是SIN COS LUT only模式。正确的提供相位的输入。默认的情况下显示的不是波形 我们需要右击我们想观察的信号,然后选择Waveform Style==>analog。就可以观察波形了。如果不...
  • 例化 IP 核时使用 ISE14.7 的 Core Generator 进行例化,工程开发采用 VIVADO2017.4 ,通过使用 Core Generator 生成的 DDS IP 核的网表文件,来例化 DDS 模块。1. 打开 Core Generator(安装 IS...
  • Vivado DDS IP核使用和仿真(一、单通道信号发生器)

    万次阅读 多人点赞 2019-06-06 14:02:43
    DDS Compiler(6.0) 1、打开IP核配置,parameter Selection选择System Parameters 2、设置System Parameters参数: (1)Spurious Free Dynamic Range的设置,这个参数与输出数据的宽度相关 可以参考《LogiCORE ...
  • Vivado软件中对DDS核进行仿真,出现仿真不正常。

空空如也

空空如也

1 2 3 4 5 6
收藏数 112
精华内容 44
关键字:

ddsvivado