基于Verilog_HDL的DDS设计与仿真

基于Verilog_HDL的DDS设计与仿真

ID:44067575

大小:184.46 KB

页数:7页

时间:2019-10-18

基于Verilog_HDL的DDS设计与仿真_第1页
基于Verilog_HDL的DDS设计与仿真_第2页
基于Verilog_HDL的DDS设计与仿真_第3页
基于Verilog_HDL的DDS设计与仿真_第4页
基于Verilog_HDL的DDS设计与仿真_第5页
资源描述:

《基于Verilog_HDL的DDS设计与仿真》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于VerilogHDL的DDS设计与仿真直接数字频率合成技术(DirectDigitalSynthesize,DDS)是继直接频率合成技术和锁相式频率合成技术之后的第三代频率合成技术。它釆用全数字技术,并从相位角度出发进行频率合成。随着微电子技术和数字集成电路的飞速发展,以及电子工程领域的实际需要,DDS口益显露出优于传统频率合成技术的一些性能,高分辨率、极短的频率切换时间、相位噪声低、便于集成等,逐步成为现代频率合成技术中的佼佼者。目前,DDS的设计大多是应用HDL(HardwareDescriptio

2、nLanguage)对其进行逻辑描述。整个设计可以很容易地实现参数改变和设计移植,给设计者带来很大的方便。VerilogHDL就是其中一种标准化的硕件描述语言,它不仅可以进行功能描述,还可以对仿真测试矢量进行设i+oAltera公司开发的QuartusII设计软件,提供了VerilogHDL的设计界面以及编译平台,并且该公司还集成了可供程序下载的FPGA器件CYCLONEII系列芯片,这样大大缩短了DDS的设计周期。1DDS的设计原理DDS的原理图如图1所示。DDS实现频率合成主要是通过查表的方式进行的。正

3、弦查询表是一个只读存储器(ROM),以相位为地址,存有「个或多个按0。〜360°相位划分幅值的正弦波幅度信息。相位累加器对频率控制字进行累加运算,若需要还可以加入相位控制字,得到的结果作为正弦波查询表的地址。正弦查询表的输出为数字化正弦幅度值,通过D/A转换器转化为近似正弦波的阶梯波,再通过低通滤波器滤除高频成分和噪声最终得到一个纯正度很高的正眩波。刨位图1DDS原理枢图1.1建模如图2所示正眩波y=sin(2Trx),若以f量化的量化频率对其幅度值进行量化,一个周期可以得到M二f量化个幅度值。将这些幅度值

4、按顺序存入到ROMo相位累加器在参考时钟的驱动下,每来1个脉冲,输出就会增加1个步长相位增fiX,输出数据作为地址送入ROM屮,读出对应的幅度值形成相应的波形。1.2参数设定DDS输出信号频率:人=兀XX/2N其中,X为频率累加器设定值;N为相位累加器位数;fc为参考时钟频率。例如,假定基准时钟为200MHz累加器的位数为32,频率控制字X为:0X08000000H,即为227,贝I」:/o=200X227232=6.25MHz再设定频率控制字X为0X80000000H,即为231,则:人=200X2^/2

5、^=100MHz可见,理论上通过设定DDS相位累加器位数N、频率控制字X和基准时钟fc的值,就可以得到任一频率的输出。频率分辨率为:fres=fc/2N,由参考时钟和累加器的位数决定,当参考时钟的频率越高,相位累加器的位数越高,所得到的频率分辨率就越高。1.3方案的选择在利用FPGA制作DDS时,相位累加器是决定DDS性能的一个关键部分。一方面可以利用进位链来实现快速、高效的电路结构,同时氏的进位链会减少其他逻辑的布线资源,限制整个系统速度的提高;另一方面可以利用流水线技术提高工作频率,但系统频率转换速度会

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

7、量优化。2VerilogHDL实现DDS模块2.1相位累加器moduleacc(aclr•clocktdataaiinputaclr>clocki//输入输出瑞口说明input[31:0]daiaa^datahioutput[31:0]resultireg[31=0]result:reg⑶2]Aialways@(posedgeclockorposedgeack)〃功能实现beginif(aclr)result2=50jekebeginA=dataa4"Asresult=A-Fdatabsendendendm

8、odule上述为相位累加器的VerilogHDL功能实现,其中数据宽度为32位。同时利用QuartusII进行波形仿真见图3。对应的模块符号见图4。图2正弑泼童化图3相位模块仿真结果2.2ROM正弦查询表根据DDS的原理,将正弦波形的量化数据存储于波形查询表ROM屮,即可完成正眩波发生的功能。Altera公司提供了LPMROM(ROM兆函数),这里只需借助Matlab生成.mif文件,并加载到LPMROM中即可得

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。