任意信号发生器设计DDS

上传人:xmg****18 文档编号:119864186 上传时间:2020-01-28 格式:DOC 页数:31 大小:254.98KB
返回 下载 相关 举报
任意信号发生器设计DDS_第1页
第1页 / 共31页
任意信号发生器设计DDS_第2页
第2页 / 共31页
任意信号发生器设计DDS_第3页
第3页 / 共31页
任意信号发生器设计DDS_第4页
第4页 / 共31页
任意信号发生器设计DDS_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《任意信号发生器设计DDS》由会员分享,可在线阅读,更多相关《任意信号发生器设计DDS(31页珍藏版)》请在金锄头文库上搜索。

1、.word格式.任意信号发生器设计发布时间:2011-07-08 12:45:53技术类别:CPLD/FPGA修改|删除|置顶目录绪论第1章DDS原理1.1 DDS原理和结构1.2 DDS的特点第2章 系统总体设计2.1设计思路2.2系统设计2.2.2各底层文件管脚图第3章 程序设计与分析3.1程序设计概要3.2核心程序分析3.2.1数控分频器3.2.2多路选择器3.2.3三角波生成器3.2.4可调节占空比的方波3.2.5振幅键控(ASK-Amplitude Shift Keying)3.2.6移频键控(FSK-Frequency Shift Keying)3.2.7移相键控(PSK-Phas

2、e Shift Keying)3.2.8任意波的产生3.2.9正弦信号的产生第4章 仿真与测试4.1 QUARTUSII简介4.2各模块时序仿真结果4.2.1数控分频模块4.2.2波形发生模块4.2.3多路选择器模块4.3硬件测试结束语参考文献谢辞绪论EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。硬件描述语言HDL是EDA技术的重要组成部分,常见的HDL主要有VHDL、VerilogHDL、ABEL、AHDL、Syste

3、mVerilog和SystemC。其中VHDL、VerilogHDL在现在的EDA设计中使用最多,并且我们学习的是VHDL的编程方法和实用技术。VHDL的英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,由IEEE(The Institute of Electrical and Electronics Engineers)进一步发展,并在1987年作为“IEEE标准1076”公布。从此VHDL成为硬件描述语言的业界标准之一。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的

4、劳动强度。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。本文主要介绍了EDA在设计波形发生器中的应用,完成了锯齿波、三角波、占空比可调的方波、占空比50%的方波以及正弦波设计,同

5、时还能起到对频率、幅值、占空比的调节,用原理图及VHDL语言完成了整个系统的设计,并用实验箱完成了所有功能硬件调试。第1章DDS原理1.1DDS原理和结构基于DDS技术的函数信号发生器由相位累加器、波形存储器ROM、数模转换器DAC和低通滤波器LPF组成,相位累加器和波形存储器ROM在FPGA器件EP1K30TC144-3中实现,系统框图如图1所示:图1 DDS系统框图在系统时钟脉冲fc的作用下,相位累加器以步长K不停地累加(K又称为频率控制字),累加输出作为ROM地址输入进行查表,ROM输出值即是波形数字幅度值,把该数据送至DAC转换成模拟量输出,再经滤波器平滑后输出所需波形。由相位累加器字

6、长N的限制,累加到一定值后输出将会溢出,这样波形存储器的地址就会循环一次,即输出波形循环一周。因此改变步长就可以改变相位累加器的溢出时间,在时钟不变的条件下就可改变输出频率。输出波形的频率为(1)由式(1),合成信号最低频率,最高频率, 当相位累加器位宽N和基准时钟频率达到一定要求时,输出频率范围可以很宽,输出分辨率可以很小,趋近于0,这是传统信号发生器无法达到的。1.2DDS的特点优点:(1)输出频率相对带宽较宽输出频率带宽为50%fs(理论值)。但考虑到低通滤波器的特性和设计难度以及对输出信号杂散的抑制,实际的输出频率带宽仍能达到40%fs。(2)频率转换时间短DDS是一个开环系统,无任何

7、反馈环节,这种结构使得DDS的频率转换时间极短。事实上,在DDS的频率控制字改变之后,需经过一个时钟周期之后按照新的相位增量累加,才能实现频率的转换。因此,频率时间等于频率控制字的传输,也就是一个时钟周期的时间。时钟频率越高,转换时间越短。DDS的频率转换时间可达纳秒数量级,比使用其它的频率合成方法都要短数个数量级。(3)频率分辨率极高若时钟fs的频率不变,DDS的频率分辨率就是则相位累加器的位数N决定。只要增加相位累加器的位数N即可获得任意小的频率分辨率。目前,大多数DDS的分辨率在1Hz数量级,许多小于1mHz甚至更小。(4)相位变化连续改变DDS输出频率,实际上改变的每一个时钟周期的相位

8、增量,相位函数的曲线是连续的,只是在改变频率的瞬间其频率发生了突变,因而保持了信号相位的连续性。(5)输出波形的灵活性只要在DDS内部加上相应控制如调频控制FM、调相控制PM和调幅控制AM,即可以方便灵活地实现调频、调相和调幅功能,产生FSK、PSK、ASK和MSK等信号。另外,只要在DDS的波形存储器存放不同波形数据,就可以实现各种波形输出,如三角波、锯齿波和矩形波甚至是任意的波形。当DDS的波形存储器分别存放正弦和余弦函数表时,既可得到正交的两路输出。(6)其他优点由于DDS中几乎所有部件都属于数字电路,易于集成,功耗低、体积小、重量轻、可靠性高,且易于程控,使用相当灵活,因此性价比极高。

9、缺点:DDS也有局限性,主要表现在:(1)输出频带范围有限由于DDS内部DAC和波形存储器(ROM)的工作速度限制,使得DDS输出的最高频有限。目前市场上采用CMOS、TTL、ECL工艺制作的DDS工习片,工作频率一般在几十MHz至400MHZ左右。采用GaAs工艺的DDS芯片工作频率可达2GHz左右。(2)输出杂散大由于DDS采用全数字结构,不可避免地引入了杂散。其来源主要有三个:相位累加器相位舍位误差造成的杂散;幅度量化误差(由存储器有限字长引起)造成的杂散和DAC非理想特性造成的杂散。第2章 系统总体设计2.1设计思路采用原理图与VHDL语言结合的方法完成整个系统的设计,其中,PULSE

10、为数控分频模块,包括一个时钟输入、一个4位的数控值输入和一个频率输出,输出的频率用于递增锯齿波、递减锯齿波、三角波、占空比可调方波、正弦波和标准方波、振幅键控、移频键控、移相键控、任意波的时钟输入,以实现各信号的频率调节。r_zeng为递增锯齿波,其设计方法是每一次时钟信号出现上升沿,则给输出信号加1,直到输出信号为全1,此时将输出信号清零。Left_zeng为递减锯齿波,其设计方法是每一次时钟信号出现上升沿,则给输出信号减1,直到输出信号为0,此时将输出信号置为全1。sanjiaobo为三角波发生器,其设计方法是以一个信号a控制,当a为0时,每一次时钟信号出现上升沿,则给输出信号加1,当a为

11、1时,每一次时钟信号出现上升沿,则给输出信号减1,a由输出信号的值控制,当输出信号为全1时,给a置1,当输出信号为0时,给a清0。Square_ketiao为占空比可调方波,其设计方法是在标准方波的基础上,引入两个调节按键up和down,以增加和减小方波的占空比,在这两个按键的设计上,采用了上升沿和下降沿的判断方式,以调节控制变量z的大小,最后完成占空比的调节。sine为正弦波,其设计方法是设计一个正弦波的数据表和一个控制变量tmp,时钟上升沿控制tmp的增加,tmp对应正弦数据表中的相应数据。square为标准方波,其设计方法同占空比可调的方波,只是它的控制变量是一个恒定值,使其占空比为50

12、%。图2系统框架2.2系统设计2.2.2各底层文件管脚图根据给出的系统原理图,下面分别列出各底层文件管脚图。数控分频器如图4所示:图3数控分频器管脚其中,CLK为外部输入时钟,D3.0为数控分频的计数值输入端,FOUT为分频频率输出。多路选择器如图5所示:图4多路选择器其中,CLK为外部输入时钟,SEL为多路选择器的选择输入信号,D0-D5为6路信号的输入,Q7.0为频率输出,各波形产生器如图6所示:图5各波形发生器管脚其中,CLK为分频后的时钟信号输入端,Q7.0为输出的一个8位数据,供DAC0832的数据输入。第3章 程序设计与分析3.1程序设计概要本课程设计主要完成与任意波形信号发生相关

13、的VHDL语言程序设计与控制综合,体现了VHDL从顶向下的设计思想,同时对初学者来说也是一个不错的练习机会。从整体设计上将要产生的几个波形分开设计,与C语言设计有点类似,不过VHDL语言作为一种硬件描述语言,其本质与C语言不同,它完成的是实际的硬件电路的配置,而C语言完成的是控制、运算等。3.2核心程序分析3.2.1数控分频器P_REG: PROCESS(CLK)VARIABLE CNT8 :STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF CLKEVENT AND CLK = 1 THENIF CNT8 = 1111 THENCNT8 := D;FULL = 1;EL

14、SECNT8 := CNT8 + 1;FULL = 0;END IF;END IF;END PROCESS P_REG ;以D为基数的一个计数器,时钟上升沿触发,当CNT8“1111”时给CNT8载入初值,同时给FULL一个时钟周期的高电平,使其周期性的输出一个脉冲信号。P_DIV: PROCESS(FULL)VARIABLE CNT2 : STD_LOGIC;BEGINIF FULLEVENT AND FULL = 1 THENCNT2 := NOT CNT2;IF CNT2 = 1 THENFOUT = 1;ELSEFOUT out_boout_boout_boout_bo=ask;-输出振幅

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号