多功能波形发生器讲解Word文档格式.docx
《多功能波形发生器讲解Word文档格式.docx》由会员分享,可在线阅读,更多相关《多功能波形发生器讲解Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
图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;
IFclrn='
0'
THENtmp:
=
ELSIFclk'
EVENTANDclk='
1'
THEN
IFf='
IFtmp=I11110THENtmp:
=I11111;
f:
='
;
ELSEtmp:
=tmp+1;
ENDIF;
ELSE
IFtmp=tmp:
=tmp-1;
q<
=tmp;
ENDPROCESS;
ENDa;
原理图如下:
图2.三角波信号发生器原理图
2.方波程序及其原理图
ENTITYsquareIS
PORT(clk,clrn:
INSTD_LOGIC;
OUTSTD_LOGIC_VECTOR(7downto0));
ENDsquare;
ARCHITECTUREaOFsquareIS
SIGNALf:
STD_LOGIC;
PROCESS(clk,clrn)
STD_LOGIC_VECTOR(7downto0);
BEGIN
ELSEIFclk'
eventandclk='
IFtmp=I11111THENtmp:
ENDIF;
IFtmp<
@00000THENf<
ELSEf<
ENDPROCESS;
PROCESS(clk,f)
IFclk'
THENq<
ELSEq<
图3.方波信号发生器原理图
3.正弦波程序及其原理图
ENTITYsinIS
PORT(clk,clrn:
OUTINTEGERRANGE255DOWNTO0);
ENDsin;
ARCHITECTUREAOFsinIS
PROCESS(clk,clrn)
INTEGERRANGE63DOWNTO0;
=0;
tmp:
=0;
ELSE
tmp:
IFtmp=63THENtmp:
CASETMPIS
WHEN00=>
q<
=255;
WHEN01=>
=254;
WHEN02=>
=252;
WHEN03=>
=249;
WHEN04=>
=245;
WHEN05=>
=239;
WHEN06=>
=233;
WHEN07=>
=225;
WHEN08=>
=217;
WHEN09=>
=207;
WHEN10=>
=197;
WHEN11=>
=186;
WHEN12=>
=174;
WHEN13=>
=162;
WHEN14=>
=150;
WHEN15=>
=137;
WHEN16=>
=124;
WHEN17=>
=112;
WHEN18=>
=99;
WHEN19=>
=87;
WHEN20=>
=75;
WHEN21=>
=64;
WHEN22=>
=53;
WHEN23=>
=43;
WHEN24=>
=34;
WHEN25=>
=26;
WHEN26=>
=19;
WHEN27=>
=13;
WHEN28=>
=8;
WHEN29=>
=4;
WHEN30=>
=1;
WHEN31=>
WHEN32=>
WHEN33=>
WHEN34=>
WHEN35=>
WHEN36=>
WHEN37=>
WHEN38=>
WHEN39=>
WHEN40=>
WHEN41=>
WHEN42=>
WHEN43=>
WHEN44=>
WHEN45=>
WHEN46=>
WHEN47=>
WHEN48=>
WHEN49=>
WHEN50=>
WHEN51=>
WHEN52=>
WHEN53=>
WHEN54=>
WHEN55=>
WHEN56=>
WHEN57=>
WHEN58=>
WHEN59=>
WHEN60=>
WHEN61=>
WHEN62=>
WHEN63=>
WHENOTHERS=>
NULL;
ENDCASE;
正弦波信号发生器原理图4.图
4.数据选择器程序及其原理图
ENTITYsig_controlIS
PORT(delta,square,sin:
d0,d1,d2:
INSTD_LOGIC_VECTOR(7DOWNTO0);
ENDsig_control;
ARCHITECTUREbehaveOFsig_controlIS
SIGNALsel:
STD_LOGIC_VECTOR(2DOWNTO0);
sel<
=delta&
square&
sin;
PROCESS(sel)
CASEselIS
WHEN@=>
=d0;
WHEN=>
=d1;
=d2;
WHENOTHERS=>
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,各部分模块都能实现仿真。
而单片机的设计仅属于本设计的辅助控制部分,且单片机的资料很多,所以在此对单片机的程序不作详细说明。
经系统仿真表明,本设计可达到预定要求,应用方便灵活。
本次课程设计虽然取得了一定的收获,但在很多方面还有待于进一步的改进和完善。
特别是在信息技术飞速发展的今天,各种电子产品层出不穷,各种技术与方法也在不断地改善,因此对电子技术知识的学习也应不断地充实和更新,以适应工作与社会的需要。
最后是要感谢陈国鼎老师一直以来对我们的认真教导,使我们能够学会了基础的知识和实验技能,并且通过此次的课程设计不仅培养我们动手和独立思考的能力,而且还能让我们在实践操作中更好的运用书本上所学的知识,从而加深理解所学知识。