My title page contents

DDS正弦波发生器通过模数转换芯片DAC121输出verilog代码

名称:DDS正弦波发生器通过模数转换芯片DAC121输出verilog代码(代码在文末下载)

软件:VIVADO

语言:Verilog

代码功能:

DDS正弦波发生器设计

1、使用DDS方法设计正弦波发生器

2、可以通过按键调整频率和幅值

3、波形通过数模转换芯片DAC121输出


FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在Basys3开发板验证,开发板如下,其他开发板可以修改管脚适配:

basys3开发板.png


演示视频:

模数转换芯片DAC121资料:

dac121s101.pdf

设计文档:

dss设计.doc

1. 工程文件

2. 程序文件

3. 管脚分配

4. Testbench

5. 仿真图

部分代码展示:

module DDS_sin(
    input clk,//100M
    input [4:0] FM_swtich,//调频按键
    input [2:0] AM_switch,//调幅按键
    output DA_SCLK,//10M
    output DA_SYNC_n,
    output DA_DIN
    );
reg [7:0] frequency_ctrl=8'd0;
reg [2:0] range_ctrl=8'd0;
always@(posedge clk)
begin
    frequency_ctrl<={3'd0,FM_swtich};//频率控制字
    range_ctrl<=AM_switch;//幅度控制
end
wire m_axis_data_tvalid;
wire [15:0] m_axis_data_tdata;
wire [9:0] sin_wave;
assign sin_wave=m_axis_data_tdata[9:0] + 10'd512;//DDS输出正弦波
//分频到1MHz
reg [15:0] div_cnt=16'd0;
reg clk_1MHz=0;
always@(posedge clk)
    if(div_cnt>=16'd100)begin
        div_cnt<=16'd0;
        clk_1MHz<=~clk_1MHz;
        end
    else begin
        div_cnt<=div_cnt+16'd1;
        clk_1MHz<=clk_1MHz;
        end
//调用DDS IP核
dds_10bit i_dds_10bit (
  .aclk(clk_1MHz),                                // input wire aclk
  .s_axis_phase_tvalid(1'b1),  // input wire s_axis_phase_tvalid
  .s_axis_phase_tdata(frequency_ctrl),    // input wire [7 : 0] s_axis_phase_tdata
  .m_axis_data_tvalid(m_axis_data_tvalid),    // output wire m_axis_data_tvalid
  .m_axis_data_tdata(m_axis_data_tdata)      // output wire [15 : 0] m_axis_data_tdata
);
wire [11:0] wave_DA;
assign wave_DA=sin_wave[9:1] * range_ctrl;//调幅
//调用DA控制模块
dac121 i_dac121(
. i_C100MHz(clk),
. i_Reset(1'b0),
. data_in(wave_DA),
. DA_SCLK(DA_SCLK),//10M
. DA_SYNC_n(DA_SYNC_n),
. DA_DIN(DA_DIN)
    );
endmodule

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » DDS正弦波发生器通过模数转换芯片DAC121输出verilog代码

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员