基于FPGA的DDS信号源设计

时间:2022-07-01 01:42:09

基于FPGA的DDS信号源设计

[摘 要]介绍直接数字频率合成器(DDS)的基本原理,基于Altera的FPGA器件实现DDS的设计方法,给出了各个模块的设计思路,功能和编程实现方法。

[关键词]DDS FPGA

中图分类号:TN741 文献标识码:A 文章编号:1009-914X(2013)36-0555-02

引言

随着数字信号处理技术(DSP)的飞速发展,以香农采样定理为基础的直接数字频率合成技术(DDS)的日益成熟,很多半导体公司都开发了专用的DDS集成芯片。由于专用芯片的灵活性差,某些场合可能不适用,这时采用FPGA对DDS信号源进行符合要求的开发将会是不错的选择。本文将介绍基于FPGA的DDS信号源设计方法。

1.DDS基本原理

DDS信号源主要由参考时钟、相位累加器、波形存储器、DAC、低通滤波器(LPF)五部分组成。其结构框图为(图1):

在一个参考时钟的周期内,频率控制字与相位累加器前一个输出通过N位加法器线性累加,送入N位寄存器锁存。在下一个参考时钟到来时,N位寄存器的输出反馈到N位加法器的输入,又一次与频率控制字累加,如此循环。同样在参考时钟的控制下,从相位累加器输出的相位数字量作为波形存储器的存储地址,取得波形数据送入D/A转换器,转换得到模拟量波形,通过低通滤波器(LPF)过滤掉高频噪声等干扰信号,产生频率一定的波形。

DDS信号源的基本方程式如下:

其中,是信号源的输出频率,是参考时钟频率,是频率控制字,N是加法器的位数。

只要由频率控制字给定初始频率,设置好加法器位数N和参考时钟,就可以得到相应的输出频率。DDS信号源的频率特性主要是体现在频率分辨率上,当=1时,能够分辨出的信号的最小频率如下:

由此可见,当相位加法器的位数N越多,频率分辨率就越高。

2.FPGA实现方法及各模块的设计

这里用Altera公司的cyclone IV系列的 EP4CE15F17C8型号的FPGA模拟DDS原理。主要建立相位累加器,相位寄存器,按键控制及波形ROM表等模块。

(1)相位累加器模块

相位累加器主要是完成对频率控制字和相位寄存器输出的简单加法。我们

选相位累加器位数为32位。此模块核心代码如下:

always @(posedge clk or negedge rst)

begin

if(!rst)

begin

phase0

end

else

phase0

end

最大优点简单可靠,还具有优化空间,可以运用流水线设计方法来节省逻辑资源。

(2)相位寄存器模块

相位寄存器主要是暂存当前相位值,这里取其高10位作为后续波形查找表

ROM的选择地址。此模块的核心代码如下:

always@(posedge clk or negedge rst)

begin

if(!rst)

begin

address0

end

else

address0

end

(3)按键控制模块

按键控制是整个信号源对频率调节的最重要的模块,这里采用仿顺序操作的

方式,对频率控制字进行调节,可实现给定改变,频率步进的改变和增减,波形的选择等。此模块的Verilog代码如下:

always@(posedge clk or negedge rst)

begin

if(!rst)

begin

length

wavemode

single_frc

end

else

begin

key=keyin;

case(key)

3'b001:

begin

case(single_state)

1:wavemode= 2'b01;//sin

2:wavemode= 2'b10;//fangbo

3:wavemode= 2'b11;//sanjiaobo

default:

begin

wavemode=2'b01;

single_state= 0;

end

endcase

single_state= single_state+1;

end

3'b010:

begin

if(length==32'd5726622)//200KHZ

length=32'd2863;

length= length + single_frc;

end

3'b100:

begin

if(length==32'd2863)

length=32'd5726622;

length = length - single_frc;

end

endcase

end

end

(4)波形查找表

信号源的波形数据是通过Matlab对各种波形采样所得,生成后缀为.mif的数

据文件,导入到quartusII中。运用IP核建立ROM模块。此处用到的地址为10位,由于D/A转换芯片选择的是DAC0808,为8位芯片,故而输出为8位波形数据。

3.信号源波形

正弦波,方波和三角波是本设计的测试波形。实测如下:

4.结束语

运用FPGA设计DDS信号源,软件部分全部在quartusII的环境下完成调试

硬件还需要D/A转换电路和滤波电路。它具有输出灵活,性价比高,开发周期短等优点。目前正有向标准化,产品化方向发展的趋势。它可以达到高达几兆的频率且不失真,具有快速切换频率的特征,这也是其优于专用芯片之处。本设计还有许多可以优化的地方,如考虑流水线设计做累加模块,利用波形数据的对称性只存放一半的波形数据,节省ROM硬件资源等。如果能合理应用FPGA的IP内核,采用SOPC技术定能做出性能更优越的DDS信号源。

参考文献

[1] 李勇,艾竹君,刘巧云等.基于FPGA的DDS设计方法,低温与超导,2007,35(6).

[2] 高士友,胡学深,杜兴莉等.基于FPGA的DDS信号发生器设计,现代电子技术,2009,32(16).

[3] Altera cyclone IV datasheet.

上一篇:浅谈影视动画作品中的环境塑造 下一篇:浅谈知识产权人才培养