基于VHDL的函数信号发生器的设计毕业设计课案.docx
- 文档编号:30378709
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:44
- 大小:2.31MB
基于VHDL的函数信号发生器的设计毕业设计课案.docx
《基于VHDL的函数信号发生器的设计毕业设计课案.docx》由会员分享,可在线阅读,更多相关《基于VHDL的函数信号发生器的设计毕业设计课案.docx(44页珍藏版)》请在冰豆网上搜索。
基于VHDL的函数信号发生器的设计毕业设计课案
长江大学工程技术学院
毕
业
论
文
学院:
专业班级:
学号:
姓名:
指导教师:
辅导教师:
________~________学年
________年____月至________年____月
基于VHDL的函数信号发生器的仿真设计
【摘要】数字技术和计算机技术已经广泛运用于工业、农业、医学、教育、军事、生活等各个领域,其应用之深之广令人惊叹。
电子设计自动化技术已日趋成为现代电子设计技术的核心,这种技术又称为EDA(ElectronicDesignAutomation)技术。
EDA技术基于硬件描述语言HDL。
VHDL是HDL的一种,并广泛应用在电子设计中。
锯齿波、三角波、方波、正弦波等多种波形均可以从函数信号发生器中产生。
我们在电路实验中也广泛运用到函数信号发生器。
本文基于VHDL语言设计各个波形产生模块,然后在QUARTUSII软件上实现波形的编译及仿真,通过四选一数据选择器选择输出三角波、锯齿波、矩形波或正弦波中的一种规定波形,并采用调频模块和调幅模块进行调频调幅,可以产生多种波形。
【关键词】:
函数信号发生器;EDA技术;VHDL;QUARTUSII软件
1基于VHDL的函数信号发生器的设计…………………………………………
1.1信号发生器的发展现状……………………………………………………
1.2研究信号发生器目的和意义………………………………………………
1.3主要研究设计内容、关键问题及解决思路………………………………
1.3.1主要研究内容…………………………………………………………
1.3.2关键问题………………………………………………………………
1.3.3解决思路………………………………………………………………
2系统设计………………………………………………………………………
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结论……………………………………………………………………………
前言
信号发生器也被称为信号源或振荡器,被广泛应用于生产实践与科学技术。
设计方面,函数波形发生器分为模拟及数字合成式。
函数发生器,又称波形发生器。
它能产生某些特定的周期性时间函数波形(主
是正弦波、方波、三角波、锯齿波和脉冲波等)信号。
频率范围可从几毫赫甚几微赫的超低频直到几十兆赫。
除供通信、仪表和自动控制系统测试用外,还泛用于其他非电测量领域。
函数信号发生器实物图如图1所示。
本设计基于VHDL来设计制作多功能函数信号发生器。
该信号发生器可以生锯齿波、三角波、方波、正弦波形中的任意一种。
同时具有幅度、频率可的功能,其中调幅分为1、1/2、1/4、1/8调幅,调频分为2、4、8、16分频。
图1函数信号发生器
1信号发生器的了解
1.1信号发生器的发展现状
信号发生器也叫波形发生器,它是一种信号源。
需用到波形发生器的地方很多,包括电参数的测量。
信号发生器在通信、雷达和现代仪器仪表等方面应用普及,在电子测量设备中需提供准确技术要求,是最普通、最基本也是应用最广泛的电子仪器之一。
在现代的电子测量中,我们之所以不会选用传统的信号发生器,是因为它们获得所需频率主要依靠谐振法。
它们具有较宽的频率范围,并且结构简单。
这种信号发生器无法生成任意波形,其频率稳定性和准确度差。
在这现代电子技术飞速发展的时代,波形发生器不仅要求能产生锯齿波,方波,三角波,正弦波等标准波形,还可根据要求产生任意波形,要求输出波形的质量好,准确度、稳定度及分辨率高,频率转换速度快,输出频率范围宽且波形相位连续等。
这些高性能要求的提出,促进了设计者对信号发生器的进一步研制。
当前信号发生器的总趋势是向着宽频率,高精度,多功用,自动化和智能化发展的。
我国已经开始研制函数信号发生器,并取得了可喜的成绩。
但总的来说,我国的函数信号发生器还没有形成真正的产业。
就目前国内的成熟产品来看,多为一些PC仪器插卡,独立的仪器和VXI系统的模块很少,并且我国目前在函数信号发生器的种类和性能与国外同类产品存在较大的差距,因此加紧对函数信号发生器的研制显得迫在眉睫。
1.2研究信号发生器目的和意义
函数信号发生器作为一种常见的电子仪器设备,既能够构成独立的信号源,也是高性能的网络分析仪,频谱仪以及自动测试装备的组成部分。
函数信号发生器是各种测试和实验过程中不可缺少的工具,在通信,测量,雷达,控制等领域应用十分广泛。
不论是在生产,科研和教学上,函数信号发生器都是电子工程师信号仿真实验的最佳工具。
而且,函数信号发生器的设计方法越来越多,设计技术也越来越先进,随着我国经济和科技的飞速发展,对相应的测试仪器和测试手段也提出了更高的要求,因此开发研究函数信号发生器具有重大的意义。
在如今的社会,电子科技发展迅猛,传统的模拟振荡电路已经满足不了现代电子技术的需求,由纯粹物理器件构成的传统的设计方法存在许多弊端,如:
体积较大,重量较沉,移动不方便,信号失真大,波形较为单一,波形形状调节过于死板,无法满足用户对精度,便携性,稳定性等的要求。
研究设计出具有频率稳定,准确,波形质量好,输出频率范围宽,便携性好的函数信号发生器具有更好的市场前景。
目前市场上的信号发生器大多由纯硬件搭接而成,通常是单函数发生器,而且频率不高,失真大,工作不稳定,不易调试,用集成电路芯片的函数信号发生器,可以达到很高的频率,而且可以产生多种波形的信号,但是电路复杂不易调试,本次设计基于VHDL语言,利用QuartusII开发环境,完成信号发生器的编译与仿真,可以通过四选一数据选择器选择输出四种波形中的任意一种,并具有一定的调频调幅功能。
1.3主要研究(设计)内容,关键问题及解决思路
1.3.1主要研究内容
基于VHDL语言设计完成出一个函数信号发生器,通过对输入信号的选择,则确定输出锯齿波,三角波,方波,正弦波四种信号中的任意一种。
这种数据选择可以通过四选一数据选择器来实现。
设计中加入调频调幅模块,形成频率,幅度可控的函数信号发生器。
波形选择及频率,幅度选择采用产生高低电平的拨码开关来控制。
本次设计通过QuartusII软件进行波形的仿真,从而完成整个设计。
本次设计的任务:
(1)对函数信号发生器完成VHDL语言描述;
(2)利用EDA开发系统及QuartusII软件实现函数信号发生器的设计;
(3)根据整体电路的工作原理,完成各个子模块的设计与实现;
(4)该函数信号发生器能够产生锯齿波,三角波,方波,正弦波四种信号;
(5)波形之间的转换及波形信号的频率和幅度可以通过按键进行调节。
本次设计的函数信号发生器系统主要分为输入部分,频率调节部分,幅度调节部分和波形转换部分。
系统原理框图如下图2所示:
图2
1.3.2关键问题
本次设计是基于VHDL的函数信号发生器的设计,因此,波形数据产生模块和波形输入控制模块的设计及流程图在本系统中具有相当重要的地位,波形数据产生模块和波形输入控制模块设计的不合理将会增加开发的难度和复杂度,甚至整个设计失败。
所以,如何设计出合理的波形数据产生模块和波形输入控制模块,是研究本系统的关键。
在波形数据产生模块和波形输入控制模块的设计之前,就需要了解各个功能模块之间的关系,通过各个模块之间的关系来设计合理的波形数据产生模块和波形数据输入模块。
我们所需的四种波形信号通过VHDL语言编译设计出来,并设计出合理的波形输入控制模块。
1.3.3解决思路
波形数据产生模块利用VHDL语言编译设计出我们所需要的四种波形,锯齿波,三角波,方波,正弦波,通过QuaryusII软件编译调试,调试成功后下载至实验装置的芯片上。
波形输入控制模块由一个四选一的数据选择器端组成。
其设计流程图如下图3:
图3
2系统设计
2.1设计要求与任务
2.1.1本次设计的要求:
(1)通过对输入信号的选择,则确定输出锯齿波、三角波、方波、正弦波四种信号中的任意一种。
(2)设计中加入调频调幅模块,形成幅度、频率可控的函数信号发生器数据,选择可以通过4选1数据选择器来实现。
(3)波形选择及频率、幅度选择采用产生高低电平的拨码开关来控制。
(4)通过Altera公司的QuartusI9.1软件进行波形的仿真,从而完成整个设计。
2.1.2本次设计的任务:
(1)对函数信号发生器完成VHDL语言描述;
(2)利用EDA开发系统及QuartusI9.1软件实现函数信号发生器的设计;
(3)根据整体电路的工作原理,完成各个子模块的设计与实现;
(4)该函数信号发生器能够产生锯齿波、三角波、方波、正弦波四种信号;
(5)波形之间的转换及波形信号的频率和幅度可通过按键进行调节。
2.2设计方案
函数信号发生器有多种实现方法,但我们要选择一种精度高且易于实现的方
法,以此来提高本次设计的实用性。
方案一:
用分立元件组成的函数发生器。
方案二:
可以由晶体管、运放IC等通用器件制作,更多的则是用专门的函数信号发生器IC产生。
方案三:
通过单片机控制D/A,输出四种波形。
方案四:
利用专用直接数字合成DS芯片的函数发生器,能产生任意波形并达到很高的频率。
方案五:
用VHDL语言编写程序,调试成功后下载至实验装置的芯片上。
此种方案完全可以生成设计要求的4种波形,而且通过软件仿真可以直观的观测到输出的波参数,方便调试和更改波形参数,外围电路简单,减少器件损耗,精度高。
因此在本次设计中我们选择了VHDL。
本次设计基于VHDL语言来设计制作一个函数信号发生器,利用QuartusII开发环境进行编译仿真,使该信号发生器可以产生锯齿波、三角波方波、正弦波形中的任意一种。
同时具有幅度、频率可调的功能,其中调幅分为1、1/2、1/4、1/8调幅,调频分为2、4、8、16分频。
因此,本次设计的函数信号发生器系统主要分为输入部分、频率调节部分、幅度调节部分和波形转换部分。
2.3相关模块介绍
2.3.1时钟脉冲与复位
时钟脉冲(clk):
脉冲信号是一个按一定电压幅度,一定时间隔连续发出的脉冲信号。
此信号在同步电路当中,扮演计时器的角色,并组成电路的电子组件。
只有当同步信号到达时,相关的触发器才按输入信号改变输出状态,因此使得相关的电子组件得以同步运作[8,9]。
复位(rest):
在电路中有时会有清空数据的需要,此时复位键就可以使其回到某种状态。
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.1相关工具简介
VHDL:
一种硬件描述语言,于1983年由美国防部(DOD)发起创建,由IE(InstiueofElectrialndElectronicsEngiers)进一步发展,并在1987年发布“IE标准1076”版本。
自此之后,各种各样的新的VHDL设计环境相继推出。
VHDL广泛应用于电子设计领域,并逐步取代了原有的非标准硬件描述语言。
VHDL支持的设计方法种类多样,自顶向下(ToptoDown)和基于库(LibrayBased)便是两种典型的设计方法。
VHDL使用的源代码简洁明了,不管是简单
的还是复杂的设计,VHDL都可以清楚的描述并完整它。
随机电路,同步电路抑或是异步电路,在设计方面使用VHDL则显得方便多了。
VHDL具有功能强大,设计灵活的特点。
它可以通过层细化的方式生成不同的模块,再把各个模块连接成顶层电路,供以后的设计使用。
QUARTUSII:
基于Altera公司的QuartusII软件。
Altera公司的QuartusII是一种可编程逻辑的设计环境,因为其强大的设计能力和易于使用的直观的界面,而受到越来越多的数字系统设计人员的欢迎。
QuartusII经过不断升级,目前最高版本已经升到12.。
然而有的版本的QuartusII有明显的漏洞,所以无法深入。
本次设计将使用QuartusII9.1版本。
QuartusII开始界面如图7所示。
图7QuartusII9.1版本
3.2波形数据产生模块
3.2.1锯齿波
锯齿波的设计(这里只设计锯齿波的递增波形)是基于VHDL语言进行编程,主要使用到if语句。
clk为上升沿时,计数器才加1,否则与前一状态保持不变。
并且对其进行0-25的序列递增,因此输出信号周期为时钟周期的256倍。
设计流程图如图8所示:
图8锯齿波设计流程图
按流程图进行设计,并对此封装成块。
封装图如图9所示:
图9锯齿波封装图块
本文设计的函数信号发生器的频率即晶振频率20MHz,其周期则是50ns。
本次设计中设置不同的时钟周期,以输出不同频率的波形,再通过二、四、八、十六分频来得到更多的波形,便于对输出波形的仿真及对其周期的清晰观察。
本文设计的函数信号发生器的幅度由硬件的幅度决定。
通过对程序语句的调试,设置时钟周期为10ns,得到如图10所示波形图:
图10锯齿波信号仿真
3.2.2三角波
三角波的设计同样基于VHDL语言,主要使用if语句,先进行0-255的序列递增,然后再对得到的序列进行255-0的序列递减。
而三角波则正好是递增波形与递减波形相结合而得到的。
程序中a为内部节点信号,同时也作为递减信号。
当a为0时,为递增阶段,计数器加1;a为1时,为递减阶段,计数器减1。
设计流程图如图11所示:
图11三角波设计流程图
按流程图进行设计,并对此封装成块。
封装图如图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)
按流程图进行设计,并对此封装成块。
封装图如图16所示:
图16方波封装图块
方波调试后,设置时钟周期为50ns,得到波形图如图17所示:
图17方波信号仿真
3.2.4正弦波
正弦波的设计基于VHDL语言,编程语句中涉及到if语句与case语句。
由于VHDL语言程序仿真结果为数字信号波形,而正弦波是模拟信号波形。
因此,实验中采取对信号进行等间距采样,来等效正弦信号的波形。
程序的采样点为64个,等效为近似的正弦波形。
设计流程图如图18所示:
图18正弦波设计流程图
按流程图进行设计,并对此封装成块。
封装图如图19所示:
图19正弦波封装图块
对正弦波程序进行调试设置时钟频率为30ns得到如图20所示波形图:
图20正弦波信号仿真
程序根据正弦波采样取点,得到了以上仿真波形。
因为正弦波形仿真中的取点是按照正弦函数图取得,无法找到准确的规律,也就不能用循环来完成,相对于前面锯齿波、三角波及方波等波形的设计较难一些。
因此,程序中还会运用到case语句,通过查表的方法来实现输出正弦波。
4调控模块
4.1波形输入控制模块
波形输入控制模块由一个4选1的数据选择器端组成。
设计流程图如图21所示:
图21波形输入控制设计流程图
按流程图进行设计,并对此封装成块。
封装图如图22所示:
图22波形输入控制封装图块
波形输入控制模块经编译无误后。
得如图23所示仿真图:
图23波形输入控制模块波形仿真
当a1010时,选择y2。
4.2波形输出控制模块
在本设计中采用使用软件编程生成模块的方式实现数据四选一的功能。
程序中,为每一种波形分配一个通道,并为之赋予唯一的代码,当在s0,1端输入不同的代码时,被选中的通道打开,响应的波形发生模块产生波形。
设计流程图如图24所示:
图24四选一数据选择器设计流程图
按流程图进行设计,并对此封装成块。
封装图如图25所示:
图25四选一数据选择器封装图块
波形输出控制模块经编译无误后得到如图26所示仿真图:
图26波形输出控制模块波形图
当s01=‘0’时,选择d0通道。
4.3频率控制模块
频率控制单元中包括一个分频模块和一个调频模块,调频模块为四选一数据
选择器,分频模块将输入的时钟信号进行2、48、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调幅封装图块图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)锯齿波信号不调幅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)正弦波信号不调幅16分频
为清楚了解波形的调频调幅情况,特在这里贴出方波信号的三种仿真图,如
图40图41图42所示
图40方波信号2分频1/8调幅仿真图
图41方波信号4分频1/8调幅仿真图
图42方波信号4分频不调幅仿真图
6结论
本次设计是基于VHDL语言的函数信号发生器的设计,通过QuartusI软件进行编译仿真,使函数信号发生器能够产生锯齿波、三角波、方波、正弦波四种波形。
基于VHDL语言先是描述底层各个独立的模块,然后把各个封装图块调用出,设计成顶层电路图。
然后通过4选1数据选择器的设计,实现对需要波形的选择。
设计分各个模块,在对一个模块进行编写描述时就立即对其进行编译并修改,以免这个模块在连接总电路时存在调试困难的情况。
并且,VHDL语言也不得出现语法使用错误,否则将影响后期设计的完成,影响设计结果。
本次设计按照设计任务的要求总算是设计实现了功能,但是期间也碰到过遗漏的问题。
在设计过程当中,遇到了软件操作不熟练,程序编写不规范等诸多问题,通过对问题的总结分析得出,应用软件的主要功能必须熟练操作,才能提高工作效率,需要规范操作的地方必须严格按照使用说明操作,避免由于软件使用不当造成的错误产生。
程序的编写,包括格式、语句、用法等都需要严格遵守要求,对各个模块、端口、新建的工程名、实体名以及各个信号变量的命名都应当反映实际意义,方便再次检查时不会混淆。
本次设计过程中,我收获颇多。
通过本次设计,我不但对理论知识有了更深层次的了解,而且也找出了自己很多需要改进的地方。
我会继续努力,争取在此设计上会有新的成果与突破。
致谢
感谢我的论文指导老师—陈希湘老师对我在学术上的指导和帮助,使我不仅学到了知识,而且学到了做人的准则和严谨的治学作风。
他严肃的科学态度,严谨的治学精神,精益求精的工作风,深地感染和激励着我。
正是由于老师同学的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。
在此,我表示衷心的感谢和崇高的敬意!
附录
1锯齿波
librayie;
useie.std_logic_164.al;
useie
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VHDL 函数 信号发生器 设计 毕业设计