FPGA基于ACM2108的DDS设计

[复制链接]
发表于 2023-2-19 19:50:30 | 显示全部楼层 |阅读模式
这次设计一个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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表