首页 > 技术 > 内容

基于FPGA 程序的DDS IP配置和调试

时间:2025-12-08  作者:Diven  阅读:0

DDS简介:

DDS 同 DSP(数字信号处理)一样,是一项关键的数字化技术。DDS 是直接数字式频率合成器(Direct Digital Synthesizer)的英文缩写。与传统的频率合成器相比,DDS 具有低成本、低功耗、高分辨率和快速转换时间等优点,使用在电信与电子仪器领域,是实现设备全数字化的一个关键技术。DDS 芯片的功能主要包括频率控制寄存器、高速相位累加器和正弦计算器三个部分。频率控制寄存器可以串行或并行的方式装载并寄存用户输入的频率控制码;而相位累加器根据频率控制码在每个时钟周期内进行相位累加,得到一个相位值;正弦计算器则对该相位值计算数字化正弦波幅度(芯片一般通过查表得到)。DDS 芯片输出的一般是数字化的正弦波,因此还需经过高速 D/A 转换器和低通滤波器才能得到一个可用的模拟频率信号。关于想了解更多的 DDS 的相关知识, 大家可以到百度直接搜索。下面主要来给大家介绍FPGA 程序的设计, DDS IP 的配置和调试。

编写 dds_wave 的 verilog 程序

`timescale 1ns / 1ps

//////////////////////////////////////////////////////////////////////////////////

// Company: 

// Engineer: 

// 

// Create Date:    1033 07/17/2018 

// Design Name: 

// Module Name:    dds_wave 

// Project Name: 

// Target DevICes: 

// Tool versions: 

// Description: 

//

// Dependencies: 

//

// Revision: 

// Revision 0.01 - File Created

// Additional Comments: 

//

//////////////////////////////////////////////////////////////////////////////////

Module dds_wave(clk, key1,data,da_clk

);

input clk, key1;

output [7:0] data;

output da_clk;

reg [15:0] key1_cout;

reg [7:0] data_o;

reg dds_we;

reg [28:0] dds_data;

reg [3:0] dds_freq = 0;

reg dds_we_req;

wire [7:0] sine;

assign sine_reg = sine[6:0];

assign da_clk = clk;

assign data = data_o;

//有符号数转化为无符号输出到DA

always @(posedge clk)

begin

if(sine[7] == 1'b1)

data_o <= sine - 128;

else

data_o <= sine + 128;

end

//控制DDS输出不同

always @(negedge clk)

begin

dds_we <= dds_we_req;

case(dds_freq)

4'd0:

dds_data <= 29'd107;//10Hz:(dds_data*2^29/50*1000000)

4'd1:

dds_data <= 29'd1074;//100Hz:(dds_data*2^29/50*1000000)

4'd2:

dds_data <= 29'd10737;//1kHz:(dds_data*2^29/50*1000000)

4'd3:

dds_data <= 29'd53687;//5kHz:(dds_data*2^29/50*1000000)

4'd4:

dds_data <= 29'd107374;//10kHz:(dds_data*2^29/50*1000000)

4'd5:

dds_data <= 29'd536871;//50kHz:(dds_data*2^29/50*1000000)

4'd6:

dds_data <= 29'd1073742;//100Hz:(dds_data*2^29/50*1000000)

4'd7:

dds_data <= 29'd5368709;//500Hz:(dds_data*2^29/50*1000000)

4'd8:

dds_data <= 29'd10737418;//1mHz:(dds_data*2^29/50*1000000)

4'd9:

dds_data <= 29'd21474836;//2mHz:(dds_data*2^29/50*1000000)

4'd10:

dds_data <= 29'd32212255;//3mHz:(dds_data*2^29/50*1000000)

4'd11:

dds_data <= 29'd42949672;//4mHz:(dds_data*2^29/50*1000000)

4'd12:

dds_data <= 29'd53687091;//5mHz:(dds_data*2^29/50*1000000)

4'd13:

dds_data <= 29'd64424509;//6mHz:(dds_data*2^29/50*1000000)

4'd14:

dds_data <= 29'd75161928;//7mHz:(dds_data*2^29/50*1000000)

4'd15:

dds_data <= 29'd85899346;//8mHz:(dds_data*2^29/50*1000000)

default:

dds_data <= 29'd107;// 1kHz:(dds_data*2^29/50*1000000)

endcase

end

//按钮处理程序,改变DDS的输出频率

always @(posedge clk)

begin

if(key1 == 1'b0)

key1_cout <= 0;

else if((key1 == 1'b1) & (key1_cout <= 16'hc350))

key1_cout <= key1_cout + 1'b1;

if(key1_cout == 16'hc349)

begin

dds_freq <=dds_freq + 1'b1;

dds_we_req <= 1'b1;

end

else begin

dds_freq <=dds_freq;

dds_we_req <= 1'b0;

end

end

//DDS IP产生sin/cos波形

sin_cos sin_cos_inst(

.clk(clk),

.we(dds_we),

.data(dds_data),

.cosine(cosine),

.sine(sine),

.phase_out()

);

endmodule

程序通过检测开发板上按键 KEY1 ,如果按键 KEY1 每按下一次,寄存器 dds_freq 的值就会加 1, 程序就会对 DDS IP 写入一个 data 数据来改变相位的增加量,从而改变输出波形的频率。程序中设置了 16 种相位的增加量,所以可以让 DDS 产生 16 个不同频率的正弦波。在本实验的 DDS IP 的配置中,相位增加的数据宽度为 29 位,所以最小的频率输出为50Mhz/2^29, 约 0.093Hz。如果想让 DDS 输出 1Khz 的波形,就需要写入相位增加值10737 。相位增加值和频率的计算公式如下:

相位增加值=( fhz * 2^29 )/( 50 * 1000000)

仿真图如下:

编辑:黄飞

 

猜您喜欢


电子设备中,电容和电池都是重要的电能存储器。很多人问,1法拉电容相当于多大电池?本文将对此进行探讨。电容和电池的区别电容器储存电能的方式和电池不一样。电池是化学...
2025-03-26 22:01:39
电子元器件中,二极管作为重要的半导体器件,应用于整流、开关和信号处理等领域。为了确保在设计和应用中能够选择到合适的二极管,了解其型号参数手册表是非常重要的。本文...
2025-04-04 11:31:41
瞬干胶因其快速固化和强力粘接的特性,应用于多个领域。在工业制造中,瞬干胶被用于电子产品的组装,如手机、电脑等,能有效提高生产效率。在汽车行业,瞬干胶用于粘接内饰...
2008-06-19 00:00:00
弹簧缓冲器是应用于机械、汽车和建筑等领域的重要装置,其主要优势体现在以下几个方面。弹簧缓冲器具有良好的减震效果。通过弹簧的弹性变形,能够有效吸收和消散冲击力,减...
2010-09-24 00:00:00
计算器主要优势有哪些?计算器是方便实用的工具,应用于学习、工作和日常生活中。计算器能够快速进行各种数学运算,大大提高了计算效率。无论是简单的加减乘除,还是复杂的...
2019-02-14 00:00:00
还在为查找贴片电阻电容参数而烦恼吗?风华贴片电阻电容选型手册中文版来帮你!这款免费工具,无需破解,即可轻松获取风华全系列贴片电阻电容的详细参数,包括尺寸、阻值、...
2024-11-29 10:26:04
电子元器件领域,贴片电阻因其体积小、性能稳定而被应用。常见的贴片电阻标识中,330和331这两个代码经常被提及,许多初学者和工程师都会疑惑:贴片电阻330和33...
2025-11-17 12:00:06
灯具附件在现代照明中是不可少的配件,其应用领域而多样。在家居照明中,灯具附件如调光器、灯罩和支架等,能够提升家居环境的舒适度与美观性,满足不同场景的需求。在商业...
2020-09-02 00:00:00
葫芦,这种独特的植物,不仅在民间文化中占有一席之地,更因其多种用途而受到青睐。葫芦的果实可用作器具,经过加工后可制成盛水、盛酒等的容器,既实用又具有装饰性。葫芦...
2008-10-24 00:00:00
压敏电阻(Varistor)是非线性电阻器,应用于过电压保护和电路保护中。的工作原理是利用材料的非线性电阻特性,在电压超过某一特定值时迅速降低其电阻,从而保护电...
2025-04-14 01:00:39