当前位置:龙翔文秘网 > 专题范文 > 教案设计 >

基于Verilog HDL的DDS设计与仿真

| 浏览次数:

摘 要:详细阐述利用QuartusⅡ实现DDS(直接数字频率合成器)模块的方法和步骤。首先分析DDS的设计原理,并对其进行系统建模,利用Verilog HDL实现设计并在开发环境下进行功能仿真,选用现场可编程器件FPGA作为目标器件,得到可以重构的IP核,其可以很方便地实现复杂的调频、调相和调幅功能。利用该方法实现的DDS模块具有更广泛的实际意义和更良好的实用性。

关键词:直接数字频率合成器;现场可编程门阵列;Verilog HDL;Quartus Ⅱ;IP核

中图分类号:TN77文献标识码:B

文章编号:1004373X(2008)2001503

Design and Simulation of DDS Based on Verilog HDL

LI Chunjian,JI Wangxi,LIU Dalun

(National Institute of Metrology,Beijing,100013,China)

Abstract:The method and steps of realization of DDS(Direct Digital Synthesizer)on Quartus II is described in detail.This paper analyzes the principle of DDS,builds up a system model,realizes DDS module based on Verilog HDL and simulates it.The IP nucleus of DDS which is built can be reframed.It is very easy to achieve frequency modulation,phase modulation and amplitude modulation with the DDS module.It has more comprehensive and nice practicality.

Keywords:direct digital synthesizer;FPGA;Verilog HDL;Quartus II;IP nucleus

直接数字频率合成技术(Direct Digital Synthesize,DDS)是继直接频率合成技术和锁相式频率合成技术之后的第三代频率合成技术[1]。它采用全数字技术,并从相位角度出发进行频率合成。随着微电子技术和数字集成电路的飞速发展,以及电子工程领域的实际需要,DDS日益显露出优于传统频率合成技术的一些性能,高分辨率、极短的频率切换时间、相位噪声低、便于集成等,逐步成为现代频率合成技术中的佼佼者。

目前,DDS的设计大多是应用HDL(Hardware Description Language)对其进行逻辑描述。整个设计可以很容易地实现参数改变和设计移植,给设计者带来很大的方便。Verilog HDL就是其中一种标准化的硬件描述语言,它不仅可以进行功能描述,还可以对仿真测试矢量进行设计。Altera公司开发的QuartusⅡ设计软件,提供了Verilog HDL的设计界面以及编译平台,并且该公司还集成了可供程序下载的FPGA器件CYCLONE Ⅱ系列芯片,这样大大缩短了DDS的设计周期。

1 DDS的设计原理

DDS的原理图如图1所示。DDS实现频率合成主要是通过查表的方式进行的[2]

正弦查询表是一个只读存储器(ROM),以相位为地址,存有1个或多个按0o~360o相位划分幅值的正弦波幅度信息。相位累加器对频率控制字进行累加运算,若需要还可以加入相位控制字,得到的结果作为正弦波查询表的地址。正弦查询表的输出为数字化正弦幅度值,通过D/A转换器转化为近似正弦波的阶梯波,再通过低通滤波器滤除高频成分和噪声最终得到一个纯正度很高的正弦波。

1.1 建模

如图2所示正弦波y=sin(2πx),若以f量化的量化频率对其幅度值进行量化,一个周期可以得到M=f量化个幅度值。将这些幅度值按顺序存入到ROM。相位累加器在参考时钟的驱动下,每来1个脉冲,输出就会增加1个步长相位增量X,输出数据作为地址送入ROM中,读出对应的幅度值形成相应的波形。

1.2 参数设定

DDS输出信号频率:

fo=fc×X/2N

其中,X为频率累加器设定值;N为相位累加器位数;fc为参考时钟频率。

例如,假定基准时钟为200 MHz,累加器的位数为32,频率控制字X为:

0x08000000H,即为227,则:

fo=200×227/232=6.25 MHz

再设定频率控制字X为0x80000000H,即为231,则:

fo=200×231/232=100 MHz

可见,理论上通过设定DDS相位累加器位数N、频率控制字X和基准时钟fc的值,就可以得到任一频率的输出[3]

频率分辨率为:fres=fc/2N,由参考时钟和累加器的位数决定,当参考时钟的频率越高,相位累加器的位数越高,所得到的频率分辨率就越高。

1.3 方案的选择

在利用FPGA制作DDS时,相位累加器是决定DDS性能的一个关键部分[3]。一方面可以利用进位链来实现快速、高效的电路结构,同时长的进位链会减少其他逻辑的布线资源,限制整个系统速度的提高;另一方面可以利用流水线技术提高工作频率,但系统频率转换速度会相对降低。在选择累加器实现方案时需要综合考虑。

正弦波查询表ROM也是制作的重点。在FPGA中ROM 表的尺寸随着地址位数或数据位数的增加呈指数递增,如何在满足性能的前提下节省资源开销。一方面通过相位累加器的输出截断方式,例如从32位的相位累加器结果中提取高16位作为ROM的查询地址,由此而产生的误差会对频谱纯度有影响,但是对波形的精度的影响是可以忽略的;另一方面可以根据信号周期对称性来压缩ROM的尺寸,这时系统硬件设计复杂度会有所增加。因此,需要选取合适的参数和ROM压缩技术,在满足系统性能的前提下使得系统尽量优化。

2 Verilog HDL实现DDS模块

2.1 相位累加器

module acc(aclr,clock,dataa,datab,result);

inputaclr,clock;//输入输出端口说明

input[31:0] dataa,datab;

output[31:0] result;

reg[31:0] result;

reg[31:0] A;

always@(posedge clock or posedge aclr)//功能实现

begin

if (aclr)

result=0;

else

begin

A=dataa+A;

result=A+datab;

end

end

endmodule

上述为相位累加器的Verilog HDL功能实现,其中数据宽度为32位。同时利用Quartus Ⅱ进行波形仿真见图3。对应的模块符号见图4。

2.2 ROM正弦查询表

根据DDS的原理,将正弦波形的量化数据存储于波形查询表ROM中,即可完成正弦波发生的功能[4]。Altera公司提供了LPM ROM(ROM兆函数),这里只需借助Matlab生成.mif文件,并加载到LPM ROM中即可得到所需的正弦查询表ROM。

在Matlab中,运行下面的语句可以得到储存正弦波数字幅度值的.mif文件。例如产生214×12 b的正弦波0~2π幅度值,语句如下:

>>x=0:1:16383;

>>y=round(1000*sin(2*pi*x/16383))+1000;

>>a=[x;y];

>>fid=fopen(′rom.mif′,′w′);

>>fprintf(fid,′%d:%d;\\n′,a);

>>fclose(fid);

由此而生成的rom.mif文件内容是正弦波0~2π数字幅度值,但是格式不符合.mif文件的格式,需要对其进行修改。.mif文件的格式如下:

WIDTH=12;

DEPTH=16384;

ADDRESS_RADIX=DEC;

DATA_RADIX=DEC;

CONTENT BEGIN

…7646:1208;…

END

这样通过例化LPM ROM得到了正弦波查询表ROM的模块,地址宽度为14位,输出数据为12位。模块符号见图5。

2.3 DDS顶层模块的实现

module dds(clear,clk200,freq,phase,A,sinout);

input clear,clk200;

input [31:0] freq,phase;

output [31:0] A;

output [11:0] sinout;

reg [31:0] A;

wire[13:0] address;//内部信号的定义

assign address=A[31:18];

acc u0(.clock(clk200),.aclr(clear),.dataa(freq),

.datab(phase),.result(A));//相位累加器模块的例化

siomu1(.clock(clk200),.address(address),.q(sinout));

//正弦查询表模块例化

endmodule

上述代码为DDS模块的Verilog HDL顶层文件。对应的模块图见图6。

若需要利用NIOS Ⅱ对其进行控制,需要并将DDS模块加载到NIOS Ⅱ的系统中。例如,通过NIOS Ⅱ为DDS模块的频率控制字freq和相位控制字phase置数。此时DDS的代码应改为:

module dds(clear,clk200,idata,iwr,iclk,addr,A,sinout);

input clear,clk200,iclk,iwr,addr;

input [31:0] idata;

output [31:0] A;

output [11:0] sinout;

reg [31:0] freq,phase,A;

wire[13:0] address;

always@(posedge iclk)

begin

if(iwr)

case(addr)

1"b0:freq=idata;

1"b1:phase=idata;

endcase

end

assign address=A[31:18];

acc u0(.clock(clk200),.aclr(clear),.dataa(freq),

.datab(phase),.result(A));

siomu1(.clock(clk200),.address(address),.q(sinout));

endmodule

模块的输入端口添加了写信号iwr、地址信号addr和与NIOS Ⅱ同步的时钟信号iclk,这样是为了将DDS模块连接到Avalon总线上,利用总线和NIOS Ⅱ进行通信。

加载到NIOS Ⅱ系统之前,需要将该模块进行仿真和调试。仿真结果如图7所示。

至此DDS的数字部分已经完成。

对于整个模块的驱动时钟,若时钟源器件的频率不符合实际需要,需要再设计一个倍(分)频器将其倍频或是分频。例如现有时钟源为50MHz,可以使用FPGA中的PLL(锁相环)实现4倍频得到200 MHz。

参考文献

[1]罗韩君,林亚风,吴伶锡.一种基于DDS技术的新型激光测距系统的设计[J].现代电子技术,2005,28(17 ):42-44.

[2]钟蔚杰,蒋垒,刘耀应.基于VHDL编程的DDS设计\.舰船电子对抗,2007,30(2):102-105.

[3]周俊峰,陈涛.基于FPGA的直接数字频率合成器的设计和实现\.电子技术应用,2002,28(8):34-36.

[4]李威.FPGA/DDS的谐波信号发生器的研究与设计\.南京:河海大学,2007.

[5]夏雨闻.Verilog数字系统设计教程\.北京:北京航空航天大学出版社,2003.

[6]\帕尔尼卡.Verilog HDL数字设计与综合\.夏雨闻,译.北京:电子工业出版社,2004.

[7]汤家华,王道德.基于FPGA设计的采用DDS 技术的任意波形发生器\.电子测量技术,2007,30(4):129-131.

[8]张春荣,张厥盛.DDS/PLL快速调频频率合成器研究[J].西部电子,1993(4):35-39.

[9]彭澄廉,周博,邱卫东,等.挑战SoC[M].北京:清华大学出版社,2004.

[10]周立功.SoPC嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2005.

[11]\坂俊昭.锁相环(PLL)电路设计与应用\.何希才,译.北京:科学出版社,2006.

[12]唐颖,阮越.直接数字频率合成器的FPGA实现\.2005年全国单片机与嵌入式系统学术交流会论文集\.深圳,2005.

作者简介 李春剑 女,1983年出生,中国计量科学研究院在读研究生。


推荐访问:仿真 设计 Verilog HDL DDS

热门排行

学习十九届六中全会精神主题班会教案

学习十九届六中全会精神主题班会教案一、班会主题学习十九届六中全会精神二、班会背景01年11月8至11日,中国共产党第十九届中央委员会第六次全体会议(简称:十...

基于HOLT芯片的1553B总线通信接口的设计

摘要:MIL-STD-1553B是一种具有高可靠传输特性的总线协议,在航空航天等领域占据着十分重要的

基于MATLAB,GUI坐标转换软件设计与实现

【摘要】MATLAB软件是以矩阵为单位进行数据的运算与处理,MATLAB的程序设计过程中,对象的句柄

基于Verilog HDL的DDS设计与仿真

摘要:详细阐述利用QuartusⅡ实现DDS(直接数字频率合成器)模块的方法和步骤。首先分析DDS的

小学六年级语文《表里生物》教案

《表里的生物》主要讲了小时候的“我”认为能发出声音的都是活物,表现了童年的“我”对事物有着强烈的好奇心,是个善于观察、爱思考的孩子。下面是小编为大家整...

农业局廉政党课暨主题教育活动党课教案

农业局廉政党课暨主题教育活动党课教案农业局廉政党课暨主题教育活动党课教案发表时间:011-7-710:13:为“讲党性、重品行、作表率”主题教育活动的廉政党课教案农...

民族纹样在金属材料器械中的设计与应用

【关键词】民族纹样;金属材料;设计;应用我国民族纹样和图案的发展历史非常悠久,是我国劳动人民在长期实

大相对孔径非制冷红外光学系统无热化设计

打开文本图片集摘要:针对当前军工红外成像仪器小型化及宽温度适应性的需要,采用光学被动式无热化方法对8

党课教案,党史【精选推荐】

党课教案》简介:各位老师,各位同学,下午好,首先非常的感谢各位党员老师能在百忙当中来听我的党课,同时也欢迎业余党校的《党课教案》正文开始>>各位老师,各...

霍尔效应教案设计

教学目的:1 使学生理解掌握霍尔效应的内容;2 通过霍尔效应的教学过程,使学生初步了解科学研究的方法