ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:616.99KB ,
资源ID:3840772      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3840772.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(eda基于FPGA的波形发生器.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

eda基于FPGA的波形发生器.docx

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

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

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

4、注意:工作目录名不能有中文。(3) 添加设计文件。(4) 选择FPGA器件。Family选择Cyclone,240,8。(5) 建立原理图或用VHDL语言描述设计电路。(6) 对原理图或用VHDL语言进行编译,无误后进行添加信号。(7) 对上述电路进行仿真。(8) 进行管脚分配。(9) 全局编译。(10) 采用JTAG或AS模式进行下载测试。二DDS波形发生器理论分析2.1 DDS原理简介 DDS基本结构 DDS与大多数的数字信号处理技术一样,它的基础仍然是奈圭斯特采样定理。奈圭斯特采样定理是任何模拟信号进行数字化处理的基础,它描述的是一个带限的模拟信号经抽样变成离散值后可不可以由这些离散值恢

5、复原始模拟信号的问题。 奈圭斯特采样定理告诉我们,当抽样频率大于或者等于模拟信号最高频率的两倍时,可以由抽样得到的离散信号无失真地恢复出原始模拟信号。只不过在DDS技术中,这个过程被颠倒过来了。DDS不是对模拟信号进行抽样,而是一个假定抽样过程已经发生且抽样值已经量化完成,如何通过某种方法把已经量化的数值重建原始信号的问题。 DDS电路一般由参考时钟、相位累加器、波形存储器、D/A转换器(DAC)和低通滤波器(LPF)组成7。其结构框图如图1-1所示。 图2 DDS基本结构框图其中,f为参考时钟频率,K为频率控制字,N为相位累加器位数,A为波形存储器位数,D为波形存储器的数据位字长和D/A转换

6、器位数。 DDS系统中的参考时钟通常由一个高稳定度的晶体振荡器来产生,用来作为整个系统各个组成部分的同步时钟。频率控制字(Frequency Control Word,FCW)实际上是二进制编码的相位增量值,它作为相位累加器的输入累加值。相位累加器由加法器和寄存器级联构成,它将寄存器的输出反馈到加法器的输入端实现累加的功能。在每一个时钟脉冲f,相位累加器把频率字K累加一次,累加器的输出相应增加一个步长的相位增量,由此可以看出,相位累加器的输出数据实质上是以K为步长的线性递增序列(在相位累加器产生溢出以前),它反映了合成信号的相位信息。相位累加器的输出与波形存储器的地址线相连,相当于对波形存储器

7、进行查表,这样就可以把存储在波形存储器中的信号抽样值(二进制编码值)查出。在系统时钟脉冲的作用下,相位累加器不停的累加,即不停的查表。波形存储器的输出数据送到D/A转换器,D/A转换器将数字量形式的波形幅度值转换成所要求合成频率的模拟量形式信号,从而将波形重新合成出来。若波形存储器中存放的是正弦波幅度量化数据,那么D/A转换器的输出是近似正弦波的阶梯波,还需要后级的低通平滑滤波器进一步抑制不必要的杂波就可以得到频谱比较纯净的正弦波信号。图1-2所示为DDS各个部分的输出信号。 由于受到字长的限制,相位累加器累加到一定值后,就会产生一次累加溢出,这样波形存储器的地址就会循环一次,输出波形循环一周

8、。相位累加器的溢出频率即为合成信号的频率。可见,频率控制字K越大,相位累加器产生溢出的速度越快,输出频率也就越高。故改变频率字(即相位增量),就可以改变相位累加器的溢出时间,在参考频率不变的条件下就可以改变输出信号的频率。图3 DDS各部分输出波形2.2 DDS主要性能指标信号源的一个重要指标就足能输出频率准确町调的所需信号。一般传统的信号发生器采用谐振法,即用具有频率选择性的正反馈州路来产生正弦振荡,获得所需频率信号,但难以产生大量的具有同一稳定度和准确度的不同频率。利用频率合成技术制成的信号发生器,通常被称为频率合成器。频率合成器既要产生所需要的频率,又要获得纯净的信号。频率合成器的主要指

9、标如下:1输出频率范围(fminfmax):指的是输出的最小频率和最大频率之问的变化范围。2频率稳定度:指的是输出频率在一定时间间隔内和标准频率偏差的数值,它分长期、短期和瞬时稳定度三种。3频率分辨率:频率合成器的输出频谱通常是不连续的。频率分辨率指的是输出频率的最小间隔。4频率转换时间:频率切换时间指的是输出由一种频率转换成另一频率达到稳定工作所需的时间。5频谱纯度:频谱纯度以杂散分量和相位噪声柬衡量,杂散分量为谐波分量和非谐波分量两种,主要由频率合成过程中的非线性失真产生,相位噪声是衡量输出信号相位抖动大小的参数。6调制性能:指的是频率合成器是否具有调幅(AM)、调频(FM)、调相(PM)

10、等功能。2.3 DDS频率合成器优缺点DDS频率合成器具有以下优点:(1)频率分辨率高,输出频点多,可达2N个频点(假设DDS相位累加器的字长是N);(2)频率切换速度快,可达us量级;(3)频率切换时相位连续;(4)可以输出宽带正交信号;(5)输出相位噪声低,对参考频率源的相位噪声有改善作用;(6)可以产生任意波形;(7)全数字化实现,便于集成,体积小,重量轻。但DDS也有比较明显的缺点:(l)输出信号的杂散比较大;(2)输出信号的带宽受到限制。DDS输出杂散比较大,这是由于信号合成过程中的相位截断误差、D/A转换器的截断误差和D/A转换器的非线性造成的。当然随着技术的发展,这些问题正在逐步

11、得到解决。如通过增加波形ROM的长度以减小相位截断误差,通过增加波形ROM的字长和D/A转换器的精度以减小D/A量化误差等。在比较新的DDS芯片中普遍都采用了12bit的D/A转换器。当然一味靠增加波形ROM的深度和字长的方法来减小杂散对性能的提高总是有限的。已有研究在对DDS输出的频谱做了大量的分析后,总结出了误差的领域分布规律建立了误差模型,在分析DDS频谱特性的基础上又提出了一些降低杂散功率的方法。可以通过采样的方法降低带内误差功率,可以通过随机抖动法提高无杂散动态范围,在D/A转换器的低位上加扰打破DDS输出的周期性,从而把周期性的杂散分量打散使之均匀化。三硬件电路设计3.1设计要求

12、基于DDS与FPGA技术设计一个函数器,能够以稳定的频率产生三角波、梯形波、正弦波和方波,能够调频,调幅,方波能够调节占空比。设置一个波形选择开关,通过此开关可以选择以上各种不同种类的输出函数波形。3.2 系统方案设计采用DDS技术来合成波形不仅简单可靠、控制方便,而且可以实现可编程和全数字化。目前市场上有很多性能优良的专用DDS芯片,这些DDS芯片不仅有比较高的工作频率,内部集成了高精度的D/A转换器,并且还具备一定的调制功能。但DDS专用芯片中的波形存储器多采用只读存储器(Read Only Memory,ROM),在芯片出产以前已经将波形数据固化到ROM中,无法按用户需求更改波形数据以产

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

14、较高的性价比。图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=qi(5);3.3.2相位累加器相位累加器是整个DDS的核心,它由一个加法器和一个寄存器构成。加法器的一个输入与寄存器输出相连

15、,另一个输入是外部输入的频率控制字。这样,在每个时钟到达时,相位寄存器采样上个时钟周期内相位寄存器的值与频率控制字之和,并作为相位累加器在这一时钟周期的输出。频率控制字决定了相应的相位增量,相位累加器则不断地对该相位增量进行线性累加,当相位累加器加满量时就会产生一次溢出,从而完成一个周期性的动作,这个动作周期即是DDS合成信号的一个频率周期。该模块可使用Altera提供的宏模块LPM_ADD_SUB和LPM_FF生成。图5 相位累加器3.3.3波形ROM查找表波形ROM模块由ROM:1-port宏模块生成,其地址线的位宽为9位,数据线的位宽为8位,即一个周期的波形数据有512个,每个数据占8位

16、,其输出可直接DAC0832。ROM中的MIF数据文件可使用Mif_Maker2010.exe软件生成。图6 正弦波ROM查找表图7 三角波ROM查找表图8 方波ROM查找表3.3.4三选一输出波形选择器 该波形选择器由两位输入拨码开关控制,用于输出波形的选择。当WS为00时,输出正弦波;当WS为01时,输出方波;当WS为10时,输出三角波;当WS为11时,不输出波形。图9 三选一输出波形选择器程序如下:port (keya,keyb:in std_logic; d_in1,d_in2,d_in3,:in std_logic_vector(7 downto 0); d_out:out std_

17、logic_vector( 7 downto 0);end wav_sel;architecture behave of wav_sel issignal key:std_logic_vector(1 downto 0);beginkey=keya&keyb;with key select d_out=d_in1 when 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_

18、logic_unsigned.all;use ieee.std_logic_arith.all;entity dac0832 isport(clk :in std_logic;WR_n :out std_logic;datin:in std_logic_vector(7 downto 0);Analog_D:out std_logic_vector(7 downto 0);end dac0832;architecture rt1 of DAC0832 isbeginWR_n = 0 ; process (clk ) begin if clkevent and clk = 1 then Anal

19、og_D = datin; end if; end process ;end rt1;图10 数模转换模块图11系统整体原理图截图四 软件仿真 4.1方波模块部分程序如下:port(fclk:in std_logic; reset:in std_logic; d_out:out std_logic_vector(7 downto 0);end fangbo;architecture arch of fangbo issignal da:std_logic_vector(7 downto 0);beginprocess(da)begin if da127 then d_out=00000000;

20、 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;architec

21、ture arch of sanjiao is signal da : std_logic_vector(7 downto 0);begin process (fclk,reset,da)variable porn :std_logic;begin if reset=1 then da=00000000; d_out=00000000;porn:=0;else if fclk=1 and fclkevent then if porn=0 then if da=126 then da0 then dad_outd_outd_outd_outd_outd_outd_outd_outd_outd_o

22、utd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outd_outnull;end case;end if;d=conv_

23、std_logic_vector(d_out,8);end process;end sin_arc;其波形图如下:五系统调试5.1 嵌入式逻辑分析 随着逻辑设计复杂性的不断增加,仅依赖于软件方式的仿真测试来了了解设计系统的硬件功能和存在的问题已远远不够了,而需要重复进行的硬件系统的测试也变得更为困难。为了解决这些问题,设计者可以将一种高效的硬件测试手段和传统的系统测试方法相结合。这就是嵌入式逻辑分析仪的使用。 SignalTapII是集成在QuartusII中的嵌入式逻辑分析仪,设计者可以通过SignalTapII在线观察FPGA片内的信号变化,为验证设计提供了非常强大的工具。SignalTa

24、pII与仿真是有区别的,仿真是在假设的情况下进行,而SignalTapII是实际运行中观察信号,两者有本质的区别。另外,SignalTapII本身集成在QuartusII中,不需要额外付费,而且使用非常方便。 SignalTapII的工作原理是把要观察的信号预先保存在FPGA的片内RAM中,然后再通过USBBlaster传输到计算机,所以可观察信号的数量与FPGA剩余的片内RAM有关,剩余的片内RAM越多,可观察的信号也就越多。 5.2 仿真波形图1. 方波2. 三角波3. 正弦波5.3 实验结果1、方波方波调节占空比:2、三角波三角波调节频率和幅度:3、正弦波正弦波调节频率和幅度:六实验总结

25、6.1 总结本次试验是第一次接触Quartus软件,从一开始按照搜集的资料一点点按部就班的运行软件,到后来不断调试就不断熟练。感觉只要软件仿真正确后,硬件仿真和实物仿真就简单多了,只是每一步骤都需要很细心。其实每次试验都有这样的感觉,就是很多软件硬件,我们都是用的国外货或者是汉化的国外货,我在想是我们没有必要研制自己的软件,还是我们的能力不行?还是软件作为一种工具,本身已经没有了可以说明的问题?我本身是具备科研的基本素养的,在实验过程中一般不会感到很压抑,即使很多还不懂,也是还有很大的好奇心,虽然不知道所做的东西未来会不会用的到,但是既然动手花时间做了,我就想做好。参考文献1 Douglas L.Perry.VHDL编程实例(第四版)M.北京:电子工业出版社.2 张亦华.数字电路EDA入门VHDL程序实例集M.北京:北京邮电大学出版社.3 赵新民.智能仪器设计基础M.哈尔滨:哈尔滨工业大学出版社.4 卢毅,赖杰.VHDL与数字电路设计M.北京:科学出版社,2001:256-261.5 褚振勇,翁木云.FPGA设计及应用M.西安:西安电子科技大学出版社,2003:1-22.6 潘松,黄继业.EDA技术实用教程M.北京:科学出版社,2003:1-14.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1