名称:基于FPGA的DDS IP核设计Verilog代码VIVADO仿真(文末获取)
软件:VIVADO
语言:Verilog
代码功能:基于DDS的IP核,设计产生2路正弦波,并将2路正弦波叠加,输出叠加后波形
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
部分代码展示:
`timescale 1ns / 1ps //正弦波叠加 module DDS_top( input clk_in,//100M输入 output [10:0] wave//波形输出 ); //DDS输出频率=clk*N/2^16 wire [31 : 0] tdata1;//IP核输出 wire [9:0] tdata_sine1;//sin波形 //调用DDS IP核1 dds_IP i1_dds_IP ( .aclk(clk_in),//时钟 .s_axis_config_tvalid(1'b1), // 频率控制字输入使能 .s_axis_config_tdata(16'd655), //频率控制字(可自行修改),16位,频率控制字655计算出的频率为1MHz .m_axis_data_tvalid(), // //IP核输出使能 .m_axis_data_tdata(tdata1) // //IP核输出 ); assign tdata_sine1 = tdata1[25:16];//sin波形 wire [31 : 0] tdata2;//IP核输出 wire [9:0] tdata_sine2;//sin波形 //调用DDS IP核2 dds_IP i2_dds_IP ( .aclk(clk_in),//时钟 .s_axis_config_tvalid(1'b1), // 频率控制字输入使能 .s_axis_config_tdata(16'd300), //频率控制字(可自行修改),16位,频率控制字300计算出的频率为457.7KHz .m_axis_data_tvalid(), // //IP核输出使能 .m_axis_data_tdata(tdata2) // //IP核输出 ); assign tdata_sine2 = tdata2[25:16];//sin波形 assign wave=$signed(tdata_sine1)+$signed(tdata_sine2)
源代码
扫描文章末尾的公众号二维码