您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > EDA实验-函数信号发生器
EDA设计实验题目:函数信号发生器作者:所在学院:信息科学与工程学院专业年级:指导教师:职称:2011年12月11日函数信号发生器摘要:函数信号发生器在生产实践和科技领域有着广泛的应用。本设计是采用了EDA技术设计的函数信号发生器。此函数信号发生器的实现是基于VHDL语言描述各个波形产生模块,然后在QuartusⅡ软件上实现波形的编译,仿真和下载到Cyclone芯片上。整个系统由波形产生模块和波形选择模块两个部分组成。最后经过QuartusⅡ软件仿真,证明此次设计可以输出正弦波、方波、三角波,锯齿波,阶梯波等规定波形,并能根据波形选择模块的设定来选择波形输出。关键字:函数信号发生器;Cyclone;VHDL;QuartusⅡ引言:函数信号发生器即通常所说的信号发生器是一种常用的信号源,广泛应用于通信,雷达,测控,电子对抗以及现代化仪器仪表等领域,是一种为电子测量工作提供符合严格要求的电信号设备是最普通、最基本也是应用最广泛的电子仪器之一,几乎所有电参量的测量都要用到波形发生器。随着现代电子技术的飞速发展,现代电子测量工作对函数信号信号发生器的性能提出了更高的要求,不仅要求能产生正弦波、方波等标准波形,还能根据需要产生任意波性,且操作方便,输出波形质量好,输出频率范围宽,输出频率稳定度、准确度、及分辨率高等。本文基于EDA设计函数信号发生器,并产生稳定的正弦波、方波、锯齿波、三角波、阶梯波。正文:1、QuartusII软件简介1)QuartusII软件介绍QuartusII是Alera公司推出的一款功能强大,兼容性最好的EDA工具软件。该软件界面友好、使用便捷、功能强大,是一个完全集成化的可编程逻辑设计环境,具有开放性、与结构无关、多平台完全集成化丰富的设计库、模块化工具、支持多种硬件描述语言及有多种高级编程语言接口等特点。QuartusII是Altera公司推出的CPLD/FPGA开发工具,QuartusII提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片平面布局连线编辑;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTapII逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。2)QuartusII软件设计流程(1)打开QuartusII软件。(2)选择路径。注意:工作目录名不能有中文。(3)添加设计文件。(4)选择FPGA器件。Family选择Cyclone,240,8。(5)建立原理图或用VHDL语言描述设计电路。(6)对原理图或用VHDL语言进行编译,无误后进行添加信号。(7)对上述电路进行仿真。(8)进行管脚分配。(9)全局编译。(10)采用JTAG或AS模式进行下载测试。图1QuartusII软件运行界面2、设计主要任务及要求:a)波形选择:通过对拨码开关状态的设置选择不同的输出波形。b)波形发生:通过软件实现各类波形的产生(数字量)。c)波形清零:通过拨码开关状态的改变,输出直流波。d)波形的观测:实现波形的数/模转换,便于直接在示波器上观察输出波形。3、设计方案、原理、过程、调试(1)总体方案本论文设计的函数信号发生器主要由波形选择部分,波形发生部分和输出部分组成,其硬件结构图如图1所。其中波形选择部分是数据选择器电路;波形发生部分包括递增斜波产生电路,递减斜波产生电路,三角波产生电路,斜梯波产生电路,正弦波产生电路和方波产生电路;输出部分是数/模转换电路。其中数/模转换模块是通过硬件实现的,其它都是依靠软件实现的。根据实验箱的硬件资源,本次设计选用ALTERA公司MAX7000S系列的EPM7128SLC84-15作为主控芯片。它是一种基于乘积项结构的复杂可编程逻辑器件,它的基本逻辑单元是由一些与、或阵列加上触发器构成,其中与或阵列完成组合逻辑功能,触发器完成时序逻辑。它的逻辑控制灵活,可反复编程,有利于系统的扩展和修改,而且其集成度高,保密性好。在实际应用中,它体积小、功耗低、价格便宜,维护和升级都十分方便,具有较好的应用前景。图2硬件结构图数模转换器原理D/A转换器输入的是数字量,经转换后输出的是模拟量。有关D/A转换器的技术性能很多,例如分辨率、建立时间、接口形式、偏移量误差以及线形度等等。分辨率是D/A转换器对输入量变化敏感程度的描述,与输入数字量的位数有关。数字量位数越多,分辨率也就越高。建立时间是描述D/A转换速度快慢的一个参数,指从输入数字量变化到输出并达到终值误差正负(1/2)LSB(最低有效位)时所需时间。通常以建立时间来表示转换速度。D/A转换器与微机借口方便与否,主要决定于转换器本身是否带数据锁存器。总的来说有两类D/A转换器,一类是不带锁存器的,另一类是带锁存器的。带锁存器的D/A转换器,可以把它看作一个输出口,因此可直接在数据总线上,而不是另加锁存器。偏移量误差是指输入数据量为0的时候,输出模拟量对0的偏移量。这种误差可以通过DAC的外接VREF和电位计加以调整。线形度是指DAC的实际转换特性曲线和理想直线之间的最大偏差。D/A转换器有2大类:一类是在电子线路中使用,不能使能控制端口,只有数字量输入和模拟量输出;另一类带有使能控制端口,可以与微机直接连接。此实验中采用后者的LM358,以实现数字信号到模拟信号的转换。LM358转换模块8位D/A,I/O口定义如下:D0~D7:数据总线,输入口;/CE:转换允许,低电平有效;/CS:片选,低电平有效;有两种输出方式。第一种,将短路子接在左侧的两个铜柱上,D/A转换输出到D/AOUT区域的第六个孔输出;第二种,将短路子接在右侧的两个铜柱上,D/A转换输出接到LM358的同相输入端。LM358单电源二运放。与AD558配合,将AD558的输出接到LM358的同相输入端,作为他的同相输入信号;在LM358的右上脚,有TESTIN模块,他的信号可作为LM358的反相输入端。(2)单元电路的设计递增锯齿波信号产生模块a)代码:LIBRARYIEEE;--锯齿波递增USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYjuchibo_addISPORT(clk,reset:instd_logic;q:outstd_logic_vector(7downto0));END;ARCHITECTUREbehaveOFjuchibo_addISBEGINPROCESS(clk,reset)VARIABLEtmp:std_logic_vector(7downto0);BEGINIFreset='0'THENtmp:=00000000;ELSIFclk'eventandclk='1'THENIFtmp=11111111THENtmp:=00000000;ELSEtmp:=tmp+1;ENDIF;ENDIF;q=tmp;ENDPROCESS;END;b)递增锯齿波仿真波形:图3递增锯齿波仿真波形c)递增锯齿波信号产生模块元件图:图4递增锯齿波元件图递减锯齿波信号产生模块a)代码:LIBRARYIEEE;--锯齿波递减USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYjuchibo_jieISPORT(clk,reset:instd_logic;q:outstd_logic_vector(7downto0));END;ARCHITECTUREbehaveOFjuchibo_jieISBEGINPROCESS(clk,reset)VARIABLEtmp:std_logic_vector(7downto0);BEGINIFreset='0'THENtmp:=11111111;ELSIFclk'eventandclk='1'THENIFtmp=00000000THENtmp:=11111111;ELSEtmp:=tmp-1;ENDIF;ENDIF;q=tmp;ENDPROCESS;END;b)递减锯齿波仿真波形:图5递减锯齿波原件图c)递减锯齿波信号产生模块元件图:图6递减锯齿波元件图三角波信号产生模块a)代码:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitysanjiaoboisport(reset:instd_logic;clk:instd_logic;q:outstd_logic_vector(7downto0));end;architecturebehaveofsanjiaoboisbeginprocess(clk,reset)variabletmp:std_logic_vector(7downto0);variablea:std_logic;beginifreset='0'thenq=00000000;elsifclk'eventandclk='1'thenifa='0'theniftmp=11111110thentmp:=11111111;a:='1';elsetmp:=tmp+1;endif;elseiftmp=00000001thentmp:=00000000;a:='0';elsetmp:=tmp-1;endif;endif;endif;q=tmp;endprocess;end;b)三角波仿真波形:图7三角波仿真波形c)三角波信号产生模块元件图:图8三角波元件图阶梯波信号产生模块a)代码:libraryieee;--阶梯波useieee.std_logic_1164.all;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYjietiboISPORT(clk,reset:instd_logic;q:outstd_logic_vector(7downto0));END;ARCHITECTUREbehaveOFjietiboISBEGINPROCESS(clk,reset)VARIABLEtmp:std_logic_vector(7downto0);BEGINIFreset='0'THENtmp:=00000000;ELSIFclk'eventandclk='1'THENIFtmp=11111111THENtmp:=00000000;ELSEtmp:=tmp+16;ENDIF;ENDIF;q=tmp;ENDPROCESS;END;b)阶梯波仿真波形:图9阶梯波仿真波形c)阶梯波信号产生模块元件图:图10阶梯波元件图方波信号产生模块a)代码:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityfangboisport(clk,reset:instd_logic;q:outstd_logic_vector(7downto0));end;architecturebehaveoffangboissignala:std_logic;beginprocess(clk,reset)variabletmp:std_logic_vector(7downto0);beginifreset='0'thena='0';elsifclk'eventandclk='1'theniftmp=11111111thentmp:=00000000;elsetmp:=tmp+1;endif;iftmp=10000000
本文标题:EDA实验-函数信号发生器
链接地址:https://www.777doc.com/doc-6282362 .html