新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > DDS直接数字合成1 - 简介

DDS直接数字合成1 - 简介

作者:时间:2024-01-16来源:EEPW编译收藏

让我们看看 DSS实现是多么容易。

本文引用地址:http://www.eepw.com.cn/article/202401/454847.htm

好的,您的新板具有快速DAC(数模转换器)模拟输出。 下面是一个运行频率为10MHz的100位DAC的电路板设置。

在100MHz频率下,每10ns向DAC提供一个新的10位值。
DAC输出模拟信号,对于周期性信号,奈奎斯特限值表示可以达到高达50MHz的速度。

一个简单的

通常用于生成周期性信号。 现在,让我们尝试一些简单的东西并生成一个方波。

module Simple(DAC_clk, DAC_data);
input DAC_clk;
output [9:0] DAC_data;

// let's create a 16 bits free-running binary counter
reg [15:0] cnt;
always @(posedge DAC_clk) cnt <= cnt + 16'h1;

// and use it to generate the DAC signal output
wire cnt_tap = cnt[7];     // we take one bit out of the counter (here bit 7 = the 8th bit)
assign DAC_data = {10{cnt_tap}};   // and we duplicate it 10 times to create the 10-bits DAC value
                                    // with the maximum possible amplitude
endmodule

我们使用计数器的第 8 位来生成输出。 当计数器时钟频率为100MHz时,第8位以100MHz/2^8=390KHz的频率切换。 所以DAC输出是一个390KHz的方波信号。

现在,如果我们想要一个锯齿波,让我们用这行代码替换代码的最后两行:

assign DAC_data = cnt[9:0];

三角形信号也不难。

assign DAC_data = cnt[10] ? ~cnt[9:0] : cnt[9:0];

我们创建了一个 DSS,好吧。 但是,真实世界的 DDS 将允许我们:

  • 创建任何形状的信号。

  • 创建任何频率信号。

上一篇:DDS直接数字合成 (eepw.com.cn)

下一篇:DDS直接数字合成2 - 任意信号



关键词: FPGA DDS DAC接口

评论


相关推荐

技术专区

关闭