基于VHDL的直接数字频率合成器设计与实现.doc_第1页
基于VHDL的直接数字频率合成器设计与实现.doc_第2页
基于VHDL的直接数字频率合成器设计与实现.doc_第3页
基于VHDL的直接数字频率合成器设计与实现.doc_第4页
基于VHDL的直接数字频率合成器设计与实现.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于VHDL的直接数字频率合成器设计与实现 20世纪60年代末,伴随数字集成电路与微电子技术的发展出现了直接数字频率合成器(DDS),它与传统的频率合成技术相比较,具有极高的频率分辨率与稳定度、转换时间短、输出信号的频率、相位、幅度可控等诸多优点,易于实现调频、调相、调幅等多种信号,因而得到广泛应用。本文从DDS的电路结构与具体参数的设计出发,详细论述了DDS的VHDL语言实现过程,给出了频率控制字长为24位的完整的VHDL,代码。1 DDS的工作原理目前,比较广泛使用的一种DDS设计方案是查找法,如图1所示,其基本工作原理是通过频率控制字的累加与相位控制字相加形成访问波形表的地址,然后通过地址映射,输出波形的幅度信息给DAC电路,再通过DAC中的LPF,得到相应的波形信号。以正弦信号合成为例,设输出信号的频率为fo,在不考虑初相位的条件下,其瞬时相位:=2fot,一个Tclk内,相位的变化总量为:实际当中,确定相位量化字长N的大小,并不是任意的,它既取决于上面两个因素,也与量化信噪比有关。文献7给出了较为详细的讨论。如正弦波合成时,相位量化的信噪比与幅度量化的信噪引起的总信噪比估计为:其中D为正弦信号振幅量化字长。相位量化字长N越大,所需的查表法空间越大,因此设计DDS时,要合理选择N,D的大小。当N,D取定后,应根据波形特点,进一步采用ROM压缩技术减小所需单元的数量。如合成正弦信号时,可根据信号的对称性,仅存储02的幅度值,这样可以将ROM大小压缩为原来的14。2 VHDL语言实现程序设计包含三个部分:数据输入、相位累加和ROM查找,分别由三个进程实现。data_in进程:在WR=0并CLK=1时,写频率控制字;phase_add进程:在CLK上升沿,做相位累加,并取累加结果的高12位的低10位用于ROM表的地址,其最高位与次高位分别送s_1和s_2用来正弦相位区间控制;lookfor_rom进程:在CLK上升沿,按照phase_add进程提供的地址寻址,并对寻址结构按s_1和s_2所划分的四个象限进行数据处理,并将处理的结果输出。相位控制的具体操作如表1所示。下面程序为正弦DDS的VHDL实现。相位量化字长为24 b,振幅量化字长采用10 b。完整的程序代码如下:程序中的component dds_rom元件可通过Max+Plus II的File菜单中的MegaWizard Plug-in Manager创建一个LPM_ROM,名为dds_rom.vhl,该元件创建前,需按照图2所示的mif文件格式创建一正弦波形数据文件(如名为:sin_data.mif),该数据文件存有正弦14周期波形数据。由于波形数据文件中数据较多,可通过C语言编程生成数据,生成正弦波形采样数据文件的C程序代码如下:将这个C语言程序存为singen.c,编译链接后生成singen.exe,即可在DOS命令行下执行:就可以生成.mif文件中的波形数据。3 结 语文中有关代码均是通过Max+Plus 10.2编译通过的,读者可稍加修改就可以用于自己的实际系统设计。相位累加器可采用流水线型超前进位加法器实现,同时可增加同步相位取模器以改善DDS的性能,或采用C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论