EDA课程设计-简易频率计设计说明书.doc
《EDA课程设计-简易频率计设计说明书.doc》由会员分享,可在线阅读,更多相关《EDA课程设计-简易频率计设计说明书.doc(25页珍藏版)》请在三一文库上搜索。
1、唐山学院课程设计1 引言频率是常用的物理量,在实际测量过程中总是尽可能地把被测参量转换成频率参量进行测量。例如工程中用振弦式方法测量力、时间测量、速度控制等,都可转化为频率测量。在被测信号中,较多的是模拟和数字开关信号,此外还经常遇到以频率为参数的测量信号,例如流量、转速、晶体压力传感器以及经过参变量一频率转换后的信号等等。因此,频率测量是电子测量技术中最基本的测量之一。数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信号。如配以适当的传感器,可以对多种物理量进行测试,比如机械振动的频率,转速,声音的频率以及产品的计件等等。因此,数字频率计是一种应用很广泛
2、的仪器,是数字电路中的一个典型应用。频率信号易于传输,抗干扰性强,可以获得较好的测量精度。因此,频率检测是电子测量领域最基本的测量之一。但实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。采用VDHL编程设计实现的数字频率计,除被测信号的整形部分、键输入部分和数码显示部分以外,其余全部在一片FPGA芯片上实现,整个系统非常精简,而且具有灵活的现场可更改性。在不更改硬件电路的基础上,对系统进行各种改进还可以进一步提高系统的性能。该数字频率计具有高速、精确、可靠、抗干扰性强和现场可编程等优点。本次EDA课程设计设计即为简易数字频率计,其实功能为实现1HZ-
3、10MHZ的方波信号的测量;测量的方波频率值要在4位数码管上进行显示; 根据不同的待测方波信号,频率计分为4个量程进行测量,四个量程分别为乘1,乘10,乘100,乘1000量程。此频率计具有记忆功能,在测量过程中不刷新数据,等数据测量过程结束后才显示测量值,显示测量的频率值,并保存到下一次测量结束;此频率计要设有一个整体复位控制。常用的测量频率的方法有两种,一种是测周期法,一种是测频率法。测周期法需要有基准系统时钟频率Fs,在待测信号的一个周期Ts内,记录基准时钟频率的周期数Ns,则被测频率可表示为 Fx=Fs/Ns直接测频率的方法就是在一定的时间间隔内Tw内,得到这个周期信号重复变化的次数N
4、x,则被测频率可表示位Fx=Ns/Tw本设计采用的是直接测频率的方法2 VHDL及QuartusII软件简介2.1 EDA介绍EDA是电子设计自动化(Electronic Design Automation)缩写。在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术是以计算机为工具,根据硬件描述语言VHDL(VHSIC Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等
5、工作。几乎所有适于大学生做的数字逻辑电路实验都可以在计算机上利用EDA (Electronic Design Automatic电子设计自动化)软件进行设计、仿真,只有极少量外部配件不能在计算机上进行仿真。因此,在实验前期阶段,即实验预习阶段的主要应用工具是EDA软件,利用EDA软件可以设计、仿真实验课题,进行虚拟实验。通过虚拟实验使实验者在进入真实实验前就能对预做的实验有相当的了解,甚至可以预测到实验的结果。这样在实际做实验时,可以把许多设计型实验的难度降低,同时能有更多的时间让实验者动手做实验,研究问题,提高实验效率。当前数字电路设计已由计算机辅助设计进入到以计算机为主的设计时代2.2 V
6、HDL介绍硬件描述语言(HDL)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。例如一个32位的加法器,利用图形输入软件需要输人500至1000个门,而利用VHDL语言只需要书写一行“A=B+C” 即可。而且 VHDL语言可读性强,易于修改和发现错误。早期的硬件描述语言,如ABEL、HDL、AHDL,由不同的EDA厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。为了克服以上不足,1985年美国国防部正式推出了高速集成电路硬件描述语言VHDL,1987年IEEE采纳V
7、HDL为硬件描述语言标准(IEEE-STD-1076)。VHDL是一种全方位的硬件描述语言,包括系统行为级。寄存器传输级和逻辑门多个设计层次,支持结构、数据流和行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件俄语言的功能,整个自顶向下或由下向上的电路设计过程都可以用VHDL来完成。VHDL还具有以下优点:(1)VHDL的宽范围描述能力使它成为高层进设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,而花较少的精力于物理实现。(2)VHDL可以用简洁明确的代码描述来进行复杂控制逻辑设计,灵活且方便,而且也便于设计结果的交流、保存和重用。(3)VHDL的设计不依赖于特定的器
8、件,方便了工艺的转换。(4)VHDL是一个标准语言,为众多的EDA厂商支持,因此移植性好。美国于1981年提出了一种新的、标准化的HDL,称之为VHSIC(Very High Speed Integrated Circuit) Hardware Description Language,简称VHDL。这是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言。设计者可以利用这种语言来描述自己的设计思想,然后利用电子设计自动化工具进行仿真,再自动综合到门电路,最后用PLD实现其功能。2.3 设计工具简介Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、Veri
9、logHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera
10、的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。Alter
11、a Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。 Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添 了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。3 数字频率计原理3.1系统原理
12、 数字频率计要实现对输入信号频率进行测试,系统必须要提供一个基准频率,这里通过时钟程序产生频率为6兆赫兹的方波,系统同时输入基准频率和待测频率,在基准频率的高电平处开始记录输入频率的周期个数,待基准频率到达低电平时,停止计数,则输入频率的周期个数就是它的频率。该程序共分成四部分,分别为分频(fp)程序、位选(wx)程序、时钟(sz)程序和计数(js)程序。通过四个模块相互配合实现简易数字频率计的功能。其实现过程为:欲测试的方波信号首先通过分频器模块,产生10倍,100倍,1000倍及本来方波信号共四路方波信号,四路信号送入位选功能模块,通过输入按键控制经过分频处理后的四路方波的选择,此两个模块
13、即实现四个测试档位的功能。位选模块所选择的方波信号进入计数模块,从而得到输入方波信号的频率。时钟模块为一分频程序,是为产生一个6兆赫兹的时钟脉冲送入计数模块,用以对方波频率测试。3.2 系统原理图计数模块位选模块分频模块时钟模块图3-1 系统原理图本次简易数字频率计设计系统共分为四个功能模块,如上图3-1所示,分别为分频模块,位选模块,时钟模块和计数模块。四部分功能模块中,分频模块完成对于预测试的方波进行分频,输出四路分别为原方波频率的1倍,1/10倍,1/100倍,1/1000倍频率的方波,分频后的四路方波信号送入第二功能模块,即位选模块,此模块完成四个档位的设计功能,选择一路输出,送入到计
14、数模块当中,技术模块的计数时钟频率必须为6MHz,系统的时钟频率需要经过时钟模块进行分频得到,计数结果即为相应档位下的数值,到此,整个系统功能设计完成。3.3 系统封装图图3-2 系统封装图系统封装图如图3-2所示,其中fb为待测试的方波输入端,clk为系统时钟频率输入端,rst为复位端,sel是档位选择端,当sel为00是乘1档,01是乘10档,10是乘100档,11是乘1000档。d1,d2,d3,d4分别输出四位BCD码,并通过数码管显示,分别表示千位,百位,十位,个位。当系统工作时,四个数码管所显示数据乘以档位即使所测量的方波的频率。4 整体程序设计系统通过图形输入实现,包括四个分程序
15、,分别为分频程序,位选程序,时钟程序和计数程序。4.1 分频程序4.1.1 分频程序原理该部分程序中使用process,其中敏感信号列表中为fb1,即预测试的方波信号。通过定义一个变量,以方波为时钟进行计数,该系统需要乘1档,乘10档,乘100档,乘1000档,即进行10倍,100倍,1000倍的分频,则需要程序中计数器计分别计数到5,50,500时对四路输出信号进行逻辑非运算。该程序封装图如下图4-1所示:图4-1 分频程序封装图其中fb1为预测方波输入信号,ao,bo,co,do分别为分频后的四路信号。该部分用以实现对预测试的方波进行10倍,100倍,1000倍的分频,以及本来方波信号共计
16、四路方波信号的输出。4.1.2 分频程序仿真该部分程序仿真波形如下图4-2所示:图4-2 分频程序仿真图分频程序仿真参数设定fb1为输入的预测方波信号,ao,bo,co,do为四个输出信号,分别为对输入fb1进行分频后以及本来方波信号,由图中可以看出ao频率与fb1频率相同,bo频率为fb1频率的1/10,co频率为fb1频率的1/100,do频率为fb1频率的1/1000。4.1.3分频程序源代码library ieee;use ieee.std_logic_1164.all;entity fp isport(fb1:in std_logic; -待测信号 ao,bo,co,do:buffe
17、r std_logic);end fp;architecture bhv of fp isbeginao=fb1;process(fb1)variable nu,nu1,nu2:integer range 0 to 1000:=0; -计数常量beginif(fb1event and fb1=1)thennu:=nu+1;nu1:=nu1+1;nu2:=nu2+1;if(nu=5)then -10分频bo=not bo;nu:=0;end if;if(nu1=50)then -100分频co=not co;nu1:=0;end if;if(nu2=500)then -1000分频do=not
18、do;nu2:=0;end if;end if;end process;end bhv;4.2 位选程序4.2.1 位选程序原理该部分程序包含四个输入信号ai,bi,ci,di分别接分频程序的四路分频后的方波信号,通过sel控制端是00,01,10,11分别选择输出信号的选择,例如若sel为00,则fb0等于ai的输入信号。位选程序与分频程序公共构成频率计四个档位测量功能。位选程序封装图如图4-3所示图4-3 位选程序封装图封装图中输入信号ai,bi,ci,di为四路分频后的方波信号,当sel为00时fb=ai,当sel为01时fb=bi,当sel为10时fb=ci,当sel为11时fb=di
19、。4.2.2 位选程序仿真该部分程序仿真波形如下图4-4所示:图4-4 位选程序仿真图由仿真图可以看出,当sel为00时fb为ai的波形,当sel为01时fb为bi的波形,当sel为10时fb为ci的波形,当sel为11时fb为di的波形。4.2.3 位选程序源代码library ieee;use ieee.std_logic_1164.all;entity wx isport(ai,bi,ci,di:in std_logic; -分频输出信号 sel: in std_logic_vector( 1 downto 0); -档位选择 fb0:out std_logic); -位选输出信号end
20、 wx;architecture bhv of wx isbegin process(sel,ai,bi,ci,di)beginif(sel=00)then fb0=ai;elsif(sel=01)then fb0=bi;elsif(sel=10)thenfb0=ci;elsif(sel=11)then fb0=di;end if;end process;end bhv;4.3 时钟程序4.3.1 时钟程序原理该部分代码是实现得到6MHZ的时钟频率,用以对方波频率的计数测量。时钟程序封装如图4-5所示: 图4-5 时钟程序封装图图中输入信号clk为系统时钟频率,clk1为输出信号,作为计数程序
21、的基准时钟。该时钟程序仍为一个分频程序,系统时钟频率作为进程中敏感信号列表的值,当定义的计数变量计数到6000000时对输出clk1进行逻辑非运算,并将变量置零,从而得到3MHz的时钟信号。此部分为计数部分输入时钟信号,作为频率测量的基准信号。4.3.2 时钟程序仿真程序仿真波形如下图4-6所示:图4-6 时钟程序仿真图由于设计要求6MHZ,在仿真图上体现很困难,所以改为二分频显示。其中输入信号clk为系统的时钟信号,输出信号clk1为分频后得到的时钟信号,由上图中可以看出,clk的频率为clk1的1/2。4.3.3 时钟程序源代码library ieee;use ieee.std_logic
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程设计 简易 频率计 设计 说明书
链接地址:https://www.31doc.com/p-5014496.html