时间:2022-07-01 01:42:09
[摘 要]介绍直接数字频率合成器(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.