基于FPGA的波形发生器说明书.doc

上传人:h**** 文档编号:101162 上传时间:2018-07-06 格式:DOC 页数:45 大小:7.43MB
下载 相关 举报
基于FPGA的波形发生器说明书.doc_第1页
第1页 / 共45页
基于FPGA的波形发生器说明书.doc_第2页
第2页 / 共45页
基于FPGA的波形发生器说明书.doc_第3页
第3页 / 共45页
基于FPGA的波形发生器说明书.doc_第4页
第4页 / 共45页
基于FPGA的波形发生器说明书.doc_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、 1 EDA 实验设计报告 题 目: 基于 FPGA 的波形发生器 作 者: 学 号: 专业年级: 指导教师: 2 摘要: 本设计是采用了 EDA 技术设计的函数信号发生器。此函数信号发生器的实现是基于 FPGA 语言描述各个波形产生 模块,然后在 Quartus软件上实现波形的编译,仿真和下载到 Cyclone 芯片上。整个系统由波形产生模块、波形选择模块、波形频率控制和波形幅度控制四个部分组成。最后经过 Quartus软件仿真,证明此次设计可以通过波形选择模块的设定来选择波形输出,输出正弦波、方波、三角波等规定波形,并可以通过频率控制和幅度控制改变波形。 关键字: VHDL; Quartu

2、s; Cyclone;函数信号发生器 一、 Quartus II 软件简介 1.1 Quartus II 软件介绍 Quartus II 是 Alera 公司 推出的一款功能强大,兼容性最好的 EDA 工具软件。该软件界面友好、使用便捷、功能强大,是一个完全集成化的可编程逻辑设计环境,具有开放性、与结构无关、多平台完全集成化丰富的设计库、模块化工具、支持多种硬件描述语言及有多种高级编程语言接口等特点。 Quartus II 是 Altera 公司推出的 CPLD/FPGA 开发工具, Quartus II 提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理

3、图、结构框图、 VerilogHDL、 AHDL 和 VHDL 完成电路描述,并将其保存为设计实体文 件;芯片平面布局连线编辑;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时 /时序分析与关键路径延时分析;可使用 SignalTap II 逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的 EDIF网表文件、 VHDL 网表文件和 Verilog 网表文件;能生成第三方 EDA 软件使用的 VHDL 网表文件和 Verilog 网表文件。

4、 1.2 Quartus II 软件设计流程 ( 1)打开 Quartus II 软件。 ( 2)选择路径。注意:工作目录名不能有中文。 ( 3)添加设计文件。 ( 4)选择 FPGA 器件。 Family 选择 Cyclone, 240, 8。 ( 5)建立原理图或用 VHDL 语言描述设计电路。 ( 6)对原理图或用 VHDL 语言进行编译,无误后进行添加信号。 ( 7)对上述电路进行仿真。 ( 8)进行管脚分配。 ( 9)全局编译。 ( 10) 采用 JTAG 或 AS 模式进行下载测试。 3 二 DDS波形发生器理论分析 2.1 DDS 原理简介 DDS 基本结构 DDS 与大多数的数

5、字信号处理技术一样,它的基础仍然是奈圭斯特采样定理。奈圭斯特采样定理是任何模拟 信号进行数字化处理的基础,它描述的是一个带限的模拟信号经抽样变成离散值后可不可以由这些离散值恢复原始模拟信号的问题。 奈圭斯特采样定理告诉我们,当抽样频率大于或者等于模拟信号最高频率的两倍时,可以由抽样得到的离散信号无失真地恢复出原始模拟信号。只不过在 DDS 技术中,这个过程被颠倒过来了。 DDS 不是对模拟信号进行抽样,而是一个假定抽样过程已经发生且抽样值已经量化完成,如何通过某种方法把已经量化的数值重建原始信号的问题。 DDS 电路一般由参考时钟、相位累加器、波形存储器、 D/A 转换器( DAC)和低通滤波

6、器( LPF)组成 7。其结构框图如图 1-1 所示。 图 2 DDS 基本结构框图 其中, f 为参考时钟频率, K 为频率控制字, N 为相位累加器位数, A 为波形存储器位数,D 为波形存储器的数据位字长和 D/A 转换器位数。 DDS 系统中的参考时钟通常由一个高稳定度的晶体振荡器来产生,用来作为整个系统各个组成部分的同步时钟。频率控制字( Frequency Control Word, FCW)实际上是二进制编码的相位增量值,它作为相位累加器的输入累加值。相位累加器由加法器和寄存器级联构成,它将寄存器的输出反馈到加法器的输入端实现累 加的功能。在每一个时钟脉冲 f,相位累加器把频率字

7、 K 累加一次,累加器的输出相应增加一个步长的相位增量,由此可以看出,相位累加器的输出数据实质上是以 K 为步长的线性递增序列(在相位累加器产生溢出以前),它反映了合成信号的相位信息。相位累加器的输出与波形存储器的地址线相连,相当于对波形存储器进行查表,这样就可以把存储在波形存储器中的信号抽样值(二进制编码值)查出。在系统时钟脉冲的作用下,相位累加器不停的累加,即不停的查表。波形存储器的输出数据送到 D/A 转换器, D/A 转换器将数字量形式的波形幅度值转换成所要求合成频率 的模拟量形式信号,从而将波形重新合成出来。若波形存储器中存放的是正弦波幅度量化数据,那么D/A 转换器的输出是近似正弦

8、波的阶梯波,还需要后级的低通平滑滤波器进一步抑制不必要的杂波就可以得到频谱比较纯净的正弦波信号。图 1-2 所示为 DDS 各个部分的输出信号。 由于受到字长的限制,相位累加器累加到一定值后,就会产生一次累加溢出,这样波形存储器的地址就会循环一次,输出波形循环一周。相位累加器的溢出频率即为合成信号的频率。可见,频率控制字 K 越大,相位累加器产生溢出的速度越快,输出频率也就越高。故改变频率字(即相位增量 ),就可以改变相位累加器的溢出时间,在参考频率不变的条件下就可以改变输出信号的频率。 4 图 3 DDS 各部分输出波形 2.2 DDS 主要性能指标 信号源的一个重要指标就足能输出频率准确町

9、调的所需信号。一般传统的信号发生器采用谐振法,即用具有频率选择性的正反馈州路来产生正弦振荡,获得所需频率信号,但难以产生大量的具有同一稳定度和准确度的不同频率。利用频率合成技术制成的信号发生器,通常被称为频率合成器。频率合成器既要产生所需要的频率,又要获得纯净的信号。频率合成器的主要指标如下: 1输出频率范围 (fmin fmax):指的是输出的最小频率和最大频率之问的变 化范围。 2频率稳定度:指的是输出频率在一定时间间隔内和标准频率偏差的数值, 它分长期、短期和瞬时稳定度三种。 3频率分辨率:频率合成器的输出频谱通常是不连续的。频率分辨率指的是输出频率的最小间隔。 4频率转换时间:频率切换

10、时间指的是输出由一种频率转换成另一频率达到稳定工作所需的时间。 5频谱纯度:频谱纯度以杂散分量和相位噪声柬衡量,杂散分量为谐波分量和非谐波分量两种,主要由频率合成过程中的非线性失真产生,相位噪声是衡量输出信号相位抖动大小的参数。 6调制性能:指的是频率合成器是否具有调幅 (AM)、调频 (FM)、调相 (PM) 等功能。 2.3 DDS 频率合成器优缺点 DDS 频率合成器具有以下优点: (1)频率分辨率高,输出频点多,可达 2N 个频点 (假设DDS 相位累加器的字长是 N); (2)频率切换速度快,可达 us 量级; (3)频率切换时相位连续;(4)可以输出宽带正交信号; (5)输出相位噪

11、声低,对参考频率源的相位噪声有改善作用; (6)可以产生任意波形; (7)全数字化实现,便于集成,体积小,重量轻。 但 DDS 也有比较明显的缺点: (l)输出信号的杂散比较大; (2)输出信号的带宽受到限制。DDS 输出杂散比较大,这是由于信号合成过程中的相位截断误差、 D/A 转换器的截断误差和D/A 转换器的非线性造成的。当然随着技术的发展,这些问题正在逐步得到解决。如通过增加波形 ROM 的长度以减小相位截断误差,通过增加波形 ROM 的字长和 D/A 转换器的精度以减小 D/A 量化误差等。在比较新的 DDS 芯片中普遍都采用了 12bit 的 D/A 转换器。当然一味靠增加波形 R

12、OM 的深度和字长的方法来减小杂散对性能的提高总是有限的。已有研究在对 DDS输出的频谱做了大量的分析后,总结出了误差的领域分布规律建立了 误差模型,在分析 DDS频谱特性的基础上又提出了一些降低杂散功率的方法。可以通过采样的方法降低带内误差功率,可以通过随机抖动法提高无杂散动态范围,在 D/A 转换器的低位上加扰打破 DDS 输出的周期性,从而把周期性的杂散分量打散使之均匀化。 三硬件电路设计 5 3.1 设计要求 基于 DDS 与 FPGA 技术设计一个函数器,能够以稳定的频率产生三角波、梯形波、正弦波和方波,能够调频,调幅,方波能够调节占空比。设置一个波形选择开关,通过此开关可以选择以上

13、各种不同种类的输出函数波形。 3.2 系统方案设计 采用 DDS 技术来合成波形不仅简单可靠、控制方便,而且可以实现可编程和全数字化。目前市场上有很多性能优良的专用 DDS 芯片,这些 DDS 芯片不仅有比较高的工作频率,内部集成了高精度的 D/A 转换器,并且还具备一定的调制功能。但 DDS 专用芯片中的波形存储器多采用只读存储器 (Read Only Memory, ROM),在芯片出产以前已经将波形数据固化到 ROM中,无法按用户需求更改波形数据以产生任意波形。 采用现场可编程逻辑阵列 (Field Programmable Gate Array, FPGA)设计 DDS 电路比专用 D

14、DS 芯 片更具灵活性。因为只要通过改变 FPGA 内部波形存储器中的波形数据,就可以实现任意波形输出,这使得用 FPGA 来实现 DDS 具有相当大的灵活性。相比之下, FPGA 所能实现的功能完全取决于设计需求,可以简单也可以复杂,另外, FPGA 芯片还支持在系统升级,虽然在精度和速度上略有不足,但是基本上能满足绝大数系统的要求,并且,将 DDS 设计嵌入到 FPGA 内部所构成的系统中,其系统成本并不会增加多少,而专用 DDS 芯片的价格一般也比 FPGA 高。因此,采用 FPGA 来设计 DDS 系统具有较高的性价比。 相 位 累 加 器频 率 字 寄 存 器正 弦 波 形 数 据存

15、 储时 钟 信 号频 率 控 制 字方 波 、 锯 齿 波模 块幅 度 控 制 字调 幅 乘 法 器波 形 输 出图 4 系统设计流程图 3.3 功能模块设计 3.3.1 分频模块 分频模块是将 FPGA芯片内部的 50兆赫兹的时钟脉冲进行 2的从 1次方到 16次方的分频,然后取出 16 个中的一个。其部分设计程序如下: begin process(clk) begin if clkevent and clk=1 then if(qi=65535) then qi=“0000000000000000“; else qi=qi+1; end if; end if; end process; q

16、=qi(5); 3.3.2 相位累加器 6 相位累加器是整个 DDS 的核心,它由一个加法器和一个寄存器构成。 加法器的一个输入与寄存器输出相连,另一个输入是外部输入的频率控制字。这样,在每个时钟到达时,相位寄存器采样上个时钟周期内相位寄存器的值与频率控制字之和,并作为相位累加器在这一时钟周期的输出。频率控制字决定了相应的相位增量,相位累加器则不断地对该相位增量进行线性累加,当相位累加器加满量时就会产生一 次溢出,从而完成一个周期性的动作,这个动作周期即是 DDS合成信号的一个频率周期。 该模块可使用 Altera提供的宏模块 LPM_ADD_SUB和 LPM_FF 生成。 图 5 相位累加器

17、 3.3.3 波形 ROM查找表 波形 ROM 模块由 ROM: 1-port 宏模块生成,其地址线的位宽为 9 位,数据线的位宽为 8位,即一个周期的波形数据有 512 个,每个数据占 8 位,其输出可直接 DAC0832。 ROM 中的MIF 数据文件可使用 Mif_Maker2010.exe 软件生成。 图 6 正弦波 ROM 查找表 7 图 7 三角波 ROM 查找表 图 8 方波 ROM 查找表 3.3.4 三选一输出波形选择器 该波形选择器由两位输入拨码开关控制,用于输出波形的选择。当 WS 为 00 时,输出正弦波;当 WS为 01 时,输出方波;当 WS 为 10 时,输出三角

18、波;当 WS 为 11 时,不输出波形。 图 9 三选一输出波形选择器 程序如下: port (keya,keyb:in std_logic; d_in1,d_in2,d_in3,:in std_logic_vector(7 downto 0); 8 d_out:out std_logic_vector( 7 downto 0); end wav_sel; architecture behave of wav_sel is signal key:std_logic_vector(1 downto 0); begin key=keya with key select d_out=d_in1 wh

19、en “00“, d_in2 when “01“, d_in3 when “10“, “00000000“ when others; 3.3.5 数模转换模块 8 位 dac 的程序及 Symbol: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity dac0832 is port ( clk :in std_logic; WR_n :out std_logic; datin:in std_logic_vector(7

20、downto 0); Analog_D:out std_logic_vector(7 downto 0) ); end dac0832; architecture rt1 of DAC0832 is begin WR_n = 0 ; process (clk ) begin if clkevent and clk = 1 then Analog_D = datin; end if; end process ; end rt1; 9 图 10 数模转换模块 图 11 系统整体原理图截图 四 软件仿真 4.1 方波模块 部分程序如下 : port(fclk:in std_logic; 10 res

21、et:in std_logic; d_out:out std_logic_vector(7 downto 0); end fangbo; architecture arch of fangbo is signal da:std_logic_vector(7 downto 0); begin process(da) begin if da127 then d_out=“00000000“; else d_out=“11111111“; end if; end process; process(fclk,reset,da) begin if reset=1 then da=“00000000“; else if fclkevent and fclk=1 then if da=“11111111“ then da=“00000000“; else da=da+1; 4.2 三角波模块 部分程序如下: port (fclk:in std_logic; reset:in std_logic; d_out : out std_logic_vector(7 downto 0); end sanjiao; architecture arch of sanjiao is signal da : std_logic_vector(7 downto 0); begin

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

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。