基于DDS的可编程波形发生器

更新时间:2024-06-17 17:13:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

陕西理工学院毕业论文(设计)

引言

现代电子测量对信号源频率的准确度、稳定度要求越来越高。一个信号源输出的信号频率的准确度、稳定度在很大程度上是由主振器输出信号频率的稳定度所决定。传统的LC、RC振荡电路已满足不了高性能信号源要求,而利用频率合成器代替传统的调谐信号源中的LC、RC振荡电路就可以有效地解决上述问题。频率合成技术始于上世纪30年代,随着电子技术的飞速发展,频率合成的技术的发展大致上可分成直接模拟频率合成技术、锁相频率合成技术、直接数字频率合成技术三个阶段。 1、传统的直接频率合成技术(DS) 。该类方法能实现快速频率变换,具有低相位噪声以及所有方法中最高的工作频率。但由于采用大量的倍频、分频、混频和滤波环节,导致其结构复杂、体积庞大、成本昂贵,而且容易产生过多杂散分量。

2、锁相环式频率合成器(PLL)。该类技术具有良好窄带跟踪特性,可选择所需频率信号,抑制杂散分量,且省去大量滤波器,有利于集成化和小型化。但由于锁相环本身是个惰性环节,锁定时间较长,因而频率转换时间较长,且由模拟方法合成的正弦波的参数(如幅度、频率和相位等) 都难以定量控制。

3、直接数字式频率合成器(Direct Digital Frequency Synthesizer)。该类方法具有高频率稳定度、高频率分辨率以及极短的频率转换时间。此外,全数字化结构便于集成,输出相位连续,频率、相位和幅度均可实现程控,而且理论上能够实现任意波形。

随着数字技术和器件水平的提高,直接数字频率合成得到了飞速的发展.它是继直接频率合成和间接频率合成之后发展起来的第三代频率合成技术,它突破了前两代频率合成法的原理,从“相位”的概念出发进行频率合成,这种方法不仅可以产生不同频率的正弦波、方波、三角波,而且可以控制波形的初始相位,还可以用DDS方法产生任意波形。

第 1 页 共 36 页

陕西理工学院毕业论文(设计)

1 概述

1.1 课题背景

随着数字技术在仪表和通行系统中的广泛应用,一种从参考频率源生成多种频率的数字控制方法应运而生,这就是DDS,DDS技术是一种从相位概念出发直接合成所需波形的一种新的全数字频率合成技术。

在电子行业的基础设施和制造等领域,波形发生器都是有效的通用仪器。它可以生成不同频率和幅度的大量信号,用来评估新电路的运行情况,代替时钟信号,对新产品进行制造测试,及用于许多其他用途。自第一部正弦波发生器问世以来,波形发生器的设计已经发生了多次演进,在当前数字领域中,大多数新型波形发生器正采用DDS这种新技术。DDS在大部分操作中使用数字电路,从而提供了数字操作拥有的许多优势。由于信号只在合成的最后阶段转换的模拟域中,所以在多个方面降低了波形发生器的复杂度,提高了波形发生器的稳定度。

最新的波形发生器利用了DDS的优势,能够把多台不同仪器中的功能融合到一部仪器中。基于DDS的函数发生器现在不仅可移植函数发生器的功能,还可以执行任意波形发生器的功能。除此之外,某些仪器还是功能强大脉冲发生器。这些功能会给传统测试法案带来一次革命。

1.2 课题研究的目的和意义

波形发生器作为电子技术领域中最基本的电子仪器,广泛应用于航空航天测控、通信系统、电子对抗、电子测量、科研等各个领域中。随着电子信息技术的发展,对其性能的要求也越来越高,如要求频率稳定性高、转换速度快,具有调幅、调频、调相等功能。

随着数字集成电路和微电子技术的发展和提高,一种新的频率合成技术直接数字频率合成得到飞速发展,它是继直接频率合成和间接频率合成之后发展起来的第三代频率合成技术。该技术在相对带宽、频率转换时间、相位连续性、正交输出、高分辨率以及集成化等一系列性能指标已远远超过传统的频率合成技术所能达到的水平。

直接数字频率合成器的基本结构由J.Tierney在1971年首次提出。限于当时的技术和器件水平.它的性能指标尚不能与已有技术相比,故未受到重视。近年来随着数字集成电路和微电子技术的进步,这种结构独特的频率合成技术得到了充分的发展。该技术在相对带宽、频率转换时间、相位连续性、正交输出、高分辨力以及集成化等一系列性能指标已远远超过了传统的频率合成技术所能达到的水平。

1.3 国内外概况

二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过GHz的DDS芯片,同时也推动了函数波形发生器的发展,2003年,Agilent的产品33220A能够产生17种波形,最高频率可达到20M,2005念得产品N6030A能够产生高达500MHz的频率,采样的频率可达1.25GHz。有上面的产品可以看出,函数波形发生器发展很快。

第 2 页 共 36 页

陕西理工学院毕业论文(设计)

对目前而言,国外研究和使用的波形发生器大多要求频率在10?6Hz-50MHz,产生正弦、三角、锯齿、方波、调幅等波形,而国内则对频率在5*10?3Hz-40MHz,能产生正弦、三角等基本波形的波形发生器需求大。

1.4 MAX+PLUSⅡ简介 MAX+PLUSⅡ介绍:

MAX+PLUSⅡ开发系统是Altera公司的一个完全集成化、易学易用的可编程逻辑设计环境,它可以在多种平台上运行。MAX+PLUSⅡ是Multiple array matrix and programmable logic user system 的缩写,目前已发行到了第10.0版本。它所提供的灵活性和高效性是无可比拟的。其丰富的图形界面,辅之以完整的、可即时访问的在线文档,使设计人员能够轻松的、愉快的掌握和使用MAX+PLUSⅡ软件。

MAX+PLUSⅡ的设计过程: 一、设计输入

MAX+PLUSⅡ软件的设计输入方法有很多种,主要包括原理图输入方式、文本设计输入方式、高级设计输入方式、波形设计输入方式、层次设计输入方式和底层设计输入方式。另外,还可以利用工业标准的EDA设计输入工具生成的设计文件,该软件把这些设计输入方式综合为一个设计体系,并允许信息在各应用程序间自由转换。因此,设计人员可以根据自己的实际情况灵活选择使用

二、设计处理

MAX+PLUSⅡ处理一个设计时,编译器在设计文件中读取信息并产生编程文件和仿真文件,定时分析程序可分析设计的定时,信息处理程序可自动定位错误。

三、设计效验

设计校验过程包括设计仿真和定时分析,其作用是测试逻辑操作和设计的内部定时。 (1)、仿真

MAX+PLUSⅡ的仿真器具有很强的灵活性,可以控制对单器件或多器件设计的仿真。仿真器使用编译期间生成的二进制仿真网表进行功能、定时的仿真,或把组合连接起来的多个器件作为一个设计进行仿真。 (2)、定时分析

MAX+PLUSⅡ的定时分析程序可以计算点到点的器件延时矩阵,确定器件引脚上的建立时间与保持时间要求,还可计算最高的时钟频率。MAX+PLUSⅡ的设计输入工具与定时分析程序集成在一起,这样只需简单的将设计中的起点和终端加上标志即可确定最短与最长的传播延时。此外,信息处理程序可以找出定时分析程序在设计文件中已证实的关键路径,并在适当的设计编辑器中加以显示。 四、器件编程

MAX+PLUSⅡ是使用编译器生成的编程文件对Altera器件进行编程的,它可以用来对器件编程、校验、试验,检查是否空白以及进行功能测试。Altera公司器件的编程方法有很多种,可根据实际情况进行选择。计算机及Altera专用编程电缆进行配置。编译生成的配置文件经计算机并行通信口

第 3 页 共 36 页

陕西理工学院毕业论文(设计)

接到Altera专用电缆上,再接到器件的编程接口,利用应用软件提供的编程软件Programmer即可对器件进行配置。这种方法的优点是配置方便、迅速,便于修改,缺点是必须有计算机及编程电缆,所以较适合实验室内部使用。

(1)、Altera专用串行EPROM进行配置。这种EPROM可用通用的EPROM编程器进行编程,具有不同的容量可供选择,也可用一片EPROM对多片CPLD进行配置。

(2)、通用EPROM进行配置。这种方法需要一定的外围电路对配置数据流进行格式转换使CPLD能够接受,常用的做法是在外围电路中加入一个单片机。这种方法的优点是配置方便,EPROM可多次使用,缺点是需加一定的外围控制电路。

第 4 页 共 36 页

陕西理工学院毕业论文(设计)

2 系统设计方案的研究

2.1 任意波形发生器

任意波形发生器(AWG)通常提供较深的存储器,较大的动态范围以及较宽的带宽,来满足各式各样的应用,包括通信、半导体和系统测试。AWG接收来自PC的用户自定义数据,并利用这些数据来生成任意波形。AWG用户可以将想要产生的一系列波形下载到仪器所带的存储器中。通常,可以存储实际的波形和形成这些波形所需的波形序列指令。

现在请看一下AWG的基本架构。要从AWG上产生一种波形,必须先创建任意波形本身。像模拟波形编辑器,调制工具,以及国家仪器公司(NI)的LabVIEW这类的软件工具都能够简化这些波形的创建。这些波形和其波形序列指令都存在仪器所带的RAM中。

波形生成序列通常从 TTL硬件触发器开始。各种波形由许多单个的样本构成,而生成采样率由仪器的采样时钟确定。从内部采样时钟时基(100MHz VCXO)中导出采样时钟有几种不同模式,包括DDS定时Div/N时钟,以及几种提供不同外部时钟的模式。另外,对于用于仪器的锁相环的频率基准,也有几种不同的选择。

波形通过存储器到数模转换器,数模转换器将数字采样样本转换成所需的模拟输出波形。在DAC之前,样本被数字滤波,而经过DAC之后,模拟输出又通过一个模拟滤波器。这些数字和模拟滤波器通过插值来增加采样率,并通过谐波低通滤波器滤除寄生信号,从而极大地改进了信号的质量。通常,这些滤波器都能够软件编程。

AWG允许用户规定波形片断,并通过重复来构建复杂波形。由于AWG将波形存储在自身存储器中,故波形长度受限。波形循环帮助产生具有多次重复的子段的信号。对波形段进行循环改善了存储效率,并增加了波形的持续时间。

AWG还可以规定波形中不同的级,每级都可以包括不同的波形段和不同的循环次数。AWG依次产生每一个定义的波形段。通过组合先后顺序和循环次数,就能够利用很小的存储器容量来构建非常复杂的波形。AWG可以为每段指定不同的波形片段,不过不同段之间的过渡点上的相位不一定是连续的。

最后,许多AWG都具有一个仿函数发生器功能。此时,当要求输出一个标准函数波形时,可以先用软件来产生,并下载到AWG上,然后再由AWG输出,这就不同于下面将要介绍的DDS技术。

2.2 DDS基本原理

直接数字频率综合技术,即DDS技术,是一种新型的频率合成技术和信号产生方法。其电路系统具有较高的频率分辨率,可以实现快速的频率切换,并且在改变时能保持相位的连续,很容易实现频率、相位和幅度的数控调制。

传统的生成正弦波的数字方法如2-1所示,即利用一片ROM和一片DAC,再加上地址发生计数器和寄存器即可。在ROM中,每个地址对应的单元中的内容(数据)都相应于正弦波的离散采样值,整个ROM必须包含完整的正弦波采样值,而且还要注意避免在按地址读取ROM中内容是引起的不连

第 5 页 共 36 页

陕西理工学院毕业论文(设计)

图2-1 传统波形发生器系统结构图

续点,避免量化噪音集中于基频的谐波上。时钟频率fclk输入地址发生计数器和寄存器,地址计数器所选中的ROM地址的内容被锁入寄存器,寄存器的输出经DAC恢复成连续信号,即由各个台阶重构的正弦波,若n(采样点对应的二进制数位宽)比较大,则重构的正弦波经适当平滑后失真很小。当fclk发生改变,则DAC输出的正弦波频率就随之改变,但输出频率的改变仅决定于fclk的改变。为了控制输出频率更加方便,可以采用相位累加振荡器,使输出频率正比于时钟频率和相位增量之积。图2-2所示为采用了相位累加震荡方法的直接数字合成系统,把正弦波在相位上的精度定为n位,于是分辨率相当于1/2n。用时钟频率Fp依次读取数字相位圆周上各点,这里数字值作为地址,读出相应的ROM中的值(正弦波的幅度),然后经DAC重构正弦波。这里比前面的简单系统多了一个相位累加器,他的作用是在读取数字相位圆周上各点时可以每隔M点读取一个数值,这样DAC输出的正弦波频率就等于“基频” fclk/2n的M倍。通常n取值在24-32之间,由图2可知。相位分辨率至少是1/16777216,相当于2.146×10度。相位增量值可预置,通过相位累加器,选取ROM的地址时,可以间隔选通。相位寄存器输出的位数一般取10-16位,这是截断式用法,以减少ROM的容量。假定用16位,最大相位不连续相当于96dB。若DAC的位数为n位,则所用ROM的字长也为N。

如图2-2所示的DDS的基本原理组成框图中,参考信号为高稳性晶振(如采用50MHz有源晶振),其输出信号用于提供DDS各种部件的同步工作;作为DDS核心的相位累加器,由一个n位字长的二进制加法器和一个有时钟fclk取样的N为取样器组成,作用是对频率控制字进行线性累加;波形存储器中所对应的是一张函数波形查询表,对应不同的相位码址输出不同的幅度编码。当相位控制为0,相位累加输出的序列对波形存储器寻址,得到一系列离散的幅度编码。该幅度编码经D/A转换得到对应的阶梯波,最后经低通滤波器平滑后可得到所需的模拟波形。相位累加器在时钟的作用,进行线性相位累加,当相位累加器满量程时就会产生一次溢出,这样就完成了一个周期,这个周期也就是DDS信号的一个频率周期。

第 6 页 共 36 页

?5 陕西理工学院毕业论文(设计)

图2-2 DDS基本结构

图2-3 相位累加器位宽和采样点关系

下面以AD9850为例来谈一谈DDS的工作原理。DDS系统的核心是相位累加器,每来一个时钟脉冲,它的内容就更新一次。在每次更新时,相位增量寄存器的相位增量M就加到相位累加器中的相位累加值上。假设相位增量寄存器的M为00?01,相位累加器的初值为00?00。这时在每个时钟周期。相位累加器都要加上00?01.如果累加器位宽n是32位,相位累加器就需要232个时钟周期才能恢复初值。

相位累加器的输出也作为正弦查找表的查找地址。查找表中的每个地址代表一个周期的正弦波的相位点,每个相位点对应一个相位/振幅变换器,它将相位累加器的相位信息映射成数字振幅信息,这个数字振幅值就作为D/A变换器的输入。例如n=32,M=1,这个相应的输出正弦波频率就等于时钟频率除以232。如果M=2,输出频率就加上1倍。对于一个nbit的相位累加器来说,就有2n个可能相位点,相位增量寄存器中控制字M就是在每个时钟周期被加到相位累加器上的值。假设时钟频率为fclk,那么输出正弦波的频率就为:f=M*fclk/2n,这就是DDS的调谐方程。这个系统的分辨率达

第 7 页 共 36 页

陕西理工学院毕业论文(设计)

fclk/2n,如果n=32,分辨率比40亿分之一还要好,在一个实际应用的DDS系统里,相位累加器的所

有输出并没有全部送到查找表,一般只取高K位,于是既减少了查找表的规模,又不影响系统的分辨率。这个相位输出给最后的输出只带来小到可以接受的相位噪声。相位噪声基本上来源于参考时钟。

在DDS系统中,最重要的是对带宽和频谱纯度之间的折中。它可以通过相位累加器来同时相位连续的改变频率。然而实际DDS系统首先要有在相位累加器之前加入一个内部缓冲寄存器。通常这个缓存串行输入相位累加值,按顺序字节输入相位控制字。由于相位增量寄存器和相位累加器是并行输入,加了缓存相当于是串并转换,可以减少封装的管脚数。控制字载入缓存与相位增量寄存器以及相位累加器的并行输出是同步的,因此不影响DDS的速率。

2.3 DDS的特点

DDS在相对带宽、频率转换时间、高分辨力、相位连续性、正交输出以及集成化等一系列性能指标方面远远超过了传统频率合成技术所能达到的水平,为系统提供了优于模拟信号源的性能。其优点如下:

(1)、输出频率相对带宽较宽:输出频率带宽为50%fs(理论值)。但考虑到低通滤波器的特性和设计难度以及对输出信号杂散的抑制,实际的输出频率带宽仍能达到40%fs。

(2)、频率转换时间短:DDS是一个开环系统,无任何反馈环节,这种结构使得DDS的频率转换时间极短。事实上,在DDS的频率控制字改变之后,需经过一个时钟周期之后按照新的相位增量累加,才能实现频率的转换。因此,频率转换的时间等于频率控制字的传输时间,也就是一个时钟周期的时间。时钟频率越高,转换时间越短。DDS的频率转换时间可达纳秒数量级,比使用其它的频率合成方法都要短数个数量级。

(3)、频率分辨率极高:若时钟fs的频率不变,DDS的频率分辨率就由相位累加器的位数N决定。只要增加相位累加器的位数N即可获得任意小的频率分辨率。目前,大多数DDS的分辨率在1HZ数量级,许多小于1MHZ,甚至更小。 

(4)、相位变化连续:改变DDS输出频率,实际上改变的每一个时钟周期的相位增量,相位函数的曲线是连续的,只是在改变频率的瞬间其频率发生了突变,因而保持了信号相位的连续性。 (5)、输出波形的灵活性:只要在DDS内部加上相应控制FM、调相控制PM、和调幅控制AM,既可以方便灵活的实现调频、调相和调幅功能,产生FSK、PSK、ADK和MSK等信号。另外,只要在DDS的波形存储器存放不同的波形数据,就可以实现各种波形输出,如三角波、锯齿波和矩形波甚至是任意的波形。当DDS的波形存储器分别存放正弦和余弦函数表时,就可以得到正交的两路输出。 (6)、其他优点:可产生宽带正交信号及其他多种调制信号、可编程和全数字化、功耗低、体积小、重量轻、可靠性高、控制灵活方便等方面,并具有极高的性价比。 当然DDS也有局限性,主要表现如下: 

(1)、输出频带范围有限:由于受DDS内部DAC和波形存储器(ROM)的工作速度限制,使得DDS输出的最高频率有限。目前市场上采用CMOS、TTL、ECL工艺制作的DDS芯片,工作频率一般在几十

第 8 页 共 36 页

陕西理工学院毕业论文(设计)

MHZ至400MHZ左右。

(2)、输出杂散大:由于DDS采用全数字结构,不可避免地引入了杂散。其来源主要有三个:相位累加器相位舍位误差造成的杂散;幅度量化误差由存储器有限字长引起造成的杂散和DAC非理想特性造成的杂散。

2.4 方案的选择与比较

要实现基于DDS的波形发生器有以下方案: (1)、采用高性能DDS 单片电路的解决方案

随着微电子技术的飞速发展,目前高超性能优良的DDS 产品不断推出,主要有Qualcomm、AD、Sciteg 和Stanford 等公司单片电路(monolithic)。Qualcomm 公司推出了DDS 系列Q2220、Q2230、Q2334、Q2240、Q2368,其中Q2368 的时钟频率为130MHz,分辨率为0.03Hz,变频时间为0.1μs;美国AD 公司也相继推出了他们的DDS 系列:AD9850、AD9851、可以实现线性调频的AD9852、两路正交输出的AD9854 以及以DDS 为核心的QPSK 调制器AD9853、数字上变频器AD9856 和AD9857。AD 公司的DDS 系列产品以其较高的性能价格比,目前取得了极为广泛的应用。 (2)、采用低频正弦波DDS 单片电路的解决方案

此方案的典型电路有Micro Linear公司的电源管理事业部推出低频正弦波DDS单片电路ML2035以其价格低廉、使用简单得到广泛应用。ML2035 特性:1)输出频率为直流到25kHz,在时钟输入为12.352MHz 以外频率分辨率可达到1.5Hz(-0.75~+0.75Hz),输出正弦波信号的峰-峰值为Vcc;2)高度集成化,无需或仅需极少的外接元件支持,自带3~12MHz 晶体振荡电路;3)兼容的3 线SPI 串行输入口,带双缓冲,能方便地配合单片机使用;4)增益误差和总谐波失真很低。ML2035 生成的频率较低(0~25kHz),一般应用于一些需产生的频率为工频和音频的场合。如用2 片ML2035 产生多频互控信号,并与AMS3104(多频接收芯片)或ML2031/2032(音频检波器)配合,制作通信系统中的收发电路等。可编程正弦波发生器芯片ML2035设计巧妙,具有可编程、使用方便、价格低廉等优点,应用范围广泛。很适合需要低成本、高可靠性的低频正弦波信号的场合。 (3)、自行设计的基于CPLD/FPGA 芯片的解决方案

DDS 技术的实现依赖于高速、高性能的数字器件。可编程逻辑器件以其速度高、规模在、可编程,以及有强大EDA 软件支持等特性,十分适合实现DDS 技术。目前PLD 器件(包括CPLD、FPGA)的生产厂商主要有Altera,Xilinx 以及Lattoce 等。Altera是著名的PLD生产厂商,多年来一直占据着行业领先的地位。Altera 的PLD 具有高性能、高集成度和高性价比的优点,此外它还提供了功能全面的开发工具和丰富的IP 核、宏功能外它还提供了功能全面的开发工具和丰富的IP 核、宏功能库等,因此Altera 的产品获得了广泛的应用。虽然有的专用 DDS 芯片的功能也比较多,但控制方式却是固定的,因此不一定是我们所需要的。而利用FPGA 则可以根据需要方便地实现种比较复杂的调频、调相和调幅功能,具有良好的实用性。就合成信号质量而言,专用DDS 芯片由于采用特定的集成工艺,内部数字信号抖动很小,可以输出高质量的模拟信号;利用FPGA 也能输出较高质量的信号,虽然达不到专用DDS 芯片的水平,但信号精度误差在允许范围之内。

第 9 页 共 36 页

陕西理工学院毕业论文(设计)

上述三种实现方案,采用集成DDS芯片固然能实现,但灵活性不强,故我们选用了第三种,采用基于FPGA芯片的自行设计方案。采用自顶向下细化的设计方法,首先对波形生成子系统进行分析与方案选择入手。

第 10 页 共 36 页

陕西理工学院毕业论文(设计)

3 整体方案设计

3.1系统的功能设计

直接数字频率合成器的基本原理:DDS是利用采样定理,根据相位间隔对正弦信号进行取样、量化、编码,然后储存在EPROM中构成一个正弦查询表,通过查表法产生波形。它是由参考时钟、相位累加器、正弦查询表和D/A转换器组成,如图3-1所示。 时钟 相 位 波 形 N 位 A位 D位 D/A 查询表 频率控制字K 累加器 低 通 滤波器 输出

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

在一个完整的数字系统设计中,我们遵循的是自顶向下的设计思想,整个系统由很多的模块来实现。在基于DDS的可编程波形发生器的设计中包括了频率子控制寄存器、相位累加器、同步寄存器、波形查找表、多路选择器。

3.2设计方案

采用直接数字频率合成器,可用软件实现。即用累加器按频率要求相对应的相位增量进行累加,再以累加相位值作为地址码,取存放于ROM中的波形数据,经D/A转换、滤波即得所需波形。方法简单,频率稳定度高,易于程控。 3.2.1 相位累加器

相位累加器由N位加法器与N位累加寄存器级联构成,其原理框图如图3-2所示。每来一个时钟脉冲Fc,N位加法器将频率控制数据K与累加寄存器输出的累加相位数据相加,把相加后的结果Y送至累加寄存器的输入端。累加寄存器一方面将在上一时钟周期作用后所产生的新的相位数据反馈到加法器的输入端,以使加法器在下一时钟的作用下继续与频率控制数据K相加;另一方面以相加后的结果形成正弦查询表的地址,取出表中与该相位对应的单元中的幅度量化正弦函数值,作为取样地址值送入幅度/相位转换电路。这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。

图3-2 相位累加器原理框图

第 11 页 共 36 页

陕西理工学院毕业论文(设计)

由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位。当相位累加器加满量时就会产生一次溢出,溢出频率就是DDS输出的信号频率。

相位累加器的最大计数长度与正弦查询表中所存储的相位分隔点数相同,在取样频率(由参考时钟频率决定)不变的情况下,由于相位累加器的相位增量不同,将导致一周期内的取样点数不同,输出信号的频率也相应变化。如果设定累加器的初始相位,则可以对输出信号进行相位控制。由采样原理可知,如果使用两个相同的频率合成器,并使其参考时钟相同,同时设定相同的频率控制字、不同的初始相位,那么在原理上就可以实现输出两路具有一定相位差的同频信号。

3.2.2 波形采样点数据文件

因为本设计是采用FPGA实现DDS的功能,所以使用FPGA作为数据转换的桥梁,将波形数据存储到其内部的RAM中,并由DDS系统产生波形输出。需存储在RAM中的波形数据是由单片机采集外部数据,对ROM中存储的标准波形进行各种相应的运算而得到。波形表存储器ROM有三种方法实现。 方法一:外接ROM用单片机来完成。可采用并行两片32K的EEPROM存储器AT28C256,共16位位宽,可以实现12位波形表存储,150ns读取速度完全满足20KHZ的工作频率。实现方案:将归一化的正弦波存储在32KEEPROM中,波形存储64个点。然后由单片机根据键盘输入的不同要求,对各点数据乘相应系数并叠加,再将所得到的新数据存储在RAM中,此时便得到了所需要的波形数据表。 方法二:由逻辑方式在FPGA中实现。

方法三:利用Altera公司的含于EAB器件中的兆功能模块LPM_ROM,通过VHDL语言编程来实现。

第一种方法容量最大,但速度最慢,且编程比较麻烦;第二种方法速度最快,但容量非常小;第三种方法兼顾了两者的优点,克服了其缺点。在选用FPGA芯片时,本设计选用的是Altera公司的FLEX10K系列芯片EPF10K10LC84_4, 有LPM_ROM模块,因此ROM选用第三种方法。

由于DDS中波形表存储器是采用FPGA芯片内部的LPM_ROM实现,故波形表以VHDL编程的.mif文件形式存入LPM_ROM中。

波形数据点采样文件可以通过程序语言生成,比如用c语言,下面是生成\”数据值的程序。

#cnclude #include Main() {int,float s; For(i=0;i<1024;i++)

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

Printf(\ }

第 12 页 共 36 页

陕西理工学院毕业论文(设计)

}

把上述c程序编译成程序后,在DOS命令下执行此行: romgen>rom_data.mif;

生成“rom_data.mif”文件后,再加上.mif文件的头部文件说明即可,这里romgen是假设的编译后程序名。上面的程序是是生成正弦波采样点数据文件,方波和三角波同理也可如此生成,改动相应的c程序语句即可。 3.2.3 LPM_ROM定制

(1)、进入MAX-plusⅡ,选菜单File→MegaWizard Plug-In Manager,选择“Creat a new??”,然后按“next”键,进入图3-3所示界面。选择LPM-ROM;最后在Browse下的栏中键入路径与输出文件名:d:\\sin_g\\sindata.vhd,注意后缀vhd小写。

(2)、单击“next”键,将出现图3-4所示界面,选择数据位宽度为8,地址线宽度为6,即设置此ROM能存储8位二进制数据共64个,然后进入图2.9所示的窗口。

(3)、通过在图3-5所示窗口的“browse”键,找到ROM中的加载文件路径和文件名:d:\\sin_g\\sindata.vhd。注意ROM元件的inclock实地址锁存器。

图3-3 定制LPM-ROM文件

第 13 页 共 36 页

陕西理工学院毕业论文(设计)

图3-4 选择ROM参数

图3-5 加入初始化文件

(4)、在MAX-plusⅡ中打开已定制的ROM文件,观察文件中的实体表达COMPONEN语句、例化语句和初始化文件的路径和文件名:

LPM_FILE=>“D:\\SIN_G\\DATA\\sin_data.mif”。

(5)、最后将其设置成工程,并确定目标器件,进行测试,可以发现,此定制ROM的功能完全正常。

3.2.4 D/A转换器

D/A转换器的作用是把已经合成的正弦波、方波、三角波的数字量转换成模拟量.合成波形的幅度量化序列经D/A转换后变成了包络分别为正弦波、方波、三角波的阶梯波.需要注意的是,频率合成器对D/A转换器的分辨率有一定的要求,D/A转换器的分辨率越高,合成波形的台阶数就越多,输出波形的精度也就越高.本设计采用DAC0832进行数模转换。 3.2.5 低通滤波器

一个理想的滤波器应在要求的频带内具有均匀而稳定的增益,而在通带以外则具有无穷大的衰

第 14 页 共 36 页

陕西理工学院毕业论文(设计)

减.然而实际的滤波器距此有一定的差异,为此人们采用各种函数来逼近理想滤波器的频率特性.用运算放大器和RC网络组成的有源滤波器具有许多独特的优点.因为不用电感元件,所以免除了电感所固有的非线性特性、磁场屏蔽、损耗、体积和重量过大等缺点.由于运算放大器的增益和输人阻抗高,输出阻抗低,所以能提供一定的信号增益和缓冲作用.本此设计可采用二阶RC有源低通滤波器.

第 15 页 共 36 页

陕西理工学院毕业论文(设计)

4 系统仿真

本设计是在EDA设计平台上实现系统的仿真,所以需要的装置主要是Altera公司的MAX+plusⅡ软件。Altera公司的MAX+plusⅡ软件是一款易于使用的开发工具,其界面友好,集成化程度高。支持FLEX、MAX、ACEX1K系列器件,可通过 MAX+plusⅡ图形编辑器创建图形设计文件(.gdf),通过MAX+plusⅡ文本编辑器使用VHDL语言创建文本设计文件(.vhd),还可以通过MAX+plusⅡ波形编辑器创建波形设计文件(.wdf)。通过MAX+plusⅡ编译器完成,可检查项目是否有错,并对项目进行逻辑综合,然后配置到一个ALTERA器件中,同时产生报告文件、编程文件和用于时间仿真的输出文件。

本方案软件采用了结构化系统设计与结构化程序设计的方法,整个软件由顶向下分层分块,每个模块完成一项功能,并遵守上层模块调用下层模块,同层模块不能相互调用的原则。

基于所做的是任意波形发生器,所以在波形选择上以三种基础波形为设计与实现的对象,即正弦波、三角波、方波。在波形输出时,设计一个模块控制输出的波形是所要求输出的波形,基本框图如下:

图4-1 波形发生器基本框图

在前面已经分别设计出了三种基础波形,现在所需要做的是如何将三种波形融合在一起成为一个整体,并使他们能按操作人意愿输出所需要波形,这就需要波形选择与控制模块了。在我们的设计构思里,首先是让三个波形模块按意愿工作起来,使需要的波形模块能输出波形数据,其他的二个则的不输出波形数据。这个功能由时钟脉冲输入选择模块完成,在这个模块里,有两个控制开关,有00、01、10、11四个控制情况,这四种情况每一个针对一个波形模块—00时正弦波模块,01时三角波模块,10时方波模块,11时不做任何变化。需要哪个波形工作时,按键开关输入哪种情况既可。下面是设计的连线总图及控制开关SC与仿真波形:

第 16 页 共 36 页

陕西理工学院毕业论文(设计)

图4-2 综合后的RTL电路

第 17 页 共 36 页

陕西理工学院毕业论文(设计)

图4-3 正弦波的仿真图

当address分别输人0、4、8、12时,FOUT分别输出511、524、536、549。通过和正弦波查找表中的比较,我们发现波形输出有些许延迟,这是因为Clk只在上升沿起作用,在第一个上升沿的时候是发出命令,下一个才是读取数据。

图4-4 三角波的仿真图

不考虑延迟的影响,当address分别输入0、4、8、12、17时,FOUT分别输出0、4、8、12、17,由于这里FWORD不变,FOUT匀速变化,比较三角波查找表中的数据,发现完全匹配。

图4-5 方波的仿真图

地址对应的前半段FOUT输出为1023,后半段为0,输出波形为方波。

第 18 页 共 36 页

陕西理工学院毕业论文(设计)

5 总结

通过这次的毕业设计,使我更深入地学习了相关专业知识,并能够熟练的操作MAX+PLUSⅡ软件。通过对FPGA芯片的使用及对VHDL硬件描述语言学习,让我感到了VHDL硬件描述语言的方便性和灵活性,可以使编程技能快速提高,并且认识到很多新的设计思想。这给即将走向工作岗位的我带来了很大的帮助及深远的影响,使我受益无穷。

本课题的研究虽然取得了一定的收获,但在很多方面还有待于进一步的改进和完善。特别是在信息技术飞速发展的今天,各种电子产品层出不穷,各种技术与方法也在不断地改善,因此对电子技术知识的学习也应不断地充实和更新,以适应工作与社会的需要。

第 19 页 共 36 页

陕西理工学院毕业论文(设计)

致谢

这次的毕业论文设计总结是在我的指导老师何伟老师亲切关怀和悉心指导下完成的。从毕业设计选题到设计完成,何老师给予了我耐心指导与细心关怀,有了何老师耐心指导与细心关怀我才不会在设计的过程中迷失方向,失去前进动力。何老师有严肃的科学态度,严谨的治学精神和精益求精的工作作风,这些都是我所需要学习的,感谢何老师给予了我这样一个学习机会,谢谢! 感谢与我并肩作战的舍友与同学们,感谢关心我支持我的朋友们,感谢学校领导、老师们,感谢你们给予我的帮助与关怀;感谢陕西理工学院,特别感谢电信系四年来为我提供的良好学习环境,谢谢!

第 20 页 共 36 页

陕西理工学院毕业论文(设计)

参考文献

[1]李焱.基于DDS控制技术下的型号发生器的设计与实现 .吉林:吉林大学出版社, 2007.9. [2]施羽暇,吕威.基于DDS技术的正弦信号发生器设计.信息技术,2007. [3]汪伟,王元中.基于FPGA的DDS的设计与实现.山西电子技术,2007. [4]王建和.采用DDS技术实现的频率合成信号发生器.电子技术,1997.

[5]潘志良.基于FPGA的DDS信号源的设:[硕士学位论文].武汉:武汉理工大学通信与信息系统专

业,2007.4.

[6]郭立浩.基于即FPGA的直接数字频率合成器的研究与应用:[硕士学位论文」.西安:西北工业大学

电路与系统专业,2006.

[7]H.T.Nicholas III H.Samulei.An analysis of the output spectrum of Direct Digital

Frequency Synthesizers in the presence of phase accumulator truncation,IEEE Proc.41st AFCS,1999:495~502

[8]Vankka J.Spur reduction techniques in sine out-put direct digital

synthesis,IEEE Proc.50th AFCS,2001:951~959

[9]余勇,郑小林.基于FPGA的DDS正弦信号发生器的设计和实现[J].电子器件,2005(9):596-599. [10]郭军朝,王森章.一种高速低功耗直接数字频率合成器的设计与实现[J].微电子学,2004,10(5):572—574.

[11]吉训生.一种高效实用的直接数字频率合成器的设计和实现[J].现代电子技术,2003,15:99—101.

[12]傅玉朋,李明浩,吕进华.DDS技术的FPGA设计与实现[J].大连民族学院学报,2004(3):4647.

第 21 页 共 36 页

陕西理工学院毕业论文(设计)

附录A 英文资料及翻译

Fundamentals of DDS Technology

Overview

Direct digital synthesis (DDS) is a technique for using digital data processing blocks as a means to generate a frequency- and phase-tunable output signal referenced to a fixed-frequency precision clock source. In essence, the reference clock frequency is “divided down” in a DDS architecture by the scaling factor set forth in a programmable binary tuning word. The tuning word is typically 24-48 bits long which enables a DDS implementation to provide superior output frequency tuning resolution.

Today’s cost-competitive, high-performance, functionally-integrated, and small package-sized DDS products are fast becoming an alternative to traditional frequency-agile analog synthesizer solutions. The integration of a high-speed, high-performance, D/A converter and DDS architecture onto a single chip (forming what is commonly known as a Complete-DDS solution) enabled this technology to target a wider range of applications and provide, in many cases, an attractive alternative to analog-based PLL synthesizers. For many applications, the DDS solution holds some distinct advantages over the equivalent agile analog frequency synthesizer employing PLL circuitry.

DDS advantages: · Micro-Hertz tuning resolution of the output frequency and sub-degree phase tuning capability, all under complete digital control. · Extremely fast “hopping speed” in tuning output frequency (or phase), phase-continuous frequency hops with no over/undershoot or analog-related loop settling time anomalies. · The DDS digital architecture eliminates the need for the manual system tuning and tweaking associated with component aging and temperature drift in analog synthesizer solutions. · The digital control interface of the DDS architecture facilitates an environment where systems can be remotely controlled, and minutely optimized, under processor control. · When utilized as a quadrature synthesizer, DDS afford unparalleled matching and control of I and Q synthesized outputs.

Theory of Operation

In its simplest form, a direct digital synthesizer can be implemented from a precision reference clock, an address counter, a programmable read only memory (PROM), and a D/A converter (see Figure A-1).

第 22 页 共 36 页

陕西理工学院毕业论文(设计)

Figure A-1. Simple Direct Digital Synthesizer

In this case, the digital amplitude information that corresponds to a complete cycle of a sinewave is stored in the PROM. The PROM is therefore functioning as a sine lookup table. The address counter steps through and accesses each of the PROM’s memory locations and the contents (the equivalent sine amplitude words) are presented to a high-speed D/A converter. The D/A converter generates an analog sinewave in response to the digital input words from the PROM. The output frequency of this DDS implementation is dependent on 1.) the frequency of the reference clock, and 2.) the sinewave step size that is programmed into the PROM. While the analog output fidelity, jitter, and AC performance of this simplistic architecture can be quite good, it lacks tuning flexibility. The output frequency can only be changed by changing the frequency of the reference clock or by reprogramming the PROM. Neither of these options support high-speed output frequency hopping.

Figure A-2. Frequency-tunable DDS System

With the introduction of a phase accumulator function into the digital signal chain, this

architecture becomes a numerically-controlled oscillator which is the core of a highly-flexible

DDS device. As figure A-2 shows, an N-bit variable-modulus counter and phase register are implemented in the circuit before the sine lookup table, as a replacement for theaddress counter. The carry function allows this function as a “phase wheel” in the DDS architecture. To understand this basic function, visualize the sinewave oscillation as a vector rotating around a phase circle (see Figure A-3). Each designated point on the phase wheel corresponds to the equivalent point on a cycle of a sine waveform. As the vector rotates around the wheel, visualize that a corresponding output sinewave is being generated. One revolution of the vector around the phase wheel, at a constant speed, results in one complete cycle of the output sinewave. The

第 23 页 共 36 页

陕西理工学院毕业论文(设计)

phase accumulator is utilized to provide the equivalent of the vector’s linear rotation around the phase wheel. The contents of the phase accumulator correspond to the points on the cycle of the output sinewave.

Figure A-3. Digital Phase Wheel

The number of discrete phase points contained in the “wheel” is determined by the resolution, N, of the phase accumulator. The output of the phase accumulator is linear and cannot directly be used to generate a sinewave or any other waveform except a ramp. Therefore, a phase-toamplitude lookup table is used to convert a truncated version of the phase accumulator’s instantaneous output value into the sinewave amplitude information that is presented to the D/A converter. Most DDS architectures exploit the symmetrical nature of a sinewave and utilize mapping logic to synthesize a complete sinewave cycle from ? cycle of data from the phase accumulator. The phase-to-amplitude lookup table generates all the necessary data by reading forward then back through the lookup table.

第 24 页 共 36 页

陕西理工学院毕业论文(设计)

Figure A-4. Signal flow through the DDS architecture

The phase accumulator is actually a modulus M counter that increments its stored number each time it receives a clock pulse. The magnitude of the increment is determined by a digital word M contained in a “delta phase register” that is summed with the overflow of the counter. The word in the delta phase register forms the phase step size between reference clock updates; it effectively sets how many points to skip around the phase wheel. The larger the jump size, the faster the phase accumulator overflows and completes its equivalent of a sinewave cycle. For a N=32-bit phase accumulator, an M value of 0000…0001(one) would result in the phase accumulator overflowing after 232 reference clock cycles (increments). If the M value is changed to 0111…1111, the phase accumulator will overflow after only 21clock cycles, or two reference clock cycles. This control of the jump size constitutes the frequency tuning rThe relationship of the phase accumulator and delta phase accumulator form the basic tuning equation for DDS architecture:

FOUT = (M (REFCLK)) /2n

Where: FOUT = the output frequency of the DDS M = the binary tuning word

REFCLK = the internal reference clock frequency (system clock) N = The length in bits of the phase accumulator

Changes to the value of M in the DDS architecture result in immediate and phase-continuous

changes in the output frequency. In practical application, the M value, or frequency tuning word,is loaded into an internal serial or byte-loaded register which precedes the parallel-output delta phase register. This is generally done to minimize the package pin count of the DDS device.Once the buffer register is loaded, the parallel-output delta phase register is clocked and the DDS output frequency changes. Generally, the only speed limitation to changing the output frequency of a DDS is the maximum rate at which the buffer register

第 25 页 共 36 页

陕西理工学院毕业论文(设计)

can be loaded and executed.Obviously, a parallel byte load control interface enhances frequency hopping capability.

Trends in Functional Integration

One of the advantages to the digital nature of DDS architecture is that digital functional blocks can readily be added to the core blocks to enhance the capability and feature set of a given device. For general purpose use, a DDS device will include an integrated D/A converter function to provide an analog output signal. This “complete-DDS” approach greatly enhances the overall usefulness and “user-friendliness” associated with the basic DDS devices. DDS devices are readily available with integrated 10-bit D/A converters supporting internal REFCLK speeds to 180 MHz. The present state of the art for a complete-DDS solution is at 300 MHz clock speeds with an integrated 12-bit D/A converter.

Along with the integrated D/A converter, DDS solutions normally contain additional digital

blocks that perform various operations on the signal path. These blocks provide a higher level of functionality in the DDS solution and provide an expanded set of user-controlled features. The block diagram of an expanded-feature DDS device is shown in Figure A-5.

The individual functional blocks are described below: · (A) A programmable REFCLK Multiplier function include at the clock input, multiplies the frequency of the external reference clock, thereby reducing the speed requirement on the precision reference clock. The REFCLK Multiplier function also enhances the ability of the DDS device to utilize available system clock sources. · (B) The addition of an adder after the phase accumulator enables the output sinewave to be phase-delayed in correspondence with a phase tuning word. The length of the adder circuit determines the number of bits in the phase tuning word, and therefore, the resolution of the delay. In this architecture, the phase tuning word is 14-bits. · (C) An Inverse SINC block inserted before the D/A converter compensates for the SIN(X)/X response of the quantized D/A converter output, and thereby provides a constant amplitude output over the Nyquist range of the DDS device. · (D) A digital multiplier inserted between the Sine look-up table and the D/A converter enables amplitude modulation of the output sinewave. The width of the digital multiplier word determines the resolution of the output amplitude step size.

第 26 页 共 36 页

陕西理工学院毕业论文(设计)

Figure A-5. Full-featured 12-bit/300 MHz DDS Architecture · (E) An additional high-speed D/A converter can be included to provide the cosine output from the DDS. This allows the DDS device to provide I and Q outputs which are precisely matched in frequency, quadrature phase, and amplitude. The additional D/A converter may also be driven from the control interface and used as a control DAC for various applications. · (F) A high-speed comparator function can be integrated which facilitates use of the DDS device as a clock generator. The comparator is configured to convert the sinewave output from the DDS D/A converter into a square wave. · (G) Frequency/phase registers can be added which allow frequency and phase words to be pre-programmed and their contents executed via a single control pin. This configuration also supports frequency-shift keying (FSK) modulation with the single-pin input programmed for the desired “mark” and “space” frequencies.

DDS devices are available that incorporate all of this functionality (and more) and support internal clock rates up to 300 MHz. The growing popularity in DDS solutions is due to the fact that all of this performance and functionality is available at a reasonable price and in a comparatively small package.

The following is a general guideline for the level of performance available from the dual 12-bit/300 MHz complete-DDS solution described in Figure 1-4. (Conditions assume 30 MHz external reference clock multiplied internally by 10 to yield an internal clock rate of 300 MHz):

-Frequency tuning word length = 48 bits which gives an output frequency tuning resolution of 1mHz.

-Phase tuning word length = 14 bits which provides .022 degrees of phase delay control Resolution.

第 27 页 共 36 页

陕西理工学院毕业论文(设计)

-REFCLK Multiplier range = programmable in integer increments over the range of 4′ to 20′

-Output frequency bandwidth (assuming one-third of REFCLK rate) = 100 MHz

-Frequency tuning rate = 100 MHz with 8-bit byte parallel load

-Output amplitude control = zero output to fullscale in 8128 steps (12-bit control word)

-Output spurious performance = 50 dB worst case wideband spurs at 80 MHz output.

-I/Q output matching = .01 Degree

-Output flatness DC to Nyquist = .01 dB

第 28 页 共 36 页

陕西理工学院毕业论文(设计)

原文翻译

DDS 技术的基本规律 概述

直接数字合成(DDS)是一种数字式技术,产生的频率和相位可调输出信号引用到一个固定频率时钟源模块的精度数字数据技术。本质上,参考时钟脉冲频率间隔分开一个DDS结构提出的二进制控制字。控制字通常是24到48位长,使 DDS的实施提供优越的输出频率调谐分辨率。

在日益竞争成本的今天,高性能,功能与作用相结合,DDS 产品正迅速地成为除传统的高速频率的模拟合成器解决办法之外的另一种选择。高速,高性能,D/A变换器和DDS结构到单片机(通常是一个完整DDS的解决办法)上的综合使这项技术能够瞄准广泛应用,而且在许多场合提供一种替代基于模拟的PLL合成器。在许多应用中,使用DDS的解决方案拥有灵活的特性,相较模拟等效电路锁相环频率合成器它有一些独特的优势。 DDS 优势:

微赫兹的输出频率和相位调整功能,这些全部在数字控制下完成。

极其快的调相输出频率(或者相位),相位频率连续无畸变/使未达到的相关模拟还原时间异常。 DDS数字化实现了消除了手工系统调谐的需要操控和零部件老化和温度模拟合成器解决办法。 DDS实现了数字的控制接口,当它在处理器下控制时系统可被遥控的环境变得容易、精确且尽可能完善。

当它作为一个相位合成器时,DDS能够前所未有的匹配来控制I和Q的输出。

工作原理

直接数字式频率合成器以最简单的方式,可以被一个精密基准钟,一个地址计数器,可编程序的只读存储器(PROM)实现 ,以及一台D/A变换器(参阅图A-1) .

这种情况下,数字的幅度对应正弦波的完整周期的信息被储存在PROM上。PROM正因此起一张正弦查找表的作用。地址计数器跨步穿过PROM存储单元入的出口,其中的内容(等效正弦幅度)被送给一台高速D/A转换器。 由于来自PROM的数字的输入字,D/A变换器产生模拟正弦波。DDS 产生的输出频率取决于1.) 基准钟的频率,以及2.)输入PROM的被编程正弦波。当模拟输出真实,被简化实现的性能可能十分好,它缺乏协调灵活性。或者通过程序重调PROM生产频率只能通过改变基准钟的频率被改变。 这两种选择都不支持跳跃的高速输出频率。

由于相位累加器在数字化方面的应用,构建核心的数字控制振荡器,一种非常灵活DDS设备。如表A-2所示,N字节的可变化模化计数器和相位寄存器在正弦查找表之前被执行,用来替代地址寄存器。为了理解这个基本功能,想象正弦波在一个旋转的矢量周围环绕(参阅图A-3)时 . 每一个指定在圆上的点相当于在正弦波形的循环上的等效点。矢量在园周围轮流出现时,相应的正弦波被产生。在圆周围的矢量的一次循环,以恒定的速度,使一个完整周期的正弦波输出。相位累加器利用在阶段轮回周围提供相当于矢量线性旋转。相位累加器的内容符合关于输出正弦波的问题。

第 29 页 共 36 页

陕西理工学院毕业论文(设计)

分离的阶段点的数量决定于,相位累加器的位宽N。相位累加器的输出是线线性的,除一个斜坡梯之外,不能直接用来产生正弦波或者任何其他波形。因此,相位累加器查找表用来把即时的输出值转变这相位累加的进正弦波幅度被给D/A变换器的信息。DDS的构建是利用正弦波的匀称性并且利用绘图逻辑从来自相位累加器的数据的循环合成一个完全的正弦波循环。相位对幅度进行查找然后通过查找表格返回向前通过读取输出全部必要数据。

相位累加器实际上在模数M 表增加它储存的号码时钟脉冲得到。增量的震级被一个包含三角波域的数字语句所决定。在三角形阶段内记录形成阶段走在基准钟更新之间的尺寸;它有效确定那个点在阶段周围跳跃。跳跃尺寸越大,相位累加器溢出并且完成它的一个正弦波循环的周期越迅速。 对于一个N = 32位相位累加器,0000 001将导致这节相位累加器在232个参考时钟周期(增值)之后溢出.如果M价值被转换成0111 111,这节相位累加器在只时钟周期或者两个参考时钟周期之后将溢出。这跳跃尺寸的控制形成协调相位累加器和三角波相位累加器的关系形成基本协调方程式,DDS 的频率:FOUT = M*REFCLK/2n,FOUT是DDS的输出频率,M是二进制的调谐字,REFCLK是内部参考时钟脉冲频率(系统时钟),N是相位累加器的位宽。

在DDS的结构变化导致的直接的M值和相位连续改变输出频率。在实际的应用过程中,那些M值,或者频率控制字,被加载到内部串行或者字节加载等级在三角形阶段记录的那些并行输出。这一般被做使缓冲区记录的DDS 器件.前面的封装引脚数和缓冲寄存器家在,并行输出三角形阶段记录被计时和DDS产量频率改变。通常,唯一速度限制在兑换DDS的频率是缓冲区记录的最大的比率的产量时可以被装载和执行.显而易见,一个并行的字节负载控制接口提高频率跳跃能力。

在功能的综合过程中的趋势

DDS的数字结构体系的本质的优势之一是数字功能模块可以很容易的加入到核心区块。供多功能使用,DDS设备包括集成的D/A转换功能以提供一个模拟输出信号。已经完成的DDS能够大大提高所有的功能而且基于DDS的基本器件用户使用起来很方便。DDS设备容易由于统一支持内部REFCLK速度给180 MHz的10bitD/A变换器。一个完整DDS的解决办法的目前的最新水平为一台综合的12位的D/A变换器的300 MHz时钟速度。跟综合D/A变换器一起,DDS 解决办法通常包含另外数字功能模块。这些模块在DDS 解决办法方面能够带来更好的功能,并且提供给一些用户控制的特性。被扩展的DDS 设备的方框图在表A-5 显示。

个别功能模块介绍如下:

(A)可编程REFCLK乘法器在时钟输入功能包括,乘外部参考时钟频率,从而减少对高精度参考时钟速度要求。利用现有的系统时钟源该REFCLK乘数功能也提高了DDS的设备能力。

(B)加法器、相位累加器的加入,使输出正弦波将逐步在信件延迟与相位控制字。该加法器电路的长度决定了位在相控制字号码,因此,延误的决议。在此架构中,相位控制字为14位。 (C)使用模块化的D/A转换器为sin(x)的补偿,X是量化的D/A转换器输出响应,从而提供稳定振幅电平等幅输出奈奎斯特范围的DDS器件。

第 30 页 共 36 页

陕西理工学院毕业论文(设计)

(D)在正弦查找表之间插入的数字的乘数和D/A变换器使生产正弦波的调幅成为可能,数字的乘

数字的宽度确定输出步幅。

(E)附加高速的D/A转换器,可提供包括DDS的余弦输出。这使得DDS的设备提供I和Q输出的频率精确匹配,正交相位和幅度。这些额外的D/A转换器也可驱动的控制界面,并作为各种应用控制DAC的使用。

(F)高速比较器功能可以被集成在有利于作为时钟发生器的DDS器件上使用。比较器配置转换成一个方波从DDS的D/A转换正弦波输出。

(G)频率/相位寄存器可以添加允许的频率和相位的话,以预先编程,其内容通过一个控制引脚执行。此配置还支持频移键控(FSK)与预期的“标志”和“空间”频率编程单针输入调制。 合并所有这功能性(并且更多)的DDS设备,并且支持内部的时钟频率直到300MHz。用DDS解决办法的日益增多的普及是由于所有这个性能和功能都有一个合理的价格,并且在比较小的软体里。 下列是可以从完成DDS的解决办法用图1-4 描述的双12 bit/300的MHz中获得的性能的一般的指导方针。(条件假定外部基准钟到10点内部增加的30MHz产生一个300MHz的内部的时钟频率) : -频率协调字长=当输出频率调谐为1uHZ时为48bit。

-相位调谐字长=14bit时提供0.022的相位延迟控制的分辨率。 -REFCLK乘数范围=以在4*到20*的范围的整数增值可编程序 -输出频率带宽(REFCLK比率的3分之1)=100MHz -频率协调比率=拥有8bit的并行负载时为100MHz -输出幅度控制=零输出原大小为8128阶(12位的控制字)

-输出杂散性能=最坏情况50分贝带宽当给予80MHz的宽带杂散输出。 -I/Q输出匹配=0.01度 -对尼奎斯特的输出DC=0.01db

第 31 页 共 36 页

陕西理工学院毕业论文(设计)

附录B 源程序

32位加法器

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER32B IS

PORT(A:IN STD_LOGIC_VECTOR(31 DOWNTO 0); B:IN STD_LOGIC_VECTOR(31 DOWNTO 0); S:OUT STD_LOGIC_VECTOR(31 DOWNTO 0)); END ADDER32B;

ARCHITECTURE behav OF ADDER32B IS

BEGIN S<=A+B; END behav;

32位寄存器

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER32B IS

PORT(A:IN STD_LOGIC_VECTOR(31 DOWNTO 0); B:IN STD_LOGIC_VECTOR(31 DOWNTO 0); S:OUT STD_LOGIC_VECTOR(31 DOWNTO 0)); END ADDER32B;

ARCHITECTURE behav OF ADDER32B IS

BEGIN S<=A+B; END behav;

波形数据存储mif文件 正弦波数据存储文件

WIDTH=10; DEPTH=1024;

ADDRESS_RADIX=DEC; DATA_RADIX=DEC; CONTENT BEGIN

0:511;1:514;2:517;3:520;4:524;……1019:495;1020:498;1021:502;1022:505;1023:508;END; 三角波数据存储文件 WIDTH=10; DEPTH=1024;

ADDRESS_RADIX=DEC; DATA_RADIX=DEC; CONTENT BEGIN

0:0;1:1;2:2;3:3;4:4;……1018:6;1019:5;1020:4;1021:3;1022:2;1023:1;END;

方波数据存储文件

第 32 页 共 36 页

陕西理工学院毕业论文(设计)

WIDTH=10; DEPTH=1024;

ADDRESS_RADIX=DEC; DATA_RADIX=DEC; CONTENT BEGIN

0:1023;1:1023;2:1023;3:1023;4:1023;……1019:0;1020:0;1021:0;1022:0;1023:0;END;

10位加法器

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; use ieee.std_logic_unsigned.all; ENTITY ADDER10B IS

PORT(A:IN STD_LOGIC_VECTOR(9 DOWNTO 0); B:IN STD_LOGIC_VECTOR(9 DOWNTO 0); S:OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); END ADDER10B;

ARCHITECTURE behav OF ADDER10B IS BEGIN S <= A + B; END behav;

10位寄存器

LIBRARY IEEE;

USE IEEE.STD_LoGIC_1164.ALL; ENTITY REG10B IS

PORT(LOAD:IN STD_LOGIC;

DIN:IN STD_LOGIC_VECTOR(9 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(9 DOWNTO 0)); END REG10B;

ARCHITECTURE behav OF REG10B IS BEGIN

PROCESS(LOAD,DIN) BEGIN

IF load'EVENT AND load='1'THEN DOUT<=DIN; END IF; END PROCESS; END behav;

波形数据调用模块

由于有三个波形要输出,所以有三个调用模块,其不同指出只是程序中对应的文件名不同

Library ieee;

Use ieee.std_logic_1164.all; ENtity sin_rom IS

Port (address:in std_logic_vector(9 downto 0); Inclock:in std_logic;

Q:out std_logic_vector(9 downto 0)); End sin_rom;

Architecture syn of sin_rom is

第 33 页 共 36 页

陕西理工学院毕业论文(设计)

Signal sub_wire0:std_logic_vector(9 downto 0); Component lpm_rom Generic(lpm_width : natural; Lpm_widthad : natural; Lpm_address_control : string; Lpm_outdata : string; Lpm_file : string);

Port (address :in std_logic_vector(9 downto 0); Inclock:in std_logic;

Q:out std_logic_vector(9 downto 0)); End component; Begin

Q<=sub_wire0(9 downto 0);

Lpm_rom_component:lpm_rom generic map (lpm_width => 10, lpm_widthad => 10,

lpm_address_control => \ lpm_outdata => \

lpm_file => \

port map(address=>address,inclock=>inclock,q=>sub_wire0); end syn;

4选1选择器

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY MUX41A IS

PORT(A:IN STD_LOGIC_VECTOR(9 DOWNTO 0); B:IN STD_LOGIC_VECTOR(9 DOWNTO 0); C:IN STD_LOGIC_VECTOR(9 DOWNTO 0); SS:IN STD_LOGIC_VECTOR(1 DOWNTO 0); S:OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); END MUX41A;

ARCHITECTURE ONE OF MUX41A IS

SIGNAL SEL: STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN SEL<=SS; PROCESS(SEL) BEGIN CASE SEL IS

WHEN \ WHEN \ WHEN \ WHEN OTHERS=>NULL; END CASE; END PROCESS;

第 34 页 共 36 页

陕西理工学院毕业论文(设计)

END ONE;

顶层模块

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DDS_VHDL IS PORT(CLK:IN STD_LOGIC;

FWORD:IN STD_LOGIC_VECTOR(7 DOWNTO 0); PWORD:IN STD_LOGIC_VECTOR(7 DOWNTO 0); SC:IN STD_LOGIC_VECTOR(1 DOWNTO 0); FOUT :OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); END;

ARCHITECTURE one OF DDS_VHDL IS COMPONENT REG32B

PORT (LOAD:IN STD_LOGIC;

DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END COMPONENT; COMPONENT REG10B PORT(LOAD:IN STD_LOGIC;

DIN:IN STD_LOGIC_VECTOR(9 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); END COMPONENT; COMPONENT ADDER32B

PORT(A:IN STD_LOGIC_VECTOR(31 DOWNTO 0); B:IN STD_LOGIC_VECTOR(31 DOWNTO 0); S:OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END COMPONENT; COMPONENT ADDER10B

PORT(A:IN STD_LOGIC_VECTOR(9 DOWNTO 0); B:IN STD_LOGIC_VECTOR(9 DOWNTO 0); S:OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); END COMPONENT; COMPONENT SIN_ROM

PORT(address :IN STD_LOGIC_VECTOR(9 DOWNTO 0); inclock :IN STD_LOGIC;

q :OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); END COMPONENT; COMPONENT S_ROM

PORT(address :IN STD_LOGIC_VECTOR(9 DOWNTO 0); inclock :IN STD_LOGIC;

q :OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); END COMPONENT; COMPONENT J_ROM

PORT(address :IN STD_LOGIC_VECTOR(9 DOWNTO 0);

第 35 页 共 36 页

陕西理工学院毕业论文(设计)

inclock :IN STD_LOGIC;

q :OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); END COMPONENT; COMPONENT MUX41A

PORT(A:IN STD_LOGIC_VECTOR(9 DOWNTO 0); B:IN STD_LOGIC_VECTOR(9 DOWNTO 0); C:IN STD_LOGIC_VECTOR(9 DOWNTO 0); SS:IN STD_LOGIC_VECTOR(1 DOWNTO 0); S:OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); END COMPONENT;

SIGNAL F32B :STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL D32B :STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL DIN32B:STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL P10B :STD_LOGIC_VECTOR( 9 DOWNTO 0); SIGNAL LIN10B:STD_LOGIC_VECTOR( 9 DOWNTO 0); SIGNAL SIN10B:STD_LOGIC_VECTOR( 9 DOWNTO 0); SIGNAL SIND:STD_LOGIC_VECTOR( 9 DOWNTO 0); SIGNAL SD:STD_LOGIC_VECTOR( 9 DOWNTO 0); SIGNAL JD:STD_LOGIC_VECTOR( 9 DOWNTO 0); BEGIN

F32B(27 DOWNTO 20)<=FWORD;F32B(31 DOWNTO 28)<=\ P10B(1 DOWNTO 0)<=\

F32B(19 DOWNTO 0)<=\

u1:ADDER32B PORT MAP(A=>F32B,B=>D32B,S=>DIN32B); u2:REG32B PORT MAP (DOUT=>D32B,DIN=>DIN32B,LOAD=>CLK); u3:SIN_ROM PORT MAP(address=>SIN10B,q=>SIND,inclock=>CLK); u4:S_ROM PORT MAP(address=>SIN10B,q=>SD,inclock=>CLK); u5:J_ROM PORT MAP(address=>SIN10B,q=>JD,inclock=>CLK);

u6:ADDER10B PORT MAP(A=>P10B,B=>D32B(31 DOWNTO 22),S=>LIN10B); u7:REG10B PORT MAP(DOUT=>SIN10B,DIN=>LIN10B,LOAD=>CLK); u8:MUX41A PORT MAP(SS=>SC,S=>FOUT,A=>SIND,B=>SD,C=>JD); END;

第 36 页 共 36 页

陕西理工学院毕业论文(设计)

inclock :IN STD_LOGIC;

q :OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); END COMPONENT; COMPONENT MUX41A

PORT(A:IN STD_LOGIC_VECTOR(9 DOWNTO 0); B:IN STD_LOGIC_VECTOR(9 DOWNTO 0); C:IN STD_LOGIC_VECTOR(9 DOWNTO 0); SS:IN STD_LOGIC_VECTOR(1 DOWNTO 0); S:OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); END COMPONENT;

SIGNAL F32B :STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL D32B :STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL DIN32B:STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL P10B :STD_LOGIC_VECTOR( 9 DOWNTO 0); SIGNAL LIN10B:STD_LOGIC_VECTOR( 9 DOWNTO 0); SIGNAL SIN10B:STD_LOGIC_VECTOR( 9 DOWNTO 0); SIGNAL SIND:STD_LOGIC_VECTOR( 9 DOWNTO 0); SIGNAL SD:STD_LOGIC_VECTOR( 9 DOWNTO 0); SIGNAL JD:STD_LOGIC_VECTOR( 9 DOWNTO 0); BEGIN

F32B(27 DOWNTO 20)<=FWORD;F32B(31 DOWNTO 28)<=\ P10B(1 DOWNTO 0)<=\

F32B(19 DOWNTO 0)<=\

u1:ADDER32B PORT MAP(A=>F32B,B=>D32B,S=>DIN32B); u2:REG32B PORT MAP (DOUT=>D32B,DIN=>DIN32B,LOAD=>CLK); u3:SIN_ROM PORT MAP(address=>SIN10B,q=>SIND,inclock=>CLK); u4:S_ROM PORT MAP(address=>SIN10B,q=>SD,inclock=>CLK); u5:J_ROM PORT MAP(address=>SIN10B,q=>JD,inclock=>CLK);

u6:ADDER10B PORT MAP(A=>P10B,B=>D32B(31 DOWNTO 22),S=>LIN10B); u7:REG10B PORT MAP(DOUT=>SIN10B,DIN=>LIN10B,LOAD=>CLK); u8:MUX41A PORT MAP(SS=>SC,S=>FOUT,A=>SIND,B=>SD,C=>JD); END;

第 36 页 共 36 页

本文来源:https://www.bwwdw.com/article/hpk3.html

Top