毕业设计(论文)-基于PFGA的DDS信号发生器的设计与实现.pdf_第1页
毕业设计(论文)-基于PFGA的DDS信号发生器的设计与实现.pdf_第2页
毕业设计(论文)-基于PFGA的DDS信号发生器的设计与实现.pdf_第3页
毕业设计(论文)-基于PFGA的DDS信号发生器的设计与实现.pdf_第4页
毕业设计(论文)-基于PFGA的DDS信号发生器的设计与实现.pdf_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

基于基于 FPGA 的的 DDS 信号发生器的设计与实现信号发生器的设计与实现 A design of direct digital synthesizer via FPGA 姓 名: 学 号: 专 业: 通信工程 指导教师: 刘洪英 2012 年 5 月 华 东 师 范 大 学 信 息 学 院 通 信 工 程 学 士 毕 业 论 文 华东师范大学学士学位论文 基于 FPGA 的 DDS 信号发生器的设计与实现 -I- 目目 录录 摘 要.I Abstract.II 第一章 绪 论 3 1.1 课题研究的背景和意义 3 1.2 DDS 的原理 3 1.3 DDS 的优缺点 4 1.4 论文的结构5 第二章 DDS 部分的设计与制作 6 2.1 系统时钟 7 2.2 相位累加器 8 2.3 加法器 8 2.4 寄存器. 9 2.5 波形储存器 ROM. 9 2.5.1 ROM 数据文件的生成. 9 2.5.2 ROM 模块的定制 10 2.6 波形选择器 11 2.7 控制字输入模块 12 2.7.1 按键状态机. 12 2.7.2 控制字调节器. 14 第三章 仿真15 3.1 Modelsim 波形仿真 15 3.1.1 工程的建立和 testbench 的书写 15 3.1.2 Modelsim 仿真结果. 16 3.2 Signal Tap 在线仿真. 16 3.2.1 Signal Tap 设置 17 3.2.2 输出频率变化的仿真与分析. 17 3.2.3 输出相位变化的仿真与分析. 19 3.3 小结 20 第四章 DAC 电路的设计. 21 4.1 DAC0832 21 4.2 DAC0832 应用电路的选取22 4.3 DAC0832 与 FPGA 的连接. 23 第五章 输出信号的测试与分析. 24 5.1 错误的分析与修改 24 5.2 性能的测试与分析 26 第六章 总结与展望. 29 6.1 论文总结 29 6.2 改进设想 29 参考文献. 30 附录一 DDS 顶层设计图 31 致 谢. 32 华东师范大学学士学位论文 基于 FPGA 的 DDS 信号发生器的设计与实现 -I- 摘 要 信号发生器一直以来都在各种机械和电子系统中扮演着核心角色。 随着现代技术 的发展,一种新的信号合成技术direct digital synthesizer(简称 DDS),由于它的 高速和低相位噪声, 越来越受到各大领域的欢迎。 本篇论文主要讨论了基于 FPGA (全 称 Field-programmable gate array)的一种 DDS 的制作。主要的研究内容分为以下的 几个步骤:DDS 的理论基础,通过 FPGA 来设计和制作 DDS 的过程,仿真,DAC 电路的设计与功能测试。 本论文的第一部分简要阐述了 DDS 的原理、基本结构以及其性能的优缺点。第 二部分给出了基于 FPGA 的 DDS 的每一部分的详细设计方案,通过 Modelsim 进行 了初步仿真, 随后使用 Signal Tap 这款软件进行频率和相位上的仿真。 论文的第三 部分首先讨论了 D/A 转换电路的设计和与 FPGA 的连接,其次做出实物,接上示波 器观看其输出波形,根据其显示波形发现并排除了错误,最后测试了 DDS 的性能并 给出解释。 关键词:关键词:DDS,FPGA,D/A 转换电路,仿真。 华东师范大学信息学院通信工程 2012 年学士毕业论文 II Abstract Signal generator has always been a core part of all kinds of electronic and mechanical systems. As the development of technology, direct digital synthesizer (DDS), a new method of generating signal, has become more and more popular because of its high speed and low phase noise. This paper talks about the design of a DDS via FPGA (Field-programmable gate array) . The main research contents include the following parts: the theory of DDS, the process of designing a DDS through FPGA, simulation, designing of the DAC circuit and function test. The first part of this paper demonstrates the theory of DDS, its basic construction and its merits demerits. The second part gives out FPGA design solutions for all parts of DDS, then simulates its basic function through Modelsim, and finally simulates its frequence and phase performance via Signal Tap . The third part of the paper first discusses the design of the D/A converter circuit for DDS and the connection between DDS and DAC circuit. And then, when the DDS is completed, we can watch its output through oscilloscope, find errors and correct them. And finally, a test will be done and explanations will be made to the results. Key Words: DDS, FPGA, DAC circuit, simulation 华东师范大学信息学院通信工程 2012 年学士毕业论文 3 第一章 绪 论 1.11.1 课题研究的背景和意义课题研究的背景和意义 频率合成器自现代工业开始以来一直广泛的应用于各大领域当中, 是各种电 子设备的关键组成部分。随着科技的发展,尤其是现代通讯技术方面的突破,使 得相关领域(如移动通信,航天卫星)对于高分辨率、低相位噪声、快速转换时 间的频率合成器愈加青睐1。 DDS, 全称 Direct Digital Synthesizer,是一种通过数字的方式合成各种信号 并转换成模拟信号的技术。在 DDS 技术普及之前,生成各种不同频率的信号主 要是通过模拟电路或是数字模拟混合的方式。 这些频率合成的技术的共同特征即 是把一个信号源通过分频、锁相环、混频等手段进行变换,以得到想要的频率和 波型2。由相位合成波形的技术最早是由 Joseph Tierney, Charles M. Rader 和 Bernard. Gold三人于1971年在一篇名为的论文 中提出。 这种方法不同于传统的频率的合成方式在于它把信号源用作了参考时钟 并且根据该时钟来对输出值进行运算,而不是直接对信号源进行频率变换2。由 于当时元器件的速度有限, 并且数字化将会引起量化噪声,该方法并未受到重 视。但随着近 10 年来数字器件的不断朝超高速方向发展,一种以相位合成波形 为基础的频率合成技术DDS 应运而生。 相比于传统的频率合成方式,DDS 具有频率分辨率高,频率变换时相位连 续,输出相位噪声低,可以生成任意波形等特点。因此自问世以来被广泛地应用 在通信与电子仪器领域,正好满足了这些领域对于高速、低相噪的频率合成器的 需求。 鉴于以上理由,本文将设计并制作一个 DDS 信号发生器。这种信号发生器 能在频率、相位和输出波形上可调,以便用作各种不同的系统的信号源。 1.21.2 DDS 的原理的原理 DDS 的基本构成为相位累加器、波形存储器和 DAC。其原理为将相位累加 器的输出作为波形存储器查寻表地址,以储存器内波形采样值来决定输出,之后 华东师范大学信息学院通信工程 2012 年学士毕业论文 4 通过高速 DAC 产生已用数字形式存入的波形。 现市面上比较流行的一种 DDS 架构如图 1-1 所示。分别由相位累加器,加 法器,波形存储器 ROM,D/A 转换器,低通滤波器(LPF)组成3。 图 1-1 DDS 的基本结构 其中相位累加器在时钟频率的控制下以频率控制字为步长进行累加, 输出的 二进制码经截断处理(为了缩减 ROM 位数)后与相位控制字相加,其结果作为 ROM 的输入地址,对 ROM 中的波形进行寻址。最终 ROM 中输出的幅度码经 D/A 转换以及低通滤波后就可得到合成的波形3。 我们设频率控制字为 K,相位累加器字长为 N,时钟频率为 fc,则累加器长 度为错误!未找到引用源。错误!未找到引用源。 ,每次累加所需时间为 1/fc,当相位累加次数为错误!错误! 未找到引用源。未找到引用源。/K 时,累加器溢出,所消耗的总时间即为输出波形的一个周期, 于是就可以得到 DDS 的输出频率为K f f N c out 2 。 1.31.3 DDS 的优缺点的优缺点 DDS 的主要优点归纳为如下几点: 1. 频率分辨率高。其分辨率由 N cf f 2 0来算出,可以看出,当主频 fc 一定时, 相位累加器的位数 N 越高, 其分辨率也就越高。 一般 DDS 的分辨率可达到 1Hz, 有的甚至只有 1mHz 或更小。 2. 连续的相位变换。当 DDS 的输出频率发生改变时,改变的仅仅只是每个时 钟周期内的相位增量,信号的频率在这瞬间发生了突变,但相位上还是连续的。 3. 高速的频率转换。由于 DDS 是开环的,没有反馈,所以其频率转换时间非 频率控制字 相位控制字 相位累加器 加法器 ROM D/A转换器 CLK 波形选择器 华东师范大学信息学院通信工程 2012 年学士毕业论文 5 常短,可达到纳秒数量级。 4. 低相位噪声。DDS 中的相位噪声由参考频率所决定,一般的系统中采用固定 晶振作为参考频率,因此其相位噪声是比较低的。 5. 有较宽的工作频带。根据 Nyquist 定理可知 DDS 的可实现频率为cf 2 1 。而实 际实现中会受到各种杂散分量的影响,要略小于该值。 6. 容易调整和集成。DDS 除去 D/A 以外,几乎全是数字器件,因此易于集成 化; 并且可通过调整 ROM 内数据而使其产生各种不同形状的波形。4 DDS 的主要缺点在于其杂散分量丰富。一般来说,为了达到较好的频率分 辨率,其相位累加器的位数总是大于 ROM 的地址位数的,而对 ROM 寻址时只 会采用相位累加器的高位,因此会产生相位截断的误差。其次,在对 ROM 内波 形采样时必然会产生量化误差。最后就是 D/A 转换时,由于 DAC 芯片的有限的 分辨率,也会加入不同程度的噪声。 1.41.4 论文的结构论文的结构 本论文将分为五个章节,第一章简述了 DDS 的发展历史,基本原理和优缺 点。第二章将详细讨论 DDS 各部分的功能设计以及基于 FPGA 的实现。第三章 主要内容为仿真的方法和对仿真结果的分析。第四章为 DAC 电路的设计,主要 分析了芯片的选择和电路的实现。第五章为对所实现的 DDS 的实际输出波形的 测试,分析测试结果和并提出了改进方案。 华东师范大学信息学院通信工程 2012 年学士毕业论文 6 第二章 DDS 部分的设计与制作 FPGA(Field-programmable gate array),现代可编程门阵列,是近年来发展比 较迅速的一种 EDA(Electronic Design Automation)工具3。器件中除了集成了 各种逻辑门和寄存器外,还集成了硬件乘法器,锁相环,DSP 等功能模块,再加 上其编程方便,可实现芯片动态重构等特点,十分适用于快速完成复杂的数字系 统。 而本文的DDS信号合成器除去D/A外全由数字器件组成, 因故将使用FPGA 来设计与制作。 本文所设计的 DDS 系统框图如图 2-1 所示 图 2-1 DDS 系统框图 在上文所提到的 DDS 的基本构成上又加入了对输入频率、相位控制字的调 整的功能,并采用多个 ROM 定制不同波形,使输出波形能任意选择。此外,又 分别在相位累加器与加法器后面面加入了两组寄存器, 以便用时钟信号控制其输 出地址改变的速率。 本设计将采用的软件为 Altera 公司的 Quantus,使用语言为 Verilog HDL, 采用的方法为首先分模块建立, 之后在顶层建立的原理图设计文件中把各模块按 DDS 的系统框图相连接。相比与全部用 Verilog HDL 语言编写,该方法更为简洁 和直观。其系统文件的层次图如图 2-2 所示。 华东师范大学信息学院通信工程 2012 年学士毕业论文 7 图 2-2 DDS 文件层次图 本文设计的 DDS 所采用的 FPGA 为 Altera 公司的 DE2 实验版。 2.12.1 系统时钟系统时钟 系统时钟关系到输出数据的更新速率,因此要与外部 D/A 的最高转换速率 相匹配,本设计拟将采用 8 位 DADAC0832,该 DA 芯片的最高转换速率为 1MHz,因此 DDS 的时钟频率必须小于或等于 1MHz。为了得到较大的输出频率 范围,所以将时钟频率设为 1MHz。 DE2版能输出的时钟频率只有50MHz与27MHz, 因此要得到1MHz的信号, 只须将 50MHz 进行模 50 分频。Verilog HDL 程序实现如下所示: module clock(clkin,clkout,); input clkin;output clkout; reg clkout; reg 10:0 qout; always (posedge clkin) begin if(qout=24) /对计数器进行判断,当累加到 24 时 clkout 反转 begin qout=0;clkout=clkout; else qout=qout+1; end endmodule 华东师范大学信息学院通信工程 2012 年学士毕业论文 8 2.22.2 相位累加器相位累加器 由绪论可知,DDS 的频率分辨率 N cf f 2 0,前面我们已经确定了时钟频率 fc 为 1Mhz,所以其分辨率的大小就由相位累加器的位宽 N 来决定。我们当然希望 分辨率越高越好,但又考虑到相位截断失真的存在,故将累加器位宽定为 20。 所以 DDS 的分辨率0f即为 1MHz/ 20 20.954Hz. 对于累加器的制作,采用 Quartus2 中 LPM 宏功能模块来定制。如图 2-3 所 示,通过下拉列表将其位宽设定为 20 位,其余都按其默认选项,最后点击确认 即可得到想要的 20 位加法器。 图 2-3 累加器位宽设定 将得到的 20 位加法器输出与一个 20 位寄存器相连 (寄存器的制作将在下文 提到) ,通过时钟信号控制其累加速率,将结果送回给 dataa,从而达到累加的目 的。其顶层的 bdf 文件图如图 2-4 所示: 图 2-4 20 位相位累加器 datab 为输入的频率控制字,q2 为截断后的累加器高 8 位数据,用于 ROM 寻址。 2.32.3 加法器加法器 加法器主要用于调整输出波形的初始相位,由于采用的是 8 为的 D/A 转换 华东师范大学信息学院通信工程 2012 年学士毕业论文 9 器,ROM 地址相应的也为 8 位,所以加法器的位数也是 8 位。其定制方法与累 加器类似,输入 dataa 连接累加器截断后的高 8 位输出,datab 输入相位控制字, 输出与一 8 位寄存器相连,以控制其数据更新速率,如图 2-5 所示: 图 2-5 加法器 2.42.4 寄存器寄存器 寄存器主要起到了控制数据速率的作用,并在累加其输出时,对其位宽进行 截断。将采用 Verilog HDL 语言编写,20 位寄存器代码如下: module reg20( clk,a,q1,q2); input clk;input19:0 a; output19:0 q1; reg19:0 q1; output 7:0 q2; reg7:0 q2; always (posedge clk) begin q1=a; q2=a19:12; /输出截断 end endmodule 8 位寄存器代码与其类似,因此不加赘述。 2.52.5 波形储存器波形储存器 ROM 2.5.12.5.1 ROM 数据文件的生成数据文件的生成 ROM 内的数据文件格式分为两种:MIF(Memory Initialization File)或 HEX (Hexadecimal File)格式。本文将采用 mif 文件的格式。 Mif 文件的生成采用一个名为 Guagle_wave 的软件。该软件可以对任意波形 采样并输出 mif 格式的数据文件。操作步骤如下: 首先设定全局参数,如图 2-6 所示,由于是 8 位 ROM,所以数据长度设为 华东师范大学信息学院通信工程 2012 年学士毕业论文 10 8 2=256,位宽为 8,采样频率为 1000。然后再点击菜单中的设定波形,选择下 拉菜单中的正弦波,即可得到如下的采样波形。最后选择保存,将文件命名为 sinrom.mif,即可得到大小为 3.83KB 的正弦波 mif 文件。 图 2-6 全局设置 图 2-7 正弦波采样波形 通过相同的方法,我们可以分别得到三角波和方波的 mif 文件。 2.5.22.5.2 ROM 模块模块的定制的定制 ROM 模块的定制与前面加法器类似,也是通过 Quartus2 的宏功能模块来定 制。在如图 2-8 对话框中选则输出位数为 8 位,数据的个数为 256 个,存储实现 方式为 Auto,时钟方式为 single clock。 点击两次 next,如图 2-9,在数据文件设置里将文件设置为 sinrom.mif,最 后点击 Finish,完成 ROM 文件的定制。 华东师范大学信息学院通信工程 2012 年学士毕业论文 11 同样的,三角波与方波的 ROM 也按此方法制作。 图 2-8 ROM 的定制 图 2-9 选择数据文件 2.62.6 波形选择器波形选择器 波形选择器的功能是由外部信号控制 DDS 所输出的波形。其实质上就是一 个数据选择器,可添加在 ROM 之后,接收三个 ROM 的输出数据,判断外部输 入的控制信号,选择并输出数据。 外部控制信号可由 DE2 板上的三个拨码开关来输入,具体的 Verilog HDL 华东师范大学信息学院通信工程 2012 年学士毕业论文 12 语言实现如下: module wavechoose(p,q1,q2,q3,result,clk); input clk; input2:0p; input7:0q1,q2,q3; output7:0result; reg7:0result; always(posedge clk) begin case(p) /对外部信号进行选择 3b001:result=q1; /若为 001 则输出 q1 内的数据 3b010:result=q2; /若为 010 则输出 q2 内的数据 3b100:result=q3; /若为 100 则输出 q3 内的数据 default: result=8b10000000; endcase end endmodule q1,q2,q3 分别接收来自三个不同 ROM 中的数据,顶层 bdf 如图 2-10 所 示。 图 2-10 波形选择器 2.72.7 控制字输入模块控制字输入模块 2.7.12.7.1 按键状态机按键状态机 由于 DE2 板上没有数字键盘,控制字的输入只能由按一定间隔步进的按键 来完成,这将需要 3 个按键,其中一个按键控制频率,一个控制相位,还有一个 设为重置按钮。 华东师范大学信息学院通信工程 2012 年学士毕业论文 13 根据 DE2 版上的按键连接电路可知按键闭合时 I/O 引脚呈现低电平,按键 断开时呈现高电平。因此可以通过程序来定时扫描引脚上的电平,以此来判断是 否有按键来按下。但实际执行时就会发现如果按键扫描的频率很快,由于人按下 按键与释放按键时都会产生数秒的抖动, 非常容易把这几个抖动脉冲误认为多次 按键,而扫描频率过慢时,则有可能出现连续按键中有几次没有响应的现象。考 虑到以上这两种问题,按键的扫描频率需要选取一个适中的数值,但由于人们按 键的习惯不同,这个数值便会变得难以确定。因此引入状态机的概念,相比于之 前的方法,这种按键状态机既能有效地消除抖动,又能保持高扫描速率,防止了 按键操作过程的丢失5。 如图 9-4 所示,将一次按键完整的操作过程分解为 3 个状态。状态 0 为按键 的初始状态,当输入为1时,表示按键处于断开,所以输出是0 ;当输入 为0时,按键闭合,但由于此时状态未确认,所以输出还是 0,并进入状态 1。 状态 1 为按键是否闭合的确认状态,如果再次检测到按键输入为0时,便可 确认按键按下,输出1并进入状态 2;若再次检测到按键输入为 1 时表示为 抖动干扰,状态返回状态 0。状态 2 为等待按键释放,只有当按键释放了,一次 按键操作才算完成,最后返回状态 05。 图 2-7 按键状态机 使用 Verilog HDL 编写按键状态机并生成顶层 bdf 文件,以便之后的调用。 华东师范大学信息学院通信工程 2012 年学士毕业论文 14 2.7.22.7.2 控制字调节器控制字调节器 已知系统的时钟频率为 1MHz,所以理论上可实现的最高输出频率为 500kHz,根据式K f f N c out 2 可得频率控制字 K 最大为 524288,为方便步进长度 的计算和调整,故最终定为 409600。又因仅有一个按键控制,步进过小会导致 按键次数过多,故将步进定为 1024。由于 ROM 位数为 8 位,所以将相位控制字 的最大值设为 256 (即一个周期) , 同样考虑到按键次数, 步进设为 16。 其 Verilog HDL 程序实现如下: module adjust(p1,p2,reset,clk,op1,op2); input clk, p1, p2, reset; output 19:0op1;output 7:0op2; reg 19:0op1; reg 7:0op2; always(posedge clk) begin if (reset) begin op1=0; op2=0; end else if(op1=409600) begin op1=0;end else if (op2=256) begin op2=0; end else if (p1) begin op1=op1+1024; end else if(p2) begin op2=op2+16; end end endmodule 同样将其生成 bdf 文件,以便顶层的调用。 当以上各部都完成后,新建顶层原理图文件,将各模块放入原理图中,并按 原理框图连接。完整顶层原理图可见附录一。 华东师范大学信息学院通信工程 2012 年学士毕业论文 15 第三章 仿真 3.13.1 Modelsim 波形波形仿真仿真 Modelsim 是目前市面上最流行,也是最优秀的 Verilog HDL 和 VHDL 语言 仿真工具,具有仿真速度快,精度高,调试方便等特点。由于其仿真不需要其他 器件的辅助,属于纯软件环境,故作为本设计的初步仿真,以方便对程序语句的 调试。 3.1.13.1.1 工程的建立和工程的建立和 testbench 的书写的书写 首先建立名为 dds_simulate 的仿真工程。由于 Modelsim 无法识别 bdf 格式 的原理图文件,故需用 Quarters的 update 功能将所有 bdf 文件转换为 Verilog HDL 文件。 然后将所有原 DDS 工程所需的 Verilog HDL 文件添加到仿真工程中, 并将储存波形用的 mif 文件放于同一目录下。需注意的是,由于使用了 lpm 元件 库中的元件,故需将 220model.v 和 altera_mf.v 这两个于 lpm 元件相关的库文件 也添加到工程中。 为了方便起见,可将顶层文件中的按键调整部分注释掉,直接在 testbench 文件中对相位累加器的输入部分进行赋值。 使用 testbench 文件是 Modelsim中对仿真工程的输入与输出进行控制的一种 方式。 其实质上便是在原顶层文件上再加一个顶层文件, 对原顶层文件进行调用, 并对输入进行赋值。以下便是本次仿真的 testbench 文件。 timescale 1 ns/ 1 ns /基本时钟设置 module dds_vlg_tst(); reg 19:0adj1; reg 7:0adj2; reg clkin; reg 2:0 p; wire 7:0 result; dds i1 ( .adj1(adj1), .adj2(adj2), .clkin(clkin), .p(p), .result(result) ); /调用原文件 initial begin adj1=64; /相位累加器输入赋值 adj2=0; /加法器输入赋值 p=4; /波形选择器输入赋值 clkin = 0; forever #5 clkin = clkin; / 设定时钟频率 end endmodule 华东师范大学信息学院通信工程 2012 年学士毕业论文 16 3.1.23.1.2 Modelsim 仿真结果仿真结果 书写完毕后加入工程,对全工程编译通过后点击仿真,在 work 中选择 testbench 文件,点击执行后,在 obeject 对话框中选择要查看的 result 端口,添 加到 wave 窗口后选择仿真时间,并点击 run。可得到如下图 3-1 的波形。 图 3-1 频率控制字为 64 时 Modelsim 仿真波形 根据频率计算公式K f f N c out 2 可知此时的输出频率为 61Hz,而通过对仿真 数据的计算后上图波形均符合该值。 通过这次仿真, 可以看出本文所设计的 DDS 基本功能完好,而对于其的进一步的频率和相位上的仿真,将通过下文所讲的 Signal Tap 在线仿真。 3.23.2 Signal Tap 在线在线仿真仿真 Signal Tap 是 Quarters自带的一款在线逻辑分析仪,具有无干扰、使用 简单、能观察 FPGA 中实时信号的状态等特点。其工作原理为:将逻辑分析模块 嵌入到 FPGA 中, 该逻辑分析模块能按照之前的设定, 对需要观测的节点进行数 据采样,最终通过 JTAG 接口从 FPGA 传到中显示。 华东师范大学信息学院通信工程 2012 年学士毕业论文 17 3.2.13.2.1 Signal Tap 设置设置 首先设定其采样时钟,采样时钟决定了显示信号波形的分辨率。由于系统的 参考频率 clk 为 1MHz,故采样频率必须大于等于该频率。因为已经有了分完频 的 1MHz 信号,为了方便起见,将采样时钟的频率也设为 1MHz。 然后设置采样深度。Signal Tap 对 FPGA 的管脚信号采样后会将数据存在 一定的 RAM 块中,而采样深度则决定了所需 RAM 块的大小,因此采样深度的 设定要考虑到实际的系统资源。最后将其设为 1K。 最后设置被测信号。使用 Node Finder 找出所需要观察的管脚,添加到被测 信号中,设置完后如图 3-2 所示。 图 3-2 设定监视端口 3.2.23.2.2 输出频率变化的仿真与分析输出频率变化的仿真与分析 当频率控制字 adjust1 为 2048 时(即按键两次) ,按公式K f f N c out 2 可知理 论输出频为 1953.125Hz。图 3-3 为仿真得到得正弦波。 此处仿真显示 op1 为 001 是因为设定的采样是从第 12 个端口开始的。拖动 光标可知 DDS 在该波形的一个周期内大约输出了 512 个点,又因为其输出频率 为 1MHz,所以其输出正弦波的频率为 1MHz/512=1953.125Hz。正好符合其理论 计算值。 图 3-3 1.953kHz 时仿真正弦波波形 接着波动波形选择开关, 可看到三角波与方波的的仿真波形图如图3-4所示。 华东师范大学信息学院通信工程 2012 年学士毕业论文 18 图 3-4 1.953kHz 时方波三角波波形 继续增大频率控制字,当其位 16364 时,根据公式可知输出频率为 156.25KHz。三种波形的仿真图如图 3-5 所示: 图 3-5 15.625kHz 时正弦波、方波、三角波波形 而根据其仿真波形可知其一个周期内输出了 64 个点,所以其频率计算为 1MHz/64=15.625KHz。再次与理论数据吻合。之后又尝试了各种不同的频率控制 字值,输出波形频率与理论计算值均相同,故可认定该 DDS 系统在仿真时能输 出较为准确地频率。 而从波形方面来看,随着频率控制字的升高,输出采样点数将会减少,所以 在高频时波形会有不同程度的失真。 图 3-6 是 19.5KHz 时正弦波仿真图, 可看出, 华东师范大学信息学院通信工程 2012 年学士毕业论文 19 由于输出采样点的减少,正弦波在峰值处有略微失真,并且在上升下降沿略微呈 现锯齿状的波形。 图 3-6 19.5kHz 正弦波波形 3.2.33.2.3 输出相位变化的仿真与分析输出相位变化的仿真与分析 由于输出相位的改变需要通过两个同时输出的同频波相互对比才能显现, 因 此要对原 DDS 工程的顶层文件进行重新编写。首先通过 Quarters文件里的 update 选项,将顶层的原理图文件(dds.bdf) 转换为 Verilog HDL 文件(dds.v)。 然后新建工程,命名为 dds_simulate,将原工程里的 Verilog HDL 文件全部添加 到新工程里,最后新建顶层文件,将原工程的顶层(dds.v)作为元器件进行调用。 新工程顶层文件的 Verilog 实现如下: module dds_compare(padj1,padj2,adj,clkin,p,reset,resut1,result2); input padj1,padj2,adj,clkin,reset; input2:0p; output 7:0resut1,result2; wire clko; dds i1 (clkin,adj,padj1,reset,p,clko,result1); dds i2 (clkin,adj,padj2,reset,p,clko,result2); endmodule 两个并行的 DDS 使用相同的参考时钟,相同的结构和 ROM,相同的按键控 制的频率控制字,而相位控制字的输入分别使用不同的按键,并使用不同的输出 口以供比较观察。 如前文所述设置完 Signal Tap 后,设置观察的管脚为,两个 dds 各自的输 出和相位控制字,频率控制字只须监视一个,因为两者是一样的。开始仿真后选 择正弦波形,频率控制字输入为 4096,此时波形对比如图 3-7 所示。 图 3-7 频率相位完全相同的两路正弦波 华东师范大学信息学院通信工程 2012 年学士毕业论文 20 由于都没有相位控制字的输入,两路波形的初始相位是相同,拖动光标可法 现不管在何处,其输出值都是一样的。因为要观察相位改变对波形的影响,所以 固定 dds:i2 的相位不变,改变 dds: i1 的相位控制字为 80h,即 128 时,可以看 到两路波形对比为图 3-7 所示。 图 3-8 相位差为的两路正弦波 由于 80h 正好为设定的相位控制字最大值的 256 的一半, 所以理论上两路波 形的相应相差。而图 3-8 的仿真波形对比正好印证了理论上的相位改变量。 图 3-9 相位差为 8 7 1的两路正弦波 继续升高 dds: i1 的相位控制字值, 当其值为 F0h 时, 可得到如图 3-9 所示两 路相位相差 8 7 1的正弦波。相位再往上提高就会达到2的最大值,此时两正弦 波相差一个周期,可以认为相位是相同的。 3.33.3 小结小结 通过对输出信号的仿真,我们可以看出该 DDS 系统在一定的频率范围内能 输出稳定的频率,并且能在 02的范围内相位可调。 但随着频率的上升,由于输出采样点的减少,波形会出现失真,若达到理论 的 50%fc 的频率, 一个周期输出的采样点仅为 2 个, 这样的输出便成了一串高低 不同的锯齿, 无法进行实际应用。 因此实际的最高输出频率应小于理论的 50%fc, 具体大小会在第五章的实际测试中再讨论。 华东师范大学信息学院通信工程 2012 年学士毕业论文 21 第四章 DAC 电路的设计 由于 DDS 通过 DE2 版的 8 个 I/O 脚输出的是一个 8 位数字信号,每一位仅 仅是一个高电平或低电平,所以要得到模拟信号的波形,必须要进行 D/A 转换。 在 D/A 芯片的选择上,由于 DDS 的高速转换特性,D/A 芯片需要有较快的 的转换速率。D/A 芯片的精度影响了输出波形的分辨率,但精度越高的 D/A,意 味着你将需要更多位数的输出才能达到最大化的利用, 而为了让输出位增加的位 数得到利用,ROM 的容量相应地也需要增大,因此会耗费大量的资源。所以为 了节省开销,我把要选的 D/A 芯片的精度定位 8 位。 在 8 位的 D/A 芯片里,DAC0832 是一款性价比较高的芯片。其转换频率为 1MHz,并口输入(因此无须在设计并转串的接口) ,再加上外围电路比较容易实 现,十分适合于本论文的 D/A 转换电路的设计。 4.14.1 DAC0832 DAC0832 是美国资料公司所研制一款 8 分辨率的 D/A 转换集成芯片。 其主 要参数特性如下6: 8 位分辨率; 电流稳定时间 1us; 可单缓冲、双缓冲或直接数字输入; 只需在满量程下调整其线性度; 单一电源供电(+5V+15V) ; 低功耗,20mW。 DAC0832 具有三种工作方式:直通方式、单缓冲方式和双缓冲方式。而我 们可以通过对 DAC0832 芯片的 CS,XFER ,WR1 ,WR2,ILE 等引脚的赋 值,来控制和选取合适的工作方式6。 图 4-1 给出了 DAC0832 的引脚图,详细的引脚功能可参见其数据表。 华东师范大学信息学院通信工程 2012 年学士毕业论文 22 图 4-1 DAC0832 引脚图 4.24.2 DAC0832 应用电路的选取应用电路的选取 由于 DAC0832 的 out1,out2 输出的是一组差动电流,要想得到电压输出, 还需运放转换,故选用 Vref输出的单电源接法。该接法直接输出电压,但由于输 出阻抗过大,还是需要一个运放作为输出增益,而与 LM358 配合的话可实现只 用单一的 15V 电压供电,方便了电源供电。应用电路以及各部分的元件的取值 如图 4-2 所示,输出 Vout 最高可达到 10V。 图 4-2 DAC0832 单电源供电应用电路图 华东师范大学信息学院通信工程 2012 年学士毕业论文 23 4.34.3 DAC0832 与与 FPGA 的连接的连接 DAC0832 将采用直通方式与 FPGA 相连,即 CS,XFER,WR1,WR2 均 接地,ILE 接高电平。实物图如图 4-3 所示。 图 4-3 DAC0832 与 FPGA 连接 图 4-3 DAC0832 与 FPGA 连接 华东师范大学信息学院通信工程 2012 年学士毕业论文 24 第五章 输出信号的测试与分析 5.15.1 错误的分析与修改错误的分析与修改 将 DDS 的顶层文件编译完输出的 sof 文件烧录到 FPGA 中,并把 FPGA 与 DAC 电路相连。在 DAC 的输出端接上示波器后即可观察输出波形。 图 5-1 从上到下依次为正弦波、方波、三角波 在输入频率控制字后示波器上显示的三种波形如图5-1所示。输出正弦波和 三角波呈严重的阶梯状,仅方波是完好的。鉴于仿真波形的良好,所以怀疑是 DAC 部分出的问题。 首先从 DAC 的转换速率入手,猜想是不是因为芯片的转换速率并没有达到 数据表上所说的1MHz,而输入端的数据更新率为1MHz 大于了转换速率,从而 华东师范大学信息学院通信工程 2012 年学士毕业论文 25 导致了数据丢失。于是调低 DDS 的参考频率至100kHz,波形还是如故;调高参 考频率至10MHz,波形也没有变得更差。所以可以确定问题并不出在这里。 其次怀疑是否是由量化误差造成的, 如果确实如此的话可通过在输出端接低 通滤波器来使波形便平滑。通过对比一些量化误差的波形资料后发现,如果是量 化误差,输出波形出现的阶梯应该会更多更密集,而不是像现在那样一个周期仅 有6个阶梯。现在的波形,更像是丢失了低位的波形。 于是再次对波形进行分析,仔细观察后会发先其在波峰波谷处有平滑的波 形,这说明高位和低位的值都能正常输出;在每一个阶梯的附近都有锯齿状的波 形,这说明有多个相近的值在此输出。因此猜测造成这种情况的原因是由于输出 丢失了中间的某几位数据。 遂对 FPGA 的输出 I/O 口进行检查。方法为将其逐位接上示波器观察,正常 情况下,每一位都将输出一串方波,但在第5、第6位的管脚处,输出却无任何波 形。于是再将其与 DAC 电路相连,断开其5、6位的输入,结果输出波形即为图 5-1所示波形, 没有任何变化, 故断定问题的所在即是 FPGA 信号输出的管脚的5、 6位发生故障。 于是将输出的8位数据绑定为其他的8个管脚,接上示波器后可见到如图5-2 所示平滑的波形。 图 5-2 正常输出的正弦波 此时频率控制值为2048,理论输出频率为1.953kHz(仿真也是该值)。示波 器中显示的频率1.942kHz 为该屏幕内的波形频率,下方的1.95313kHz 为所测的 华东师范大学信息学院通信工程 2012 年学士毕业论文 26 频率的平均值,与理论和仿真值相符合。调节频率选择开关,可见该频率下的方 波和三角波波形,如图5-3。 图 5-3 正常输出的 1.95kHz 的方波和三角波 5.25.2 性能的测试与分析性能的测试与分析 将频率控制字下调至最小值1,此时应出现频率的最小值,即频率分辨率 0.954Hz。此时的波形(以正弦波为例)如图5-4所示: 图 5-4 1Hz 时的正弦波 继续升高频率至15.7kHz,此时的波形图为图5-5: 图 5-5 15.7kHz 时的正弦波 华东师范大学信息学院通信工程 2012 年学士毕业论文 27 可看出 15.7kHz 时的正弦波并无明显失真。但当频率提高到 21.4kHz 时,如 图 5-6 所示,正弦波的波峰波谷出开始出现失真。 图 5-6 21.4kHz 时正弦波的输出波形 而此时的三角波如图5-7所示,下方为同一时期 SignalTap所测得的波形。

温馨提示

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

评论

0/150

提交评论