这次设计一个DDS信号发生器。该设计的特点有:
- 双通道的DA输出,可以调节频率、相位、和波形(正弦波、方波、三角波)。
- 拥有相位重置的功能,能够同时重置两个输出波形的相位。
本次采用的是小梅哥的ACM2108模块。该模块有两个通道的ADC和两个通道的DAC。

本次设计的前置是DDS基本模块,具体可点击链接查看。DDS基本模块在加入了装有正弦波数据的ROM的基础上,再添加三角波和方波的数据的ROM,从而能够切换输出的波形。
通过调用VIO这个IP核,设置输出信号的频率、相位和波形。
然后通过LIA这个IP核,去观察数据波形。

一、模块代码
[code]`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: GDUT// Engineer: Lclone// // Create Date: 2023/02/02 22:34:21// Design Name: DDS_ACM2108// Module Name: DDS_ACM2108// Project Name: DDS_ACM2108// Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision:// Revision 0.01 - File Created// Additional Comments:// //////////////////////////////////////////////////////////////////////////////////module DDS_ACM2108( input Clk, input Rst_n, output DA_Clk_ch1, output [7:0] DA_data_ch1, output DA_Clk_ch2, output [7:0] DA_data_ch2, output AD_Clk_ch1, input [7:0] AD_data_ch1, output AD_Clk_ch2, input [7:0] AD_data_ch2 ); wire Clk_125M; wire [31:0] Fword_ch1; wire [11:0] Pword_ch1; wire [ 1:0] mode_sel_ch1; wire [31:0] Fword_ch2; wire [11:0] Pword_ch2; wire [ 1:0] mode_sel_ch2; reg [7:0] AD_data_ch1_reg; reg [7:0] AD_data_ch2_reg; wire Wave_rst_p; always@(posedge Clk)begin AD_data_ch1_reg |