《周期可调的-多波形发生器-课程设计(共24页).docx》由会员分享,可在线阅读,更多相关《周期可调的-多波形发生器-课程设计(共24页).docx(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上成 绩 评 定 表学生姓名唐晶晶班级学号专 业电子信息工程课程设计题目周期可调的多波形发生器评语组长签字:成绩日期 2015年3 月 10 日 课程设计任务书学 院信息科学与工程学院专 业电子信息工程学生姓名唐晶晶班级学号课程设计题目 周期可调的多波形发生器一、内容及要求: 能正确划分设计层次;收集资料;独立思考,刻苦专研,严禁抄袭;按时完成设计任务,认 真、正确地书写课程设计报告。 二、功能要求:能产生正弦波、方波、三角波和有用户编辑的特定形状波形。三、进度安排:课程设计时间为10天(2周)1、调研、查资料1天。2、总体方案设计2天。3、代码设计与调试5天。4、撰写
2、报告1天。5、验收1天。指导教师: 2015年3月 2日专业负责人:2015年3 月 2日学院教学副院长:2015年3 月2 日目 录1 概述.1 1.1 设计背景和意义.1 1.2 设计任务.2 1.3 设计要求.22 原理设计及层次划分.42.1 工作原理.42.2 层次划分.43 软件设计.63.1 初值模块代码设计.63.2 分频模块代码设计.63.3 方波模块代码设计.7 3.4 三角波模块代码设计.83.5 正弦波模块代码设计.93.6 特殊波形模块代码设计.103.7 顶层模块设计原理图.114 仿真及测试.124.1初值模块仿真.124.2 分频模块仿真.124.3 方波模块仿
3、真.124.4 三角波模块仿真.134.5 正弦波模块仿真.134.6 特殊波形模块仿真.135 总结.146 参考文献.151 概述EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术是
4、在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。 利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。 现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。 1.1 设计背景和意义 EDA技术在进入21世纪后,得到了更大的发展应用,突出表现在以下几个方面:1. 在FPGA
5、上实现DSP应用成为可能,用纯数字逻辑进行DSP模块的设计,使得高速DSP实现成为现实,并有力地推动了软件无线电技术的实用化和发展。基于FPGA的DSP技术,为高速数字信号处理算法提供了实现途径。2. 嵌入式处理器软核的成熟,使得SOPC(System On a Programmable Chip)步入大规模应用阶段,在一片FPGA中实现一个完备的数字处理系统成为可能。3. 使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能。4. 在仿真和设计两方面支持标准硬件描述语言且功能强大的EDA软件不断推出。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过 程中
6、,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。 设计意义: 1. 周期可调的多波形发生器在1975年的开发成功为信号发生器产品增加了一个新品种。在周期可调的多波形发生器作为测量用信号激励源进入市场之前,为了产生非正弦波信号,已使用函数发生器提供三角波、斜波、方波和余弦波等几种特殊波形。声音和振动分析需要复杂调制的信号源,以便仿真真实的信号,只有借助周期可调的多波形发生器,例如医疗仪器测试往往需要心电波形。周期可调的多波形发生器的应用非常广泛,在原理上可仿真任意波形,特别有用的是仿真单次偶发的信号,例如地震波形、汽车碰撞波形等。周期可调的多波形发生器是在电路设计与调试中应用很
7、多的一种信号发生装置和信号源。对于模拟现场信号和各种信号合成能产生各种各样的波形。 2. 周期可调的多波形发生器是信号源的一种,它具有信号源所有的特点和要领。我们传统都认为信号源主要给被测电路提供所需要的已知信号(各种波形),然后用其它仪表测量感兴趣的参数。可见信号源在电子实验和测试处理中,并不测量任何参数,而是根据使用者的要求,仿真各种测试信号,提供给被测电路$以达到测试的需要。周期可调的多波形发生器是一种特殊的信号源,具有综合其它信号源波形生成能力,因而适合各种仿真实验的需要。 1.2 设计任务 熟悉Quartus的VHDL文本设计流程的全过程,学会用可编程逻辑器件设计制作一个波形发生器,
8、能产生正弦波、方波、三角波和有用户编辑的特定形状波形。 1.3 设计要求 信号发生器的控制模块可以用数据选择器实现,三种信号的信号选择可以用3选1数选择器实现。能产生正弦波、方波、三角波和有用户编辑的特定形状波形。 电路要求: (1)具有产生正弦波、方波、三角波3种周期性波形的功能。 (2)用开关输入编辑生成上述3中波形的线性组合波形。 (3)输出波形的频率可调。 设计过程:(1)提出设计说明书,即用自然语言表达系统项目的功能特点和技术参数等。(2)建立VHDL行为模型,这一步是将设计说明书转化为VHDL行为模型。(3)VHDL行为仿真。这一阶段可以利用VHDL仿真器(如ModelSim)对顶
9、层系统的行为模 型进行仿真测试,检查模拟结果,继而进行修改和完善。(4)VHDL-RTL级建模。如上所述,VHDL只有部分语句集合可用于硬件功能行为的建模,因 此在这一阶段,必须将VHDL的行为模型表达为VHDL行为代码(或称VHDL-RTL级模型)。(5)前端功能仿真。(6)逻辑综合。(7)测试向量生成。这一阶段主要是针对ASIC设计的。FPGA设计的时序测试文件主要产生于适配器。对ASIC的测试向量文件是综合器结合含有版图硬件特性的工艺库后产生的,用于对ASIC的功能测试。(8)功能仿真。利用获得的测试向量对ASIC的设计系统和子系统的功能进行仿真。(9)结构综合。主要将综合产生的表达逻辑
10、连接关系的网表文件,结合具体的目标硬件环 境进行标准单元调用、布局、布线和满足约束条件的结构优化配置,即结构综合。(10) 门级时序仿真。在这一级中将使用门级仿真器或仍然使用VHDL仿真器(因为结构综 合后能同步生成VHDL格式的时序仿真文件)进行门级时序仿真,在计算机上了解更接 近硬件目标器件工作的功能时序。(11) 硬件测试。这是对最后完成的硬件系统(如ASIC或FPGA)进行检查和测试。 2 原理设计及层次划分2.1 工作原理(1) 产生正弦波,是通过预先计算出正弦波表,然后查表输出实现的(此处一个周 期正弦波取64点)。 (2) 产生方波,是通过交替送出全0和全1,给以适当的延时实现的
11、。 (3) 产生三角波,是通过由全0不断加同一个数,到全1之后再不断减同一个数来实 现的。原理框图:图2.1 周期可调的原理框图2.2 层次划分模块初值通过a的值提供初值,将产生的结果给下一个模块分频时使用图2.2 模块初值的原理图 模块分频由时钟clk和上一个模块得到的值来控制,为给后边模块改变频率,以致改变周期提供方便。图2.3 模块分频的原理图模块正弦波,三角波和方波的周期均由上一模块分频所决定,最后产生相应的波形。 图2.4模块正弦波的原理图 图2.5模块三角波的原理图 图2.6模块方波的原理图模块特殊波形是通过改变控制输入数据,改变三个波形的输出,在不同的输入条件下满足用户的需求。图
12、2.7 模块特殊波形的原理图 3 软件设计 3.1 初值模块代码设计模块初值的功能是提供初值,供下一个模块分频时用,通过不同的初值,是由输入a决定的。library ieee;use ieee.std_logic_1164.all;entity chuzhi isport(a:in std_logic_vector(3 downto 0); q:out integer range 0 to 312);end chuzhi;architecture chu_arc of chuzhi isbeginprocess(a)begincase a iswhen 0001 =qqqqqqqqqqnull
13、;end case;end process;end chu_arc;3.2 分频模块代码设计模块分频的功能是将前一模块初值送来的初值对时钟进行分频,得到不同的工作频率,从而调节波形频率。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fana isport(a:in integer range 0 to 312; clk:in std_logic; q:out std_logic);end fana ;architecture fan_arc of fana isbeginproce
14、ss(clk)variable b,d:std_logic;variable c:integer range 0 to 312;beginif clkevent and clk=1thenif b=0thenc:=a-1;b:=1;elseif c=1 thenb:=0; 图3.2分频的原理图d:=not d;elsec:=c-1;end if;end if;end if;q=d;end process;end fan_arc; 3.3 方波模块代码设计模块方波的功能是产生方波。library ieee;use ieee.std_logic_1164.all;entity square isp
15、ort(clk,clr:in std_logic; q:out integer range 0 to 255);end square;architecture sq_arc of square issignal a:bit;beginprocess(clk,clr)variable cnt:integer;beginif clr=0then 图3.3方波的原理图a=0;elsif clkevent and clk=1thenif cnt31 thencnt:=cnt+1;elsecnt:=0;a=not a;end if;end if;end process;process(clk,a)beg
16、inif clkevent and clk=1thenif a=1thenq=255;elseq=0;end if;end if;end process;end sq_arc; 3.4 三角波模块代码设计模块三角波的功能是产生三角波。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity delta isport(clk,reset:in std_logic; q:out std_logic_vector(7 downto 0);end delta;architecture delta_ar
17、c of delta isbeginprocess(clk,reset)variable tmp:std_logic_vector(7 downto 0);variable a:std_logic;beginif reset=0thentmp:=;elsif clkevent and clk=1then 图3.4 三角波的原理图if a=0then if tmp=thentmp:=;a:=1;elsetmp:=tmp+8;end if;elseif tmp=thentmp:=;a:=0;elsetmp:=tmp-8;end if;end if;end if;q=tmp;end process;
18、end delta_arc; 3.5 正弦波模块代码设计模块正弦波功能是产生正弦波library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sin isport(clk,clr:in std_logic; d:out integer range 0 to 255);end sin;architecture sin_arc of =sin isbeginprocess(clk,clr)variable tmp:integer range 0 to 63;begin if clr=0thenddd
19、ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddnull;end case;end if;end process;end sin_arc; 3.6 特殊波形模块代码设计模块特殊波形的功能是根据外部的开工控制,输出三种波形。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity chpro31 isport(dlt,sqr,sin:in std_logic; dlta,sqra,sin,a:in std_logic_v
20、ector(7 downto 0); q:out std_logic_vector(7 downto 0);end chpro31;architecture ch_arc of chpro31 isbeginprocess(dlt,dlta,sqr,sqra,sin,sin a)variable tmp:std_logic_vector(2 downto 0);variable a,b:std_logic_vector(9 downto 0);variable c,d,e:std_logic_vector(9 downto 0);begintmp:=dlt&sqr&sin;case tmp i
21、swhen 100=qqqa:=00&dlta+sqra;qa:=00&dlta+sin a; qa:=00&sqra+sin a;qa:=00&dlta+sqra;b:=a+sin a;c:=00&b(9 downto 2);d:=0000&a(9 downto 4);e:=&a(9 downto 6);a:=c+d;b:=a+e;qnull;end case;end process;end ch_arc; 3.7 顶层模块设计图 3.7 顶层模块设计原理图4 仿真及测试4.1 初值模块仿真图4.1 初值模块功能仿真模块初值的功能是提供初值,供下一个模块分频时用。 4.2 分频模块仿真图4.
22、2 分频模块功能仿真模块分频的功能是将前一模块初值送来的初值对时钟进行分频,得到不同的工作频率,从而调节波形频率。初值越大,输出Q的变化率越小。 4.3 方波模块仿真图4.3 方波模块功能仿真模块方波的功能是通过清零和时钟在分频的共同作用下产生0与1交替的数字,最后形成方波。 4.4 三角波模块仿真图4.4 三角波模块功能仿真模块三角波的功能是产生三角波,通过改变频率改变三角波的周期。 4.5 正弦波模块仿真图4.5 正弦波 模块功能仿真模块正弦波的功能在不同的频率设置下产生周期不同的正弦波。 4.6 特殊波形模块仿真图4.6 特殊波形模块功能仿真模块特殊波形的功能是根据在外部开工控制的条件下
23、,输出三种波形。或者根据用户需要,在不同的频率设定下,输出各种波形的叠加,得到用户需要的波形。 5 总结利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。 VHDL语言编程有其特定的语法规则,学习他要从最基本的体系架构开始,倘若一开始就从顶层入手,就后造成很多基本原理、基本概念上的偏差,甚至会拖延学习设计的时间,虽然课程设计完成了,但我意识到,只有努力的掌握更多的VHDL语言的用法才会对我们有所帮助,要想有更大的发展,更深入的研究,我们必须多多练习和实践。6 参考文献1. 王英军,黄小辉数字电视新形势下的综合业务管理J有线电视技术,2004(6): 78802. 吴小强 数字电视用户管理系统J有线电视技术,2004(4):83863. ErichGamma,RichafdHelm,RalphJohnson,etal设计模式M 李英军,译北京: 机械工业出版社,2003:1992104. 宋万杰,罗丰,吴顺君.CPLD技术及其应用.西安:西安电子科技大学出版社,1999专心-专注-专业
限制150内