基于FPGA的DDS信号发生器设计 (2).doc
《基于FPGA的DDS信号发生器设计 (2).doc》由会员分享,可在线阅读,更多相关《基于FPGA的DDS信号发生器设计 (2).doc(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、物理与电子信息学院本科毕业论文目 录1 绪论22 直接数字频率合成技术的工作原理32.1直接数字频率合成器的基本构成32.2 直接数字频率合成器工作原理33 主要软件流程54 主要功能模块设计94.1系统框图设计94.2主要模块设计95 系统测试与结论165.1系统调试165.2仿真测试195.3资源消耗分析266 结论28参考文献:29ABSTRACT30致 谢31附录A 程序清单32共40页 共10598字27基于FPGA的DDS信号发生器设计王泽斌(学号:20171102832)(物理与电子信息学院 2017级电子信息工程2班,内蒙古 呼和浩特 010022)指导教师:包秀荣摘要:随着科
2、技发展的迅速,频率合成技术也在飞速进步,直接数字频率合成器(DDS)就是其中一员,它具有多种有点:不同频率转变迅速、频率高、稳定性强、噪声肖、输出多,被使用在很多地方,使用前景非常好 1。传统传统的用分立元件或通用数字电路元件设计电子线路的方法设计周期长,花费大,可移植性差。相较于以前的频率合成技术,DDS拥有很多优点。作者主要的分析方向就是运用硬件语言然后在FPGA 里,对 DDS 系统完成设计与实现,用fpga实现DDS具有高性能,高集成度,并且可以克服传统DDS设计中的不足,从而设计出性能优良的DDS系统关键词:直接数字频率合成器;FPGA;Verilog分类号: TN91 文献标识码:
3、 B1 绪论随着我国经济、科技等各方面快速进步,无线通信领域的诸多技术也在不停进步,以前使用的信号频率早就已经无法满足现代社会发展进步的需求。伴随着通信有关技术的不断进步,通信传输的速度在变快,传输的范围也在变大,使得信号的频率也在逐渐增大。以前的信号传输频率过低,难以满足现代社会发展进步对于更高品质、更高精度频率的需求3。基于此背景我们不难发现,为了迎合社会发展的需求,我们必须研究发展更适应于现代社会的频率技术。美国是第一个提出了直接数字频率合成技术的国家,虽然提出的时间较早,但是真正引起人们正视该技术是在多年以后,科技的发展让人们发现了该技术的必要性4。研究一个新的频率合成技术是亟需的,因
4、为它的优点有很多,比如:不同频率之间的转变能够非常快速,带宽相较于以前增大了许多,相位是不间断的,能够很简单地实现控制,很简单的改变目标波形,幅值相位等可以任意调节。诸多优点让直接数字频率合成技术拥有了直观的优势,为其广泛运用打下了坚定的基础。从当下的情况来看,我国对DDS有关技术的研究部门较少,主要是因为专门做这一方向研究的工作人员较少,经验严重缺乏,其次我国那些与航天技术有关的行业、高新科技行业、通信行业都是需要用到信号源,可见运用领域是较为广泛的,因此对其详细的研究分析,提出一个全新的FPGA数字频率技术是符合实际情况实际需求的,可以解决现在的一个困难。从另外一个角度来看待这个问题,假设
5、我们使用了这项技术,我们将会拥有其他的好处,例如,假如使用了FPGA来研究制作有关的技术,能够比使用了其他技术会拥有更高的精确度,这为FPGA高速运转的时钟奠定了技术基础5。基于此,运用FPGA这个技术来进行本文的有关研究设计,这让本文的设计过程具有一定的简易性,显而易见会比使用其他的技术方便快捷很多。除了这些优势,运用该技术能够在录入波形数据的时候直接使用内部放置的IP核心硬件,直接来使用ROM工具,这种方法显而易见能够不需要额外的存储器,整个开发设计的过程也十分便捷。2 直接数字频率合成技术的工作原理2.1直接数字频率合成器的基本构成直接数字频率合成器 (Direct Digital Sy
6、nthesis,简称DDS ),这是一种依托于抽样定理里面的时域采样定理来进行研究设计的技术,该技术的主要工作是根据相位有关的数据来查找地址,然后最后把幅值进行输出。如图2.1所展示的就是该合成器的最基本的工作原理框图,可见被分为了四个部分:(1)相位累加器;(2)ROM波形存储;(3)交直流转换器;(4)滤波器,这其中最重要的就是控制频率的参考时钟的精确程度要求。 图2.1 DDS基本构成框图根据上图展示的原理框架图我们可以对本文设计的DDS工作过程进行详细讲解:首先我们选择一个精准的参考时钟作为时钟源,每个参考时钟都会被记录,然后累加器就会依次增加,把得到的结果转到相位寄存器里面,然后N位
7、的数据经过一系列的转换到达只读存储器进行地址比较的入口,然后在存储器里面寻找对应的地址,输出的信号经过一系列的模数变换为我们想要的结果,经过滤波器之后9,就能够得到我们想要的波形。2.2 直接数字频率合成器工作原理对DDS的工作流程进行简单的描述:首先我们选择一个精准的参考时钟作为时钟源,每个参考时钟都会被记录,然后累加器就会依次增加,把得到的结果转到相位寄存器里面。此寄存器出来的结果我们直接送入到ROM里,而该寄存器的N位的数据就是我们ROM寻找正确数据的地址,查找表里面保存的数据是可能需要的信号的幅值,ROM就是寻找正确数据的地址,然后把这个地址里面保存的幅值进行输出,再通过后面的模数变换
8、、滤波,就得到我们想要的波形信号。除此之外,相位寄存器转给ROM的数据会在同一时间反馈给计算使用的全加器,当下一个始终来临的时候,全加器又一次相加计算,进而让F依次增加,直至相位数据无法继续保存,全加器就会清零数据,从头开始10。接下来对DDS详细的工作情况进行讲解:令这个系统进行频率控制的为F,时钟的连续两次出现所经过的时间是Tc,频率为,相位累加器整个的带宽为N,由此我们能够推算此系统输出的频率: (1)观察上面的式子我们不难发现,系统输出的频率与三样东西有关系:第一是采样频率,第二是频率控制字,第三是相位累加器整个的位宽。如果采样频率是一定的,那么输出的信号的频率就能够根据相位控制字来进
9、行可控的变化,当控制字等于一时,系统的输出的频率是最小的,记为 11: (2)上面式子中的为 DDS系统里面表征精度的频率。采样频率是的时候,设两次采样之间的相位的增加量是 (3)在这个式子里面,。如果系统不是连续的,是离散的,那么该系统的相位序列表示为: (4)若相位累加器输出的数据为N位时, (5)系统输出的信号的频率是: (6)根据上面的式子我们能够推算到:系统输出的信号是什么样的频率与ROM的高M位是没有关系的,换一种说法就是如果时钟采样频率的一定的,那么输出信号是什么样的频率将完全由频率控制字来控制 12。后面的所有研究分析都结合这个原理,从而实现既定目标的编程设计。下面的章节将会对
10、设计文件和建立工程进行详细的讲解。3 主要软件流程本文的所有研究设计,用的软件都是英特尔公司开发的。Quartus II 是Altera公司(现在已经被英特尔公司收购)的综合性CPLD/FPGA开发软件,原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware 支持Description Language)等等,很多个方式的输入过程,里面自己包含了综合器并且能够进行仿真,该软件能够实现从输入到硬件设计的整体过程14。第一步要做的就是建立一个新的工程,首先就是打开软件,然后用鼠标操作新建一个新的工程,如下图所示,这样能够建立一个全新的工程设计界面。图3.1 软件系统界面
11、在建立了一个新的工程之后,我们需要增加一个设计文件,同时我们能够在这里添加已经编写完成的文件,我们可以对即将建立的工程类别进行选择,接下来就是增添一个设计文件,可以在Add source界面点击“加号”,还有一种方法是直接点击下面Add source选择,要是我们没有之前就已经编写好的文件,就可以忽略掉这一步15。图3.2 添加设计文件界面在经过了上述的设置后,我们就到达了建立新工程的最后步骤,结合工程实际的需要来完成器件的选择。这一环节能够结合引脚的数量、芯片的种类来减小可以选择的范围,理所当然的是越高级的芯片它包含的功能就更多。能够结合实际需求来找寻恰当的芯片,我们要尽量不浪费,减小成本。
12、做完做一步点Finish就可以了16。图3.3 芯片选择界面图3.4 选择设计文件类型界面最后应该要关注一下使用的语言,VHDL和Verilog的选择是有一定区别的。在本文的研究里,我们使用Verilog完成编程,因此在这个时候我们选择Verilog,不用管VHDL,下一个章节就对测试环节进行设计。4 主要功能模块设计4.1系统框图设计图4.1 系统框图结合之前的一系列研究,该章节主要是对系统的波形发生器进行研究开发。结合第2章节的理论分析我们不难知道,发生器最关键的就是累加器,在这之后使用ROM存储,然后对输出的波形进行滤波。参考这种思路,我们能够对系统进行设计,系统的顶层模块、方波的波形数
13、据进行保存的模块、三角波的波形数据进行保存的模块、正弦波的波形数据进行保存的模块,然后还有amp_sel波形进行选取的模块。接下来将会对每个模块做详细的设计。4.2主要模块设计结合之前的一系列研究,该章节主要是对系统的波形发生器进行研究开发。结合第2章节的理论分析我们不难知道,发生器最关键的就是累加器,在这之后使用ROM存储,然后对输出的波形进行滤波。接下来将会对每个模块做详细的设计。4.2.1 DDS结构设计依托FPGA,研究开发一个拥有多种功能作用的DDS信号发生器,我们能够控制输入输出信号,产生正弦波、三角波、方波、锯齿波,然后通过控制频率字模块来选择频率,然后通过控制幅度信号从而达到控
14、制幅值大小的目的。控制功能能够用选择器来完成,通如下图所,是多功能信号发生器的RTL级图。图4.2 DDS设计RTL级视图整个DDS信号发生器系统的设计框图。如图,是4.2所示。其中主要包括频率控制模块,还有正弦波模块,三角波模块,锯齿波模块,方波模块和幅度控制模块。本章将描述信号产生系统中信号传输的基本技术框架,并主要介绍DDS系统的FPGA实现,在下面的章节会具体介绍DDS系统的主要模块及各功能模块的功能以及端口说明。4.2.2地址产生模块图4.3 频率控制字模块信号的名称I/O功能的描述 I模块的时钟 I模块的复位 I 频率控制oacc_dataO输出地址其中主要的端口有时钟信号,异步复
15、位信号,频率控制信号(11:0),输出地址数据信号(11:0)一共四个信号。频率控制字主要元素是累加器,通过累加器完成整个操作。由频率控制(fre_incr)通波改变rom中所存信号的地址来实现频率可调功能, 使得输出地址(oacc_data)发生改变。图4.4 累加实现过程我们观察一下图4.4,相位累加器的功能就是对信号进行依次的相加,从而在每一次时钟信号来临的时候,对相位实现逐次的相加,最后可以在ROM里面来寻找出对应的幅值。 4.2.2正弦信号产生模块图4.5 正弦信号产生模块信号名称I/O功能描述clockI模块时钟addressI 输入地址qO正弦波数据主要的端口有时钟信号,输入地址
16、信号,正弦波数据信号(11:0)这些一共三个信号。正弦波信号存储在已经写入的rom中,而rom中的地址在本模块中就是adress的值,其实是量化的地址序列,然后输出的正弦波形是数据对应地址所量化的幅度,因为正弦波形存储在rom中,而rom中的存储容量是有限的。4.2.3三角信号产生模块图4.6 三角信号产生模块信号名称I/O功能描述clockI模块时钟 addressI 输入地址qO三角波数据主要的端口有时钟信号,输入地址信号,三角波数据信号(11:0)这些一共三个信号。三角波信号存储在已经写入的rom中,而rom中的地址在本模块中就是adress的值,其实是量化的地址序列,然后输出的三角波形
17、是数据对应地址所量化的幅度,因为三角波形存储在rom中,而rom中的存储容量是有限的。4.2.4锯齿信号产生模块图4.7 锯齿信号产生模块信号名称I/O功能描述clockI模块时钟 addressI 输入地址qO锯齿波数据主要的端口有时钟信号,输入地址信号,锯齿波数据信号(11:0)这些一共三个信号。锯齿波信号存储在已经写入的rom中,而rom中的地址在本模块中就是adress的值,其实是量化的地址序列,然后输出的锯齿波形是数据对应地址所量化的幅度,因为锯齿波形存储在rom中,而rom中的存储容量是有限的。4.2.4方波信号产生模块图4.8 锯齿信号产生模块信号名称I/O功能描述clockI模
18、块时钟 addressI 输入地址qO方波数据主要的端口有时钟信号,输入地址信号,方波数据信号(11:0)这些一共三个信号。方波信号存储在已经写入的rom中,而rom中的地址在本模块中就是adress的值,其实是量化的地址序列,然后输出的方波形是数据对应地址所量化的幅度,因为锯齿波形存储在rom中,而rom中的存储容量是有限的。4.2.5幅度控制模块图4.9 幅度控制模块信号的名称I/O功能的描述 I模块的时钟 I模块的复位 I幅度选择信号signal_selI信号选择信号sin_inI正弦波输入信号sanjioa_inI三角波输入信号juchi_inI锯齿波输入信号fangbo_inI方波输
19、入信号signal_selected_outO输出信号 比较重要的端口就是:时钟信号的端口、复位信号的端口、选择幅度信号的端口(1:0),信号选择信号(1:0),正弦波输入信号(11:0),三角波输入信号(11:0),锯齿波输入信号(11:0),方波输入信号(11:0),输出信号(11:0)这些一共九个信号。幅度控制的核心是全加器。5 系统测试与结论在上一章中,已经对设计完的DDS信号发生设计的各个模块进行了模块级别的仿真验证测试,本小结主要内容的主要工作是采用 Quartus II 开发软件,调用Modelsim开发软件,通过 Simulation把设计好的DDS信号发生器的波形仿真出来,观
20、察波形并调试,直到波形调试正确为止。5.1系统调试首先,新建DDS发生器的仿真波形文件。然后点击quartus导航栏中的new按键,然后会出现一个新建文件窗口,然后选择一个Vector Waveform File文件,然后点击波形文件,选择OK按钮。图5.1 新建波形文件然后会弹出如下的对话框,将鼠标放置对话框的空白部分,单击鼠标右键,会有一个insert的选择项,然后选择insert node or bus,如图5.2所示。图5.2 插入输入输出信号然后会出现的insert node or bus的对话窗口中,右击node finder会出现一个选择输入输出的仿真必须信号的会话窗口,然后点击
21、list,选择你需要仿真的输入输出波形信号,然后点击OK按钮。如图5.3所示。图5.3 输入输出信号点击波形文件的name栏的时钟信号,选中时钟信号进行编辑,然后点击导航框中的时钟图标,这个图标编辑编辑clk的时钟频率,设置clk开始时间为0ps,结束时间是10us,设置时间周期为10ns,占空比为百分之五十后点击OK,再编辑复位信号。根据VHDL的设计,复位信号是高电平复位。所以选取一段复位的时间段设置为高电平“1”,其余时间则设置为低电平“0”。 选取的方式是按住鼠标左键盘一直拖拽到选取所需要的时间为止,然后点击导航栏中的高电平信号,则刚才所选取的时间段则变为高电平“1”。编辑其他的输入信
22、号,按住鼠标左键盘一直拖拽到选取所需要的时间为止,然后点击导航栏中的问号图标,则设置信号的进制(二进制,八进制,十进制,十六进制),还有设置的值。如下图5.4所示是已经设置好的输入输出波形仿真信号图5.4 输入仿真信号点击Quartus II 中的Processing。然后在点击Simulator Tool。首先我们要先进行功能仿真,所以在Simulation mode中选择Functional,然后再点击generate function Simulation Netlist。功能仿真提示成功后,点击确定,然后再点击Start,如图5.5所示,功能仿真。图5.5 功能仿真功能仿真成功后,会弹
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于FPGA的DDS信号发生器设计 2 基于 FPGA DDS 信号发生器 设计
限制150内