多功能波形发生器讲解.docx
- 文档编号:5386408
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:14
- 大小:209.12KB
多功能波形发生器讲解.docx
《多功能波形发生器讲解.docx》由会员分享,可在线阅读,更多相关《多功能波形发生器讲解.docx(14页珍藏版)》请在冰豆网上搜索。
多功能波形发生器讲解
____
考试序列号
通识教育课程论文
课程设计名称发生器能多功波形
课程名称EDA技术课程设计
学院物理学院
专业班级
学号
姓名
2015年1月17日
概述
函数信号发生器是一种能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波等波形的电路。
函数信号发生器在电路实验和设备检测中具有十分广泛的用途。
现在我们通过对函数信号发生器的原理以及构成设计一个能变换出三角波、正弦波、方波的简易发生器。
本设计采用FPGA来设计制作多功能信号发生器。
在实验室用EDA完成设计并进行引脚锁定下载连接用IILogicSignalTap
Analyer调试。
一、设计原理
本设计由信号产生,信号选择,信号控制输出三大模块组合而成。
其中信号产生模块有:
三角波模块、方波模块、正弦波模块。
本设计采用K0~K2这三个按键为信号选择开关,选择信号产生模块输出的信号。
其控制模块(SIG_CONTROL)是由数据选择器实现对以上三种信号的选择,并产生相应波形。
其结构框图如下:
三角波波波形形结束输开始方波选出择
正弦波信号选择
图1.信号发生器结构框图
二、设计原理概述正弦信号的发生器各一个,三角波信号、
(1)函数信号发生器的结构:
方波信号、数据选择器。
(2)VHDL顶层设计。
(3)SignalTap的仿真分析。
IILogicAnalyer
三个波形数据由三个,通过外加按键控制波形输出中实现,FPGA顶层文件在(4)
信号发生模块(delta—三角波、—方波、sin—正弦波)提供,信号发square
生器时钟由实验箱提供。
三、设计步骤
(1)三角波、方波和正弦波源文件的编写并把VHDL程序转换成原理图。
(2)数据选择器的源文件编写,并把VHDL程序转换成原理图。
(3)用原理图完成函数发生器的设计。
(4)编译完成后,建立SingnalTap‖的工程文件。
(5)锁定引脚,下载连接。
(6)运行程序并观察结果。
(7)记录数据完成报告。
四、软件设计流程及源程序代码
4.1软件设计流程:
1.设计原理图。
2.分别编写各函数发生器,数据选择器的程序,并作为低层文件。
3.建顶层文件,并调用底层文件,定义信号量进行列话语句。
4.生成实验原理电路图。
1.三角波程序及其原理图
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYdeltaIS
port(clk,clrn:
INSTD_LOGIC;
q:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDdelta;
ARCHITECTUREaOFdeltaIS
BEGIN
PROCESS(clk,clrn)
VARIABLEtmp:
STD_LOGIC_VECTOR(7DOWNTO0);
VARIABLEf:
STD_LOGIC;
BEGIN
IFclrn='0'THENtmp:
=
ELSIFclk'EVENTANDclk='1'THEN
IFf='0'THEN
IFtmp=I11110THENtmp:
=I11111;f:
='1';
ELSEtmp:
=tmp+1;
ENDIF;
ELSE
IFtmp=tmp:
=
ELSEtmp:
=tmp-1;
ENDIF;
ENDIF;
ENDIF;
q<=tmp;
ENDPROCESS;
ENDa;
原理图如下:
图2.三角波信号发生器原理图
2.方波程序及其原理图
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYsquareIS
PORT(clk,clrn:
INSTD_LOGIC;
q:
OUTSTD_LOGIC_VECTOR(7downto0));
ENDsquare;
ARCHITECTUREaOFsquareIS
SIGNALf:
STD_LOGIC;
BEGIN
PROCESS(clk,clrn)
VARIABLEtmp:
STD_LOGIC_VECTOR(7downto0);
BEGIN
IFclrn='0'THENtmp:
=
ELSEIFclk'eventandclk='1'THEN
IFtmp=I11111THENtmp:
=
ELSEtmp:
=tmp+1;ENDIF;
IFtmp<@00000THENf<='1';
ELSEf<='0';ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(clk,f)
BEGIN
IFclk'eventandclk='1'THEN
IFf='1'THENq<=I11111;
ELSEq<=
ENDIF;
ENDPROCESS;
ENDa;
原理图如下:
图3.方波信号发生器原理图
3.正弦波程序及其原理图
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYsinIS
PORT(clk,clrn:
INSTD_LOGIC;
q:
OUTINTEGERRANGE255DOWNTO0);
ENDsin;
ARCHITECTUREAOFsinIS
BEGIN
PROCESS(clk,clrn)
VARIABLEtmp:
INTEGERRANGE63DOWNTO0;
BEGIN
IFclrn='0'THENq<=0;tmp:
=0;
ELSE
IFclk'EVENTANDclk='1'THEN
tmp:
=tmp+1;ENDIF;IFtmp=63THENtmp:
=0;ELSE
CASETMPIS
WHEN00=>q<=255;WHEN01=>q<=254;WHEN02=>q<=252;
WHEN03=>q<=249;WHEN04=>q<=245;WHEN05=>q<=239;
WHEN06=>q<=233;WHEN07=>q<=225;WHEN08=>q<=217;
WHEN09=>q<=207;WHEN10=>q<=197;WHEN11=>q<=186;
WHEN12=>q<=174;WHEN13=>q<=162;WHEN14=>q<=150;
WHEN15=>q<=137;WHEN16=>q<=124;WHEN17=>q<=112;
WHEN18=>q<=99;WHEN19=>q<=87;WHEN20=>q<=75;
WHEN21=>q<=64;WHEN22=>q<=53;WHEN23=>q<=43;
WHEN24=>q<=34;WHEN25=>q<=26;WHEN26=>q<=19;
WHEN27=>q<=13;WHEN28=>q<=8;WHEN29=>q<=4;
WHEN30=>q<=1;WHEN31=>q<=0;WHEN32=>q<=0;
WHEN33=>q<=1;WHEN34=>q<=4;WHEN35=>q<=8;
WHEN36=>q<=13;WHEN37=>q<=19;WHEN38=>q<=26;
WHEN39=>q<=34;WHEN40=>q<=43;WHEN41=>q<=53;
WHEN42=>q<=64;WHEN43=>q<=75;WHEN44=>q<=87;
WHEN45=>q<=99;WHEN46=>q<=112;WHEN47=>q<=124;
WHEN48=>q<=137;WHEN49=>q<=150;WHEN50=>q<=162;
WHEN51=>q<=174;WHEN52=>q<=186;WHEN53=>q<=197;
WHEN54=>q<=207;WHEN55=>q<=217;WHEN56=>q<=225;
WHEN57=>q<=233;WHEN58=>q<=239;WHEN59=>q<=245;
WHEN60=>q<=249;WHEN61=>q<=252;WHEN62=>q<=254;
WHEN63=>q<=255;WHENOTHERS=>NULL;
ENDCASE;
ENDIF;
ENDIF;
ENDPROCESS;
ENDa;
原理图如下:
正弦波信号发生器原理图4.图
4.数据选择器程序及其原理图
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYsig_controlIS
PORT(delta,square,sin:
INSTD_LOGIC;
d0,d1,d2:
INSTD_LOGIC_VECTOR(7DOWNTO0);
q:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDsig_control;
ARCHITECTUREbehaveOFsig_controlIS
SIGNALsel:
STD_LOGIC_VECTOR(2DOWNTO0);
BEGIN
sel<=delta&square&sin;
PROCESS(sel)
BEGIN
CASEselIS
WHEN@=>q<=d0;
WHEN=>q<=d1;
WHEN=>q<=d2;
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESS;
ENDbehave;
原理图如下:
数据选择器原理图5.图4.3信号发生器的顶层文件原理图
由三个函数信号发生器以及数据选择器设计实验顶层文件原理图,如图6示
图6.函数信号发生器顶层文件原理图
五、信号发生器的时序仿真与硬件测试
5.1仿真与测试流程
1.各模块时序仿真结果。
2.进行嵌入式逻辑分析,连接数到模转换芯片,并改变其波形种类和频率,用
SignalTapIILogicAnalyer进行观察。
3.观察记录,得到模拟信号波形
5.2时序仿真
1.当选择信号K0置1,K1、K2置0时,信号发生器输出波形为三角波,其时序仿真波形如图7所示。
图7.三角波时序仿真图
时,信号发生器输出波形为方波,其时序仿0置K2、K0,1置K1当选择信号2.
真波形如图8所示。
图8.方波时序仿真图
3.当选择信号K2置1,K0、K1置0时,信号发生器输出波形为正弦波,其时序仿真波形如图9所示。
图9.正弦波时序仿真图
5.3引脚锁定,如图10所示
引脚锁定图10.图
5.4SignalTapII实时测试
1.编译完成后,建立SingnalTap‖的工程文件,如图11所示:
图11
2.连接好实验箱后,将编译产生的SOF格式文件配置进FPGA中,进行硬件测试,如图12所示:
图12
3.下载连接,运行程序并观察结果。
①当选择信号K0置1时,其余按键置0,信号发生器输出三角波,其模拟信所示:
13号波形如图
图13.三角波模拟信号波形
②当选择信号K1置1时,其余按键置0,信号发生器输出方波,其模拟信号
波形如图14所示:
图14.方波模拟信号波形
③当选择信号K2置1时,其余按键置0,信号发生器输出正弦波,其模拟信号波形如图15所示:
图15.正弦波模拟信号波形
六、总结及心得体会
通过这次的课程设计,使我更深入地学习了相关专业知识,并能够熟练的操作SignalTapIILogicAnalyer99及Quartus‖软件。
通过对单片机、FPGA芯片的使用及对VHDL硬件描述语言学习,让我感到了VHDL硬件描述语言及单片机的方便性和灵活性,可以使编程技能快速提高,并且认识到很多新的设计思想。
这给我带来了很大的帮助及深远的影响,使我受益无穷。
设计以FPGA为核心,详细阐述了FPGA内部实现的功能及VHDL程序设计仿真,使用SignalTapII,各部分模块都能实现仿真。
而单片机的设计仅属于本设计的辅助控制部分,且单片机的资料很多,所以在此对单片机的程序不作详细说明。
经系统仿真表明,本设计可达到预定要求,应用方便灵活。
本次课程设计虽然取得了一定的收获,但在很多方面还有待于进一步的改进和完善。
特别是在信息技术飞速发展的今天,各种电子产品层出不穷,各种技术与方法也在不断地改善,因此对电子技术知识的学习也应不断地充实和更新,以适应工作与社会的需要。
最后是要感谢陈国鼎老师一直以来对我们的认真教导,使我们能够学会了基础的知识和实验技能,并且通过此次的课程设计不仅培养我们动手和独立思考的能力,而且还能让我们在实践操作中更好的运用书本上所学的知识,从而加深理解所学知识。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多功能 波形 发生器 讲解