课程设计(论文)基于FPGA智能函数发生器设计.doc

上传人:仙人指路1688 文档编号:3993451 上传时间:2023-03-30 格式:DOC 页数:24 大小:433.50KB
返回 下载 相关 举报
课程设计(论文)基于FPGA智能函数发生器设计.doc_第1页
第1页 / 共24页
课程设计(论文)基于FPGA智能函数发生器设计.doc_第2页
第2页 / 共24页
课程设计(论文)基于FPGA智能函数发生器设计.doc_第3页
第3页 / 共24页
课程设计(论文)基于FPGA智能函数发生器设计.doc_第4页
第4页 / 共24页
课程设计(论文)基于FPGA智能函数发生器设计.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《课程设计(论文)基于FPGA智能函数发生器设计.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于FPGA智能函数发生器设计.doc(24页珍藏版)》请在三一办公上搜索。

1、 课程设计题 目 基于FPGA智能函数发生器设计 学生姓名 学号 0813014043 所在院(系) 物电学院 专业班级 电子082 指导教师 完成地点 501实验室 2011 年 12 月 27 日基于FPGA智能函数发生器的设计(陕西理工学院 电信工程系(电子信息工程专业,082班)指导教师:摘要 FPGA实现智能函数发生器设计介绍了一种基于FPGA的智能函数发生器的设计.采用EDA技术对此设计进行功能仿真和时序仿真,在EDA系统开发平台上实现程序下载,同时在示波器上观察波形输出.关键词函数发生器 FPGA EDADesign of intelligent function signal

2、generator based on FPGA(Shaanxi University of Technology Department of Communication Engineering Electronic information engineering major Class082)Guide teacher: Han TuanjunAbstract FPGA intelligent function generator design introduced one kind based on the FPGA intelligent function generator design

3、. Using EDA technology to design the function simulation and timing simulation, in the development of EDA system platform to achieve program download, while in the oscilloscope to observe the waveform output.Key word Function generator FPGA EDA 目录1.智能函数器发生原理和系统实现21.1智能函数发生器的性能指标21.2仿真软件介绍及操作步骤31.21Q

4、uartus II软件简介31.22Quartus II软件设计流程42.智能函数器设计52.1设计的基本原理和思路52.2总体方案设计53.单元模块的设计73.1递增斜波信号产生模块:73.2递减斜波信号产生模块83.3三角波信号产生模块103.4阶梯波信号产生模块113.5方波信号产生模块133.6正弦波信号产生模块143.7波形输出选择器模块163.8函数发生器的顶层设计184.设计总结215.致谢226.参考文献231.智能函数器发生原理和系统实现1.1智能函数发生器的性能指标综合市场 上的函数 发生器的指 标和自身 的硬件情 况以及考 虑到其应 用的不同的 场合, 该智能 函数发 生

5、器的 设计要 求如下 :该 函 数 发 生 器 采 用 直 接 数 字 频 率 合 成 (DDS-Digital Direct Frequ encySynthesis) 技术实现,可以产生 范围为 1 180 kHz 的三角波、正弦 波、 方波递增斜波 ,递减 斜波。该函数发生 器可以 实现波 形的幅 度可调 以及可 以叠加 直流。此函数发生 器在共 分为四 个档,分别为 1Hz100Hz、100Hz1kHz、1KHz10KHz、10KHz80KHz,在这 四个档 位内的 最小可 调节频 率分别 为 1Hz、10 Hz、100Hz、1 KHz。该函数发生 器有四 个按键,五个数码管,一个调节幅

6、度的旋钮,一个调剂叠加直 流分量 的旋钮 以及一 个波形 输出端 口,其 四个按 键的具 体功能 如下:按键 1:任何状态下按下此键都输出频率为 1Hz 的方 波按键 2:波形选择键:通过 此按键 可选择 波形。每按一次键,波形就改变一次, 波形在 方波、 正弦波 、三角 波,递 增斜波 ,递减 斜波五 种波形 间切换 。按键 3:频率档位选择键:通过按键选择频率档位。每按 一次键,选择一个频率 档位,共分为四个档,分别为 1Hz100Hz,100Hz1KHz,1KHz 10KHz,10KHz80KHz。按键 4:频率步进选择键:通过按键选择频率的步进值。每按一次键,步进值则 根据此 时所处

7、的频率 的档位 的不同 而改变 :当频 率处于 1Hz100Hz 时 ,步进值 为 1 Hz,当频率为 100Hz1KHz 时,其步进值为 10Hz,当频率处于 1KHz10KHz 时,其步进值为 100Hz,当频率为 10KHz80KHz,其 步进值 为 1KHz。此函数发生 器具有 五个数 码管, 用一个 数码管 的 1 5 来区 分当前 的波形 种类, 1 代表方波, 2,代表三角波,3 代表正弦波,4 代表 递增斜 波, 5 代表递减斜波 。一个 用于显 示档位 ,1 代表 1Hz1 00Hz 的档位,2 代表 1 00Hz1 KHz 档位, 3 代表 1KHz10 KHz 档位,4

8、代表 1 0KHz80KHz 档位。还有三位用于显示当 前波形 的频率1.2仿真软件介绍及操作步骤1.21Quartus II软件简介1)Quartus II软件介绍Quartus II 是Alera公司推出的一款功能强大,兼容性最好的EDA工具软件。该软件界面友好、使用便捷、功能强大,是一个完全集成化的可编程逻辑设计环境,具有开放性、与结构无关、多平台完全集成化丰富的设计库、模块化工具、支持多种硬件描述语言及有多种高级编程语言接口等特点。Quartus II是Altera公司推出的CPLD/FPGA开发工具,Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全

9、部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片平面布局连线编辑;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。1.22Quar

10、tus II软件设计流程(1) 打开Quartus II软件。(2) 选择路径。注意:工作目录名不能有中文。(3) 添加设计文件。(4) 选择FPGA器件。Family选择Cyclone,240,8。(5) 建立原理图或用VHDL语言描述设计电路。(6) 对原理图或用VHDL语言进行编译,无误后进行添加信号。(7) 对上述电路进行仿真。(8) 进行管脚分配。(9) 全局编译。(10) 采用JTAG或AS模式进行下载测试。2.智能函数器设计2.1设计的基本原理和思路本设计采用 直接频 率合成 的方式 设计函 数信号 发生单 元。直接频率合成的基本原理是:首先设定一个 (或多个)基准频率,将这 个

11、(或多个)基 准频率变换成另一 个 ( 或 多 个 ) 合 乎 质 量 要 求 的 所 需 频 率 。 直 接 频 率 合 成 技 术 (Direct Digital Frequ ency Synthsis)就是把要输出的波形,预先归一化处理后,采样足够的点数,存储 于波形 存储器 中,在需要输出时,将波形从存储器中读出,经过 数/模转换,再通过后续模拟电路 处理输出。DDS 信 号产生单元主要有由 相位累加器、只读存储 器、数模转换器组成。存储器中存储的是波形一个周期内不同相位对于函数波形 幅值的 编码,通过时钟触发相位累加器累加,相位累加器的输出作为地址取出存储器存储的值, 该值进入 D/

12、A 转换为 相应的模拟信号,通 过一个周期内相位的 累加我 们就可 以得到 一个周 期的信 号输出 ,该信号通过后续模拟电路处理就可以 得到我 们想要 的函数 波形。2.2总体方案设计本论文设计的函数信号发生器主要由波形选择部分,波形发生部分和输出部分组成,其硬件结构图如图2.2所。其中波形选择部分是数据选择器电路;波形发生部分包括递增斜波产生电路,递减斜波产生电路,三角波产生电路,斜梯波产生电路,正弦波产生电路和方波产生电路;输出部分是数/模转换电路。其中数/模转换模块是通过硬件实现的,其它都是依靠软件实现的。根据实验箱的硬件资源,本次设计选用ALTERA公司MAX7000S系列的EPM71

13、28SLC8415作为主控芯片。它是一种基于乘积项结构的复杂可编程逻辑器件,它的基本逻辑单元是由一些与、或阵列加上触发器构成,其中与或阵列完成组合逻辑功能,触发器完成时序逻辑。它的逻辑控制灵活,可反复编程,有利于系统的扩展和修改,而且其集成度高,保密性好。在实际应用中,它体积小、功耗低、价格便宜,维护和升级都十分方便,具有较好的应用前景。图2.2硬件结构图数模转换器原理D/A转换器输入的是数字量,经转换后输出的是模拟量。有关D/A转换器的技术性能很多,例如分辨率、建立时间、接口形式、偏移量误差以及线形度等等。分辨率是D/A转换器对输入量变化敏感程度的描述,与输入数字量的位数有关。数字量位数越多

14、,分辨率也就越高。建立时间是描述D/A转换速度快慢的一个参数,指从输入数字量变化到输出并达到终值误差正负(1/2)LSB(最低有效位)时所需时间。通常以建立时间来表示转换速度。D/A转换器与微机借口方便与否,主要决定于转换器本身是否带数据锁存器。总的来说有两类D/A转换器,一类是不带锁存器的,另一类是带锁存器的。带锁存器的D/A转换器,可以把它看作一个输出口,因此可直接在数据总线上,而不是另加锁存器。偏移量误差是指输入数据量为0的时候,输出模拟量对0的偏移量。这种误差可以通过DAC的外接VREF和电位计加以调整。线形度是指DAC的实际转换特性曲线和理想直线之间的最大偏差。D/A转换器有2大类:

15、一类是在电子线路中使用,不能使能控制端口,只有数字量输入和模拟量输出;另一类带有使能控制端口,可以与微机直接连接。此实验中采用后者的LM358,以实现数字信号到模拟信号的转换。LM358转换模块8位D/A,I/O口定义如下:D0D7:数据总线,输入口;/CE:转换允许,低电平有效;/CS:片选,低电平有效;有两种输出方式。第一种,将短路子接在左侧的两个铜柱上,D/A转换输出到D/A OUT区域的第六个孔输出;第二种,将短路子接在右侧的两个铜柱上,D/A转换输出接到LM358的同相输入端。LM358单电源二运放。与AD558配合,将AD558的输出接到LM358的同相输入端,作为他的同相输入信号

16、;在LM358的右上脚,有TEST IN模块,他的信号可作为LM358的反相输入端。3.单元模块的设计3.1递增斜波信号产生模块: 递增斜波产生原理:当复位信号为1时,每当检测到时钟上升沿时,计数器值加1,当增加到最大后清零。计数值增加呈现线性关系,因此输出的波形是递增的斜波。(a)程序LIBRARY IEEE;-锯齿波递增USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY juchibo_ad ISPORT (clk,reset:in std_logic; q:out std_logic_vector(7 do

17、wnto 0);END;ARCHITECTURE behave OF juchibo_ad ISBEGIN PROCESS(clk,reset) VARIABLE tmp: std_logic_vector(7 downto 0);BEGIN IF reset=0 THEN tmp:=00000000;ELSIF clk event and clk=1 THENIF tmp=11111111 THEN tmp:=00000000;ELSE tmp:=tmp+1;END IF;END IF;q=tmp;END PROCESS;END(b)递增斜波仿真波形:图3.11递增锯齿波仿真波形(c)递增斜

18、波信号产生模块元件图:图3.12递增斜波元件图3.2递减斜波信号产生模块递减斜波产生原理:当复位信号为1时,每当检测到时钟上升沿时,计数器值减1,当增加到0后赋值到最大。计数值减少呈现线性关系,因此输出的波形是递减的斜波。(a)程序LIBRARY IEEE;-锯齿波递减USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY juchibo_ji ISPORT ( clk,reset:in std_logic; q:out std_logic_vector(7 downto 0);END;ARCHITECTURE be

19、have OF juchibo_ji ISBEGIN PROCESS(clk,reset) VARIABLE tmp: std_logic_vector(7 downto 0);BEGIN IF reset=0 THEN tmp:=11111111;ELSIF clkevent and clk=1 THENIF tmp=00000000 THEN tmp:=11111111;ELSE tmp:=tmp-1;END IF;END IF;q=tmp;END PROCESS;END;(b)递减斜波仿真波形:图3.21递减锯齿波原件图(c)递减斜波信号产生模块元件图:图3.22递减斜波元件图3.3三角

20、波信号产生模块三角波产生原理:三角波是对称的,每边呈线性变化,所以可以根据数据做简单运算,就可以得到三角波。(a)程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sanjiaobo isport(reset:in std_logic; clk:in std_logic; q:out std_logic_vector(7 downto 0);end;architecture behave of sanjiaobo isbeginprocess(clk,reset)variable

21、tmp:std_logic_vector(7 downto 0);variable a:std_logic;begin if reset=0 then q=00000000; elsif clkevent and clk=1 then if a=0 then if tmp=11111110 then tmp:=11111111; a:=1; else tmp:=tmp+1; end if; else if tmp=00000001 then tmp:=00000000; a:=0; else tmp:=tmp-1; end if; end if;end if;q=tmp;end process

22、;end;(b)三角波仿真波形:图3.31三角波仿真波形(c)三角波信号产生模块元件图:图3.32三角波元件图3.4阶梯波信号产生模块阶梯波产生原理:数据的递增是以一定的阶梯常数往上增加,所以输出的波形是呈现阶梯状的,而不是,完全呈现是直线增长。(a) 程序library ieee;-阶梯波use ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jietibo ISPORT (clk,reset:in std_logic;q:out std_logic_vector(7 downto 0);END;ARCHITECT

23、URE behave OF jietibo ISBEGINPROCESS(clk,reset) VARIABLE tmp: std_logic_vector(7 downto 0);BEGIN IF reset=0 THENtmp:=00000000; ELSIF clk event and clk=1 THEN IF tmp=11111111 THEN tmp:=00000000; ELSE tmp:=tmp+16; END IF; END IF;q=tmp;END PROCESS;END;(b)阶梯波仿真波形:图3.41阶梯波仿真波形(c)阶梯波信号产生模块元件图:图3.42阶梯波元件图3

24、.5方波信号产生模块方波产生原理:其内部计数到达64时,根据输出标志a的数值输出对应的数值,当a=0是输出0,也就是方波周期中的低电平,当a=1,输出255,也就是方波周期中的高电平。连续的输出便成了观测的方波波形。(a)程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fangbo is port(clk,reset:in std_logic; q:out std_logic_vector(7 downto 0);end;architecture behave of fangbo

25、 issignal a:std_logic;begin process(clk,reset) variable tmp:std_logic_vector(7 downto 0); begin if reset=0 then a=0; elsif clkevent and clk=1 then if tmp=11111111 then tmp:=00000000; else tmp:=tmp+1; end if; if tmp=10000000 then a=1;elsea=0;end if;end if; end process; process(clk,a) -信号输出 begin if c

26、lkevent and clk=1 then if a=1 then q=11111111; else q=00000000; end if; end if; end process; end;(b)方波仿真波形:图3.51方波仿真波形(c)方波信号产生模块元件图:图3.52方波元件图3.6正弦波信号产生模块 正弦波产生原理:通过循环不断地从波形数据ROM文件中依次读取正弦波一个周期在时域上64个采样点的波形数据送入波形DAC,从而产生正弦波。其频率取决于读取数据的速度。(a) 程序library ieee; -正弦波use ieee.std_logic_1164.all;use ieee.s

27、td_logic_unsigned.all;entity Zhengxianbo is port(clk,reset:in std_logic; d:out integer range 0 to 255);end;architecture behave of Zhengxianbo is begin process(clk,reset) variable tmp:integer range 0 to 63; begin if reset=0 then dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddnull; e

28、nd case; end if; end process; end;(b)正弦波仿真波形:图3.61正弦波仿真波形(c)正弦波信号产生模块元件图: 图3.62正弦波元件图3.7波形输出选择器模块选择器产生原理:选择器是一个6选1的数据选择器,其中sel为波形数据选择端口,d0d6为8位二进制输入端口,q为8位二进制输出端口。该模块可以根据外部开关的状态选择相应的输出波形。(a) 程序LIBRARY IEEE;-选择器USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY Xuanzeqi ISPORT ( sel:

29、in std_logic_vector(2 downto 0);d1,d2,d3,d4,d5,d6:in std_logic_vector(7 downto 0);q:out std_logic_vector(7 downto 0);END;ARCHITECTURE behave OF Xuanzeqi isBEGINPROCESS(sel)BEGINCASE sel ISWHEN 001=qqqqqqnull;END CASE;END PROCESS;END;(b)选择器仿真波形:图3.71选择器波形图(c)选择器信号产生模块元件图:图3.72选择器元件图3.8函数发生器的顶层设计(a)将上

30、述模块生成符号,供顶层电路调用。这些模块分别是:递增锯齿波产生模块,递减锯齿波产生模块,三角波产生模块,阶梯波产生模块,方波产生模块,正弦波信号产生模块,选择器。顶层电路的连接如图所示:图3.81顶层电路图(b)波形选择电路与输出波形对应表:S2.0 对应的波形 001递增斜波 010递减斜波 011三角波 100阶梯波 101方波 110正弦波 其他 OTHERS无波形产生图3.82电路波形对应图 (c)管脚分配:图3.83电路管脚分配图4设计总结经过本周关于基于FPGA的智能函数器发生器的的课程设计,我VHDL的应用有了更深的了解。当然在课程设计的过程中,不可避免的碰到了许多问题。对于代码

31、的前后顺序及调用掌握得还不够好;对于一些相关的应用软件没能熟练掌握。通过这几天的思考,以及参考网上的程序和听取同学的讲解,最终还是把问题解决了。通过本次课程设计,又使我学到了许多书本上无法学到的知识,也使也深该体会到VHDL技术应用领域的广泛,不仅使我对学过的VHDL知识有了很多的巩固,同时也对VHDL这一门课程产生了更大的兴趣。要做好一个课程设计,就必须做到:在设计程序之前,对所用VHDL有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序

32、的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常,我们应该将每次遇到的问题记录下来,并分析清楚,将之一一解决5致谢本课题在选题及研究过程中得到韩团军老师的悉心指导。韩老师多次询问研究进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。韩老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仪授我以文,而且教我做人,虽历时三载,却给以终生受益无穷之道。对韩老师的感激之情是无法用言语表达的。 通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在传感器的基本原理、传感器的实际

33、应用,以及在常用传感器设计思路技巧的掌握方面都能向前迈了一人步,为日后成为合格的应用型人才打下良好的基础。我在刘老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,并对当前电了领域的研究状况和发展方向有了一定的了解,这对我今后进一步学习传感器方面的知识有极人的帮助。在此,我衷心感谢韩团军老师的指导和支持。在未来的工作和学习中,我将以更好的成绩来回报老师。 在此,我还要感谢在一起愉快的度过人学生生活的全体老师和同学门,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。 在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬

34、的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们!6参考文献1 宋文续,扬帆.传感器与检测技术.北京:高等教育出版社,2005.42 常健生.检测与转换技术.北京:机械工业出版社,2004.63 凌志浩.智能仪表原理与设计技术.上海:华东理工大学出版社,2003.84 于永权.89系列(MCS-51兼容)Flash单片机原理及应用.北京:电子工业出版社,19975 李朝清.单片机原理及接口技术.北京:北京航空航天大学出版社,1996.86 丁元杰.单片微机原理及应用.北京:机械工业出版社,1999.87 周航慈.单片机应用程序设计技术.北京:北京航空航天大学出版社,2002.118 孙涵芳.单片机原理及应用(修订版).北京:北京航空航天大学出版社,1996年9 何立民. 单片机应用技术选编(1)-(8).北京:北京航空航天大学出版社,200210 于海生.微型计算机控制技术.北京:清华大学出版社,1999年11 阎石.数字电子技术基础.第四版.北京:高等教育出版社,1997.1212 中国集成电路大全编写委员会 TTL/CMOS分册 国防工业出版社 198513 中国集成电路大全编写委员会 916分册 国防工业出版社 1986

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号