当前位置:无忧公文网 >范文大全 > 征文 > DDS的Verilog设计及QuartusⅡ与Matlab联合仿真

DDS的Verilog设计及QuartusⅡ与Matlab联合仿真

时间:2022-05-03 17:20:06 浏览次数:

摘 要:介绍了直接数字频率合成器的组成及工作原理。采用Verilog语言在Altera 公司的FL EX10K系列器件上实现该系统,并通过QuartusⅡ和Matlab软件对设计进行联合仿真,验证设计的正确性。模块中的相位累加器使该系统具有较高的频率分辨率,可实现快速频率切换,有广泛的应用价值。

关键词:数字频率合成器;Verilog;QuartusⅡ;Matlab

中图分类号:TN911文献标识码:A

文章编号:1004-373X(2009)12-163-02

Verilog Design of DDS and Simulation Between Quartus Ⅱ and Matlab

LEI Nengfang

(Weinan Teachers University,Weinan,714000,China)

Abstract:Principle and composition of the DDS are introduced,and the DDS system based on FLEX10K device is realized by Verilog language.Correctness of design is verified by using the simulator of QuartusⅡ and Matlab.The phase adder in the model is widely applied which can enable system to hold high frequency revolution,fast frequency switching.

Keywords:DDS;Verilog;QuartusⅡ;Matlab

直接数字频率合成器(Digital Direct Synthesizer,DDS)是以数字信号处理理论为基础,从信号的幅度相位关系出发进行频率合成的。与传统的频率合成器相比,DDS具有极高的分辨率,快速的频率转换时间,很宽的相对带宽、任意波形的输出能力和数字调制等优点。本文研究的是正弦输出的DDS技术,这类直接数字合成技术最具价值,应用也最为广泛。

1 DDS工作原理

DDS 主要由相位累加器、函数表ROM存储器、D/A转换器及低通滤波器组成,其基本原理如图1 所示。

图1 直接数字频率合成器原理框图

正弦波的信号幅值以数据表的形式存储在ROM 存储器中。相位累加器在时钟的作用下以频率控制字为步进进行相位累加,累加结果依次作为ROM 存储器的地址,取出相应的幅值数据送D/A 转换器,以产生阶梯波形,阶梯波形经低通滤波器滤波后得到相应的正弦波形。

设时钟频率为fc,输出频率为fo,频率建立字FSW用相位增量Δφf表示。

若累加器的宽度为N位,查询表ROM的输出位数为M,则2N就相当于2π rad;N位中的最低有效位相当于2π/2N rad,即最小的相位增量;Δφf对应的相位为Δφf×2π/2N rad;完成一个周期的正弦波输出需要2π/Δφf×2π/2N=2N/Δφf个参考时钟周期,所以一个参考时钟周期Tc内输出频率的周期为:

To=(2N/Δφf)Tc

输出频率与查询表ROM的输出位数M无关。在一定的时钟频率fc下,相位增量Δφf决定了合成信号的频率,故Δφf被称为频率控制字,习惯上用K表示。因此合成信号的频率为:

fo=(K/2N)fc

当时钟频率fc固定时,改变频率控制字,可以改变合成信号的频率fo;当K=1时,输出频率最低,即:

fomin=Δfo=(1/2N)fc

式中:Δfo为DDS的频率分辨率。

2 系统设计

系统设计采用美国ALTERA公司的CPLD(EPF10K10LC84-4)实现。

2.1 系统Verilog源程序

系统Verilog源程序为:

module fun_text (M,sin,acc,clk);

parameter WIDTH = 32;

input[WIDTH-1:0]M;

output [7:0]sin,acc;

inputclk;

wire [WIDTH-1:0] s,acc32;

wire [7:0]msbs;

wireADD,ena,aset,sclr,sset;

wire aload,sload,aclr,ovf1,cin1,clkena;

assign clkena=0;assign cin1=0;assign ADD=1;

assign ena=1;assign aclr=0;assign aset=0;

assign sclr=0;

assign sset=0;assign aload=0;assign sload=0;

lpm_add_sub add_1

(.result(s),.dataa(acc32),.datab(M));

defparam add_1.lpm_width = WIDTH;

defparam add_1.lpm_representation = "UNSIGNED";

lpm_ff reg_1

(.data(s),.q(acc32),.clock(clk));

defparam reg_1.lpm_width = WIDTH;

assign msbs = acc32[WIDTH-1:WIDTH-8];

assign acc= msbs;

lpm_rom rom1

(.q(sin),.inclock(clk),.outclock(clk),

.address(msbs));

defparam rom1.lpm_width = 8;

defparam rom1.lpm_widthad = 8;

defparam rom1.lpm_file = "sine.mif";

endmodule

2.2 ROM定制

在编译源程序前,必须首先完成存放波形数据ROM的定制。利用MegaWizard Plug-In Manager 定制lpm_rom 宏功能块,将波形数据加载于此ROM中。QuartusⅡ能接受的LPM_ROM 中的初始化数据文件的格式有2 种:Memory Initialization File (.mif)格式和Hexadecimal(Intel-Format)File(.hex)格式。实际应用中只要使用其中一种格式的文件即可,可利用Matlab或C语言编程对正弦函数进行采样生成初始化数据文件。产生正弦波采样点数据的C语言程序如下:

#include

#include "math.h"

main()

{int i;float s;

for(i=0;i<1024;i++)

{ s = sin(atan(1)*8*i/1024);

printf("%d : %d;\\n",i,(int)((s+1)*1023/2));

} }

2.3 QuartusⅡ与Matlab联合仿真

在将设计文件加载到FPGA之前,为了验证设计的正确性,必须对设计进行全面充分的仿真。Altera公司提供的QuartusⅡ软件除了具有强大的编译综合功能外,还提供一定的时序仿真功能。但其输入和输出均以时序图的形式给出,仿真结果不直观。利用MathWorks公司强大的数值计算与分析软件Matlab及Altera公司的QuartusⅡ实现联合仿真,可大大加强QuartusⅡ的仿真功能,提高设计效率。

利用QuartusⅡ提供的Simulation 对上述程序进行时序仿真,得到仿真时序图(见图2)。由时序图可见,随着每一个时钟上升沿的到来,输出端口将正弦波数据依次输出。

图2 QuartusⅡ时序仿真结果

将仿真生成的波形文件*.vwf另存为*.tbl格式文件。以数据文件输入的方式将此*.tbl文件中的QuartusⅡ仿真输出信号的数值导入Matlab中,进行波形仿真验证,得到如图3所示波形。

图3 Matlab仿真波形

3 结 语

根据仿真波形可以看到,DDS系统的输出波形平滑,满足一般系统的要求。DDS已广泛应用于接收机本振、信号发生器、通信系统、雷达系统,且特别适合于跳频无线通信系统。未来的DDS 不仅应用于传统上需要使用信号源的领域,而且必将开拓许多新的应用领域。同时利用QuartusⅡ与Matlab联合仿真,在开发FPGA过程中对增强电子设计自动化(EDA)功能、提高FPGA设计效率具有普遍意义。

参考文献

[1]刘凌.数字信号处理的FPGA实现[M].北京:清华大学出版社,2006.

[2]杨刚,龙海燕.现代电子技术:VHDL与数字系统设计[M].北京:电子工业出版社,2004.

[3]韩喜春,刘柏森.基于FPGA的可重构多通道DDS信号发生器[J].电测与仪表,2007(7):50-52.[4]潘松.EDA技术实用教程[M].北京:科学出版社,2005.

[5]王旭东,潘广桢.Matlab及其在FPGA中的应用[M].北京:国防工业出版社,2006.

[6]谭会生.EDA技术基础[M].长沙:湖南师范大学出版社,2004.

[7]朱正伟.EDA技术及应用[M].北京:清华大学出版社,2005.

[8]侯继红,李向东.EDA实用技术教程[M].北京:中国电力出版社,2004.

[9]江晓安.数字电子技术[M].西安:西安电子科技大学出版,2006.

[10]冯涛,王程.Max+PlusⅡ入门与提高[M].北京:人民邮电出版社,2002.

[11]唐亚平.电子设计自动化(EDA)技术[M].北京:化学工业出版社,2004.

[12]李国洪,申明山.可编程器件EDA技术与实践[M].北京:机械工业出版社,2004.

推荐访问: 仿真 联合 设计 DDS VERILOG