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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于 VHDL 的函数信号发生器的设计毕业设计.docx

1、基于 VHDL 的函数信号发生器的设计毕业设计长江大学工程技术学院毕业论文 学 院: 专业班级: 学 号: 姓 名: 指导教师: 辅导教师: _学年 _年_月 至 _年_月基于 VHDL 的函数信号发生器的仿真设计【摘 要】数字技术和计算机技术已经广泛运用于工业、农业、医学、教育、军事、生活等各个领域,其应用之深之广令人惊叹。电子设计自动化技术已日趋成为现代电子设计技术的核心,这种技术又称为 EDA(Electronic Design Automation)技术。EDA 技术基于硬件描述语言 HDL。VHDL 是 HDL 的一种,并广泛应用在电子设计中。锯齿波、三角波、方波、正弦波等多种波形均

2、可以从函数信号发生器中产生。我们在电路实验中也广泛运用到函数信号发生器。本文基于 VHDL 语言设计各个波形产生模块,然后在 QUARTUS II 软件上实现波形的编译及仿真,通过四选一数据选择器选择输出三角波、锯齿波、矩形波或正弦波中的一种规定波形,并采用调频模块和调幅模块进行调频调幅,可以产生多种波形。【关键词】:函数信号发生器;EDA 技术;VHDL;QUARTUS II 软件1 基于VHDL的函数信号发生器的设计 1.1信号发生器的发展现状 1.2研究信号发生器目的和意义 1.3主要研究设计内容、关键问题及解决思路 1.3.1主要研究内容 1.3.2关键问题1.3.3解决思路2系统设计

3、 2.1设计要求与任务 2.2设计方案 2.3相关模块介绍 2.3.1时钟脉冲与复位 2.3.2调频与调幅 2.4相关组合对应关系3 系统仿真 3.1相关工具简介 3.2波形数据产生模块 3.2.1锯齿波 3.2.2三角波 3.2.3方波 3.2.4正弦波4 调控模块 4.1波形输入控制模块 4.2波形输出控制模块 4.3频率控制模块 4.4幅度控制模块5 结果分析6 结论 前言 信号发生器也被称为信号源或振荡器,被广泛应用于生产实践与科学技术。设计方面,函数波形发生器分为模拟及数字合成式。 函数发生器,又称波形发生器。它能产生某些特定的周期性时间函数波形(主是正弦波、方波、三角波、锯齿波和脉

4、冲波等)信号。频率范围可从几毫赫甚几微赫的超低频直到几十兆赫。除供通信、仪表和自动控制系统测试用外,还泛用于其他非电测量领域。函数信号发生器实物图如图 1 所示。本设计基于 VHDL 来设计制作多功能函数信号发生器。该信号发生器可以生锯齿波、三角波、方波、正弦波形中的任意一种。同时具有幅度、频率可的功能,其中调幅分为 1、1/2、1/4、1/8 调幅,调频分为 2、4、8、16 分频。图 1 函数信号发生器1 信号发生器的了解 1.1信号发生器的发展现状信号发生器也叫波形发生器,它是一种信号源。需用到波形发生器的地方很多,包括电参数的测量。信号发生器在通信、雷达和现代仪器仪表等方面应用普及,在

5、电子测量设备中需提供准确技术要求,是最普通、最基本也是应用最广泛的电子仪器之一。在现代的电子测量中,我们之所以不会选用传统的信号发生器,是因为它们获得所需频率主要依靠谐振法。它们具有较宽的频率范围,并且结构简单。这种信号发生器无法生成任意波形,其频率稳定性和准确度差。在这现代电子技术飞速发展的时代,波形发生器不仅要求能产生锯齿波,方波,三角波,正弦波等标准波形,还可根据要求产生任意波形,要求输出波形的质量好,准确度、稳定度及分辨率高,频率转换速度快,输出频率范围宽且波形相位连续等。这些高性能要求的提出,促进了设计者对信号发生器的进一步研制。当前信号发生器的总趋势是向着宽频率,高精度,多功用,自

6、动化和智能化发展的。我国已经开始研制函数信号发生器,并取得了可喜的成绩。但总的来说,我国的函数信号发生器还没有形成真正的产业。就目前国内的成熟产品来看,多为一些PC仪器插卡,独立的仪器和VXI系统的模块很少,并且我国目前在函数信号发生器的种类和性能与国外同类产品存在较大的差距,因此加紧对函数信号发生器的研制显得迫在眉睫。1.2 研究信号发生器目的和意义 函数信号发生器作为一种常见的电子仪器设备,既能够构成独立的信号源,也是高性能的网络分析仪,频谱仪以及自动测试装备的组成部分。函数信号发生器是各种测试和实验过程中不可缺少的工具,在通信,测量,雷达,控制等领域应用十分广泛。不论是在生产,科研和教学

7、上,函数信号发生器都是电子工程师信号仿真实验的最佳工具。而且,函数信号发生器的设计方法越来越多,设计技术也越来越先进,随着我国经济和科技的飞速发展,对相应的测试仪器和测试手段也提出了更高的要求,因此开发研究函数信号发生器具有重大的意义。 在如今的社会,电子科技发展迅猛,传统的模拟振荡电路已经满足不了现代电子技术的需求,由纯粹物理器件构成的传统的设计方法存在许多弊端,如:体积较大,重量较沉,移动不方便,信号失真大,波形较为单一,波形形状调节过于死板,无法满足用户对精度,便携性,稳定性等的要求。研究设计出具有频率稳定,准确,波形质量好,输出频率范围宽,便携性好的函数信号发生器具有更好的市场前景。目

8、前市场上的信号发生器大多由纯硬件搭接而成,通常是单函数发生器,而且频率不高,失真大,工作不稳定,不易调试,用集成电路芯片的函数信号发生器,可以达到很高的频率,而且可以产生多种波形的信号,但是电路复杂不易调试,本次设计基于VHDL语言,利用QuartusII开发环境,完成信号发生器的编译与仿真,可以通过四选一数据选择器选择输出四种波形中的任意一种,并具有一定的调频调幅功能。1.3 主要研究(设计)内容,关键问题及解决思路1.3.1 主要研究内容 基于VHDL语言设计完成出一个函数信号发生器,通过对输入信号的选择,则确定输出锯齿波,三角波,方波,正弦波四种信号中的任意一种。这种数据选择可以通过四选

9、一数据选择器来实现。设计中加入调频调幅模块,形成频率,幅度可控的函数信号发生器。波形选择及频率,幅度选择采用产生高低电平的拨码开关来控制。本次设计通过QuartusII软件进行波形的仿真,从而完成整个设计。本次设计的任务: (1)对函数信号发生器完成VHDL语言描述; (2)利用EDA开发系统及QuartusII软件实现函数信号发生器的设计; (3)根据整体电路的工作原理,完成各个子模块的设计与实现; (4)该函数信号发生器能够产生锯齿波,三角波,方波,正弦波四种信号; (5)波形之间的转换及波形信号的频率和幅度可以通过按键进行调节。本次设计的函数信号发生器系统主要分为输入部分,频率调节部分,

10、幅度调节部分和波形转换部分。系统原理框图如下图2所示:图21.3.2 关键问题 本次设计是基于VHDL的函数信号发生器的设计,因此,波形数据产生模块和波形输入控制模块的设计及流程图在本系统中具有相当重要的地位,波形数据产生模块和波形输入控制模块设计的不合理将会增加开发的难度和复杂度,甚至整个设计失败。所以,如何设计出合理的波形数据产生模块和波形输入控制模块,是研究本系统的关键。 在波形数据产生模块和波形输入控制模块的设计之前,就需要了解各个功能模块之间的关系,通过各个模块之间的关系来设计合理的波形数据产生模块和波形数据输入模块。我们所需的四种波形信号通过VHDL语言编译设计出来,并设计出合理的

11、波形输入控制模块。1.3.3 解决思路波形数据产生模块利用VHDL语言编译设计出我们所需要的四种波形,锯齿波,三角波,方波,正弦波,通过QuaryusII软件编译调试,调试成功后下载至实验装置的芯片上。波形输入控制模块由一个四选一的数据选择器端组成。其设计流程图如下图3:图32 系统设计2.1 设计要求与任务2.1.1本次设计的要求:(1)通过对输入信号的选择,则确定输出锯齿波、三角波、方波、正弦波四种信号中的任意一种。(2)设计中加入调频调幅模块,形成幅度、频率可控的函数信号发生器数据,选择可以通过 4 选 1 数据选择器来实现。(3)波形选择及频率、幅度选择采用产生高低电平的拨码开关来控制

12、。(4)通过 Altera 公司的 Quartus I 9.1 软件进行波形的仿真,从而完成整个设计。2.1.2本次设计的任务: (1)对函数信号发生器完成 VHDL 语言描述; (2)利用 EDA 开发系统及 Quartus I 9.1 软件实现函数信号发生器的设计; (3)根据整体电路的工作原理,完成各个子模块的设计与实现; (4)该函数信号发生器能够产生锯齿波、三角波、方波、正弦波四种信号; (5)波形之间的转换及波形信号的频率和幅度可通过按键进行调节。 2.2 设计方案 函数信号发生器有多种实现方法,但我们要选择一种精度高且易于实现的方法,以此来提高本次设计的实用性。方案一:用分立元件

13、组成的函数发生器。方案二:可以由晶体管、运放 IC 等通用器件制作,更多的则是用专门的函数信号发生器 IC 产生。方案三:通过单片机控制 D/A,输出四种波形。方案四:利用专用直接数字合成 DS 芯片的函数发生器,能产生任意波形并达到很高的频率。方案五:用 VHDL 语言编写程序,调试成功后下载至实验装置的芯片上。此种方案完全可以生成设计要求的 4 种波形,而且通过软件仿真可以直观的观测到输出的波参数,方便调试和更改波形参数,外围电路简单,减少器件损耗,精度高。因此在本次设计中我们选择了 VHDL。本次设计基于 VHDL 语言来设计制作一个函数信号发生器,利用 Quartus II开发环境进行

14、编译仿真,使该信号发生器可以产生锯齿波、三角波方波、正弦波形中的任意一种。同时具有幅度、频率可调的功能,其中调幅分为 1、1/2、1/4、1/8 调幅,调频分为 2、4、8、16 分频。因此,本次设计的函数信号发生器系统主要分为输入部分、频率调节部分、幅度调节部分和波形转换部分。2.3 相关模块介绍2.3.1 时钟脉冲与复位 时钟脉冲(clk):脉冲信号是一个按一定电压幅度,一定时间隔连续发出的脉冲信号。此信号在同步电路当中,扮演计时器的角色,并组成电路的电子组件。只有当同步信号到达时,相关的触发器才按输入信号改变输出状态,因此使得相关的电子组件得以同步运作8,9。复位(rest):在电路中有

15、时会有清空数据的需要,此时复位键就可以使其回到某种状态。2.3.2 调频与调幅 调频(FM),就是高频载波的频率不是一个常数,是随调制信号而在一定范围内变化的调制方式,其幅值则是一个常数。与其对应的,调幅(AM)就是载频的频率是不变的,其幅值随调制信号而变10。本次设计中调幅分为1、/2、1/4、1/8调幅,调频分为2、4、8、16分频。2.4 相关组合对应关系 本次设计中 K1键则为 rest 复位键,K2、K3键则为频控按键,K4、K5键则为幅控按键。K6、K7键则为波形选择按键。各组合键的键值与对应波形关系如图4,图5,图6所示:图4 频控按键图5 幅控按键图6波形选择按键3 系统仿真3

16、.1 相关工具简介 VHDL:一种硬件描述语言,于 1983 年由美国防部(DOD)发起创建,由 IE(Instiue of Electrialnd Electronics Engiers)进一步发展,并在 1987 年发布“IE 标准 1076”版本。自此之后,各种各样的新的 VHDL 设计环境相继推出。VHDL 广泛应用于电子设计领域,并逐步取代了原有的非标准硬件描述语言。VHDL 支持的设计方法种类多样,自顶向下(Top to Down)和基于库(LibrayBased)便是两种典型的设计方法。VHDL 使用的源代码简洁明了,不管是简单的还是复杂的设计,VHDL 都可以清楚的描述并完整它

17、。随机电路,同步电路抑或是异步电路,在设计方面使用 VHDL 则显得方便多了。VHDL 具有功能强大,设计灵活的特点。它可以通过层细化的方式生成不同的模块,再把各个模块连接成顶层电路,供以后的设计使用。 QUARTUS II:基于 Altera 公司的 Quartus II 软件。Altera 公司的 Quartus II 是一种可编程逻辑的设计环境,因为其强大的设计能力和易于使用的直观的界面,而受到越来越多的数字系统设计人员的欢迎。Quartus II 经过不断升级,目前最高版本已经升到 12.。然而有的版本的Quartus II 有明显的漏洞,所以无法深入。本次设计将使用 Quartus

18、II 9.1 版本。Quartus II 开始界面如图 7 所示。图7 QuartusI I 9.1版本3.2 波形数据产生模块3.2.1 锯齿波 锯齿波的设计(这里只设计锯齿波的递增波形)是基于 VHDL 语言进行编程,主要使用到 if 语句。clk 为上升沿时,计数器才加1,否则与前一状态保持不变。并且对其进行0-25的序列递增,因此输出信号周期为时钟周期的256倍。设计流程图如图8所示:图8 锯齿波设计流程图按流程图进行设计,并对此封装成块。封装图如图9所示:图9 锯齿波封装图块本文设计的函数信号发生器的频率即晶振频率20MHz,其周期则是50ns。本次设计中设置不同的时钟周期,以输出不

19、同频率的波形,再通过二、四、八、十六分频来得到更多的波形,便于对输出波形的仿真及对其周期的清晰观察。本文设计的函数信号发生器的幅度由硬件的幅度决定。通过对程序语句的调试,设置时钟周期为10ns,得到如图10所示波形图:图10 锯齿波信号仿真3.2.2 三角波 三角波的设计同样基于 VHDL 语言,主要使用 if 语句,先进行0-255的序列递增,然后再对得到的序列进行255-0的序列递减。而三角波则正好是递增波形与递减波形相结合而得到的。程序中 a 为内部节点信号,同时也作为递减信号。当 a 为0时,为递增阶段,计数器加1;a 为1时,为递减阶段,计数器减1。设计流程图如图11所示:图11 三

20、角波设计流程图按流程图进行设计,并对此封装成块。封装图如图12所示:图12 三角波封装图块三角波程序调试至无语法错误后,设时钟周期为50ns。仿真得到如图13所示波形图:图13 三角波信号仿真 3.2.3 方波 方波的设计也是基于 VHDL 语言,主要采用 if 语句编写程序,每次当计数第64次时便翻转一次,由此产生方波信号,其周期为输入时钟信号周期的128倍。程序语句中把 a 同样设置成内部节点信号,计数器从0计到15后一个循环,立即对 a 取反,则 a 会在0与1之间变换。设计流程图如图14,图15所示:图14 方波设计流程图(1)图15方波设计流程图(2)按流程图进行设计,并对此封装成块

21、。封装图如图16所示:图16 方波封装图块方波调试后,设置时钟周期为50ns,得到波形图如图17所示:图17方波信号仿真3.2.4 正弦波正弦波的设计基于 VHDL 语言,编程语句中涉及到 if 语句与 case 语句。由于 VHDL 语言程序仿真结果为数字信号波形,而正弦波是模拟信号波形。因此,实验中采取对信号进行等间距采样,来等效正弦信号的波形。程序的采样点为64个,等效为近似的正弦波形。设计流程图如图18所示: 图18 正弦波设计流程图按流程图进行设计,并对此封装成块。封装图如图19所示:图19 正弦波封装图块对正弦波程序进行调试设置时钟频率为30ns得到如图20所示波形图:图20 正弦

22、波信号仿真 程序根据正弦波采样取点,得到了以上仿真波形。因为正弦波形仿真中的取点是按照正弦函数图取得,无法找到准确的规律,也就不能用循环来完成,相对于前面锯齿波、三角波及方波等波形的设计较难一些。因此,程序中还会运用到 case 语句,通过查表的方法来实现输出正弦波。4 调控模块4.1 波形输入控制模块波形输入控制模块由一个4选1的数据选择器端组成。设计流程图如图21所示:图21 波形输入控制设计流程图按流程图进行设计,并对此封装成块。封装图如图22所示:图22 波形输入控制封装图块波形输入控制模块经编译无误后。得如图23所示仿真图: 图23 波形输入控制模块波形仿真 当 a1010时,选择

23、y2。4.2 波形输出控制模块 在本设计中采用使用软件编程生成模块的方式实现数据四选一的功能。程序中,为每一种波形分配一个通道,并为之赋予唯一的代码,当在 s0,1端输入不同的代码时,被选中的通道打开,响应的波形发生模块产生波形。设计流程图如图24所示:图24 四选一数据选择器设计流程图按流程图进行设计,并对此封装成块。封装图如图25所示:图25 四选一数据选择器封装图块波形输出控制模块经编译无误后得到如图26所示仿真图:图26 波形输出控制模块波形图当 s01=0时,选择 d0通道。4.3 频率控制模块 频率控制单元中包括一个分频模块和一个调频模块,调频模块为四选一数据选择器,分频模块将输入

24、的时钟信号进行 2、4 8、16 分频。 设计流程图如图27所示:图27 频率控制流程图按流程图进行设计,并对此封装成块。封装图如图28,图29所示: 图28 分频封装图块 图 29 调频封装图块频率控制模块经编译无误后,得到如图30所示仿真图: 图30 分频模块波形仿真4.4 幅度控制模块幅度控制模块中含有一个除法模块(这里称作 tiaofu 模块),它将输入的信号进行1、1/2、1/4、1/8调幅;同时包含一个选择模块(这里称作 scope 模块),是一个四选一数据选择器。设计流程图如图31所示:图31 幅度控制流程图按流程图进行设计,并对此封装成块。封装图如图32,图33所示: 图32

25、调幅封装图块 图33 选择封装图块幅度控制模块经编译无误后,得到如图34所示仿真图:图34 幅度控制模块波形仿真当 scope_mode1scope_mode0=1时,进行1/8调幅。5 结果分析将上述各个模块封装成为模块文件,供顶层电路调用。可以得到:如图35所示系统顶层电路图:图35 系统顶层电路图本次设计共可产生波形4种,调幅方法4种,调频方法4种,因此共可仿真出:4* 4=64个图。 这里每种波形只截取4种仿真图:1.图36 为锯齿波信号仿真图(设置时钟周期为4ns) (a) 锯齿波信号 2分频 不调幅 (b) 锯齿波信号 2分频 1/2调幅 (c) 锯齿波信号 不调幅 8分频 (d)

26、 锯齿波信号 不调幅 16分频 2.图37 为三角波信号仿真图(设置时钟周期为4ns) (a) 三角波信号 二分频 不调幅 (b) 三角波信号 二分频 1/2调幅(c) 三角波信号 不调幅 8分频 (d) 三角波信号 不调幅 16分频3.图38为方波信号仿真图(设置时钟周期为80ns)(a) 方波信号 二分频 不调幅 (b) 方波信号 二分频 1/2调幅(c) 方波信号 不调幅 8分频 (d) 方波信号 不调幅 16分频4.图39 为正弦波信号仿真图(设置周期为10ns)(a) 正弦波信号 二分频 不调幅 (b) 正弦波信号 二分频 1/2调幅(c) 正弦波信号 不调幅 8分频 (d) 正弦波

27、信号 不调幅 16分频为清楚了解波形的调频调幅情况,特在这里贴出方波信号的三种仿真图,如图40 图41 图42所示图40 方波信号 2分频 1/8调幅仿真图图41 方波信号 4分频 1/8调幅仿真图图42 方波信号 4分频 不调幅仿真图6 结 论 本次设计是基于 VHDL 语言的函数信号发生器的设计,通过 Quartus I 软件进行编译仿真,使函数信号发生器能够产生锯齿波、三角波、方波、正弦波四种波形。基于 VHDL 语言先是描述底层各个独立的模块,然后把各个封装图块调用出,设计成顶层电路图。然后通过4选1数据选择器的设计,实现对需要波形的选择。设计分各个模块,在对一个模块进行编写描述时就立

28、即对其进行编译并修改,以免这个模块在连接总电路时存在调试困难的情况。并且,VHDL 语言也不得出现语法使用错误,否则将影响后期设计的完成,影响设计结果。本次设计按照设计任务的要求总算是设计实现了功能,但是期间也碰到过遗漏的问题。在设计过程当中,遇到了软件操作不熟练,程序编写不规范等诸多问题,通过对问题的总结分析得出,应用软件的主要功能必须熟练操作,才能提高工作效率,需要规范操作的地方必须严格按照使用说明操作,避免由于软件使用不当造成的错误产生。程序的编写,包括格式、语句、用法等都需要严格遵守要求,对各个模块、端口、新建的工程名、实体名以及各个信号变量的命名都应当反映实际意义,方便再次检查时不会混淆。本次设计过程中,我收获颇多。通过本次设计,我不但对理论知识有了更深层次的了解,而且也找出了自己很多需要改进的地方。我会继续努力,争取在此设计上会有新的成果与突破。致 谢 感谢我的论文指导老师陈希湘老师对我在学术上的指导和帮助,使我不仅学到了知识,而且学到了做人的准则和严谨的治学作风。他严肃的科学态度,严谨的治学精神,精益求精的工作风,深地感染和激励着我。正是由于老师同学的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。在此,我表示衷心的感谢和崇高的敬意!附 录1 锯齿波libray ie;use ie.std_logic_164.al;use

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

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