eda课设说明书-数字频率计.doc

上传人:爱问知识人 文档编号:5014514 上传时间:2020-01-28 格式:DOC 页数:23 大小:229.50KB
返回 下载 相关 举报
eda课设说明书-数字频率计.doc_第1页
第1页 / 共23页
eda课设说明书-数字频率计.doc_第2页
第2页 / 共23页
eda课设说明书-数字频率计.doc_第3页
第3页 / 共23页
eda课设说明书-数字频率计.doc_第4页
第4页 / 共23页
eda课设说明书-数字频率计.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《eda课设说明书-数字频率计.doc》由会员分享,可在线阅读,更多相关《eda课设说明书-数字频率计.doc(23页珍藏版)》请在三一文库上搜索。

1、1 引言1.1 课程介绍EDA是电子设计自动化(Electronic Design Automation)缩写。在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术是以计算机为工具,根据硬件描述语言VHDL(VHSIC Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。几乎所有适于大学生做的数字逻辑电路实验都可以在计算机上利用EDA (Electronic Des

2、ign Automatic电子设计自动化)软件进行设计、仿真,只有极少量外部配件不能在计算机上进行仿真。因此,在实验前期阶段,即实验预习阶段的主要应用工具是EDA软件,利用EDA软件可以设计、仿真实验课题,进行虚拟实验。通过虚拟实验使实验者在进入真实实验前就能对预做的实验有相当的了解,甚至可以预测到实验的结果。这样在实际做实验时,可以把许多设计型实验的难度降低,同时能有更多的时间让实验者动手做实验,研究问题,提高实验效率。当前数字电路设计已由计算机辅助设计进入到以计算机为主的设计时代1.2 VHDL介绍VHDL是一种硬件描述语言,它可以对电子电路和系统的行为进行描述,基于这种描述,结合相关的软

3、件工具,可以得到所期望的实际电路与系统。使用VHDL语言描述的电路,可以进行综合和仿真。然而,值得注意的是,尽管所有VHDL代码都是可仿真的,但并不是所有代码都能综合。VHDL被广泛使用的基本原因在于它是一种标准语言,是与工具和工艺无关的,从而可以方便地进行移植和重用。VHDL两个最直接的应用领域是可编程逻辑器件(PLD)和专用集成电路(ASIC),其中可编程逻辑器件包括复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)。在VHDL中,只有在进程(PROCESS)、函数(FUNCTION)和过程(PROCEDURE)内部的语句才是顺序执行的。目前有多种EDA工具支持采用VHDL进行电

4、路综合、仿真以及实现。比较常见的是Altera公司的Quartus开发平台和Xilinx公司的ISE开发平台。这些平台中使用的综合工具和仿真工具通常由专业的EDA厂商提供。本次设计中所使用的平台正是Quartus7.2,它是Altera公司提供的一套集成了编译、布局布线和仿真工具在内的综合开发环境。它能完成从代码输入到编译到仿真再到物理实现的全部设计流程。1.3 设计工具简介Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有

5、的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Maxplus I

6、I 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。

7、 Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添 了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。1.4测量频率的方法常用的测量频率的方法有两种,一种是测周期法,一种是测频率法。测周期法需要有基准系统时钟频率Fs,在待测信号的一个周期Ts内,记录基准时钟频率

8、的周期数Ns,则被测频率可表示为 Fx=Fs/Ns直接测频率的方法就是在一定的时间间隔内Tw内,得到这个周期信号重复变化的次数Nx,则被测频率可表示位Fx=Ns/Tw本设计采用的是直接测频率的方法。2 数字频率计原理2.1系统原理 数字频率计要实现对输入信号频率进行测试,系统必须要提供一个基准频率,这里通过时钟程序产生频率为6兆赫兹的方波,系统同时输入基准频率和待测频率,在基准频率的高电平处开始记录输入频率的周期个数,待基准频率到达低电平时,停止计数,则输入频率的周期个数就是它的频率。该程序共分成四部分,分别为分频(fp)程序、位选(wx)程序、时钟(sz)程序和计数(js)程序。通过四个模块

9、相互配合实现简易数字频率计的功能。其实现过程为:欲测试的方波信号首先通过分频器模块,产生10倍,100倍,1000倍及本来方波信号共四路方波信号,四路信号送入位选功能模块,通过输入按键控制经过分频处理后的四路方波的选择,此两个模块即实现四个测试档位的功能。位选模块所选择的方波信号进入计数模块,从而得到输入方波信号的频率。时钟模块为一分频程序,是为产生一个6兆赫兹的时钟脉冲送入计数模块,用以对方波频率测试。2.2 系统原理图计数模块位选模块分频模块时钟模块图2-1 系统原理图本次简易数字频率计设计系统共分为四个功能模块,如上图1-2所示,分别为分频模块,位选模块,时钟模块和计数模块。四部分功能模

10、块中,分频模块完成对于预测试的方波进行分频,输出四路分别为原方波频率的1倍,1/10倍,1/100倍,1/1000倍频率的方波,分频后的四路方波信号送入第二功能模块,即位选模块,此模块完成四个档位的设计功能,选择一路输出,送入到计数模块当中,技术模块的计数时钟频率必须为6MHz,系统的时钟频率需要经过时钟模块进行分频得到,计数结果即为相应档位下的数值,到此,整个系统功能设计完成。2.2 系统封装图图2-2 系统封装图系统封装图如图1-3所示,其中fb为待测试的方波输入端,clk为系统时钟频率输入端,rst为复位端,sel是档位选择端,当sel为00是乘1档,01是乘10档,10是乘100档,1

11、1是乘1000档。d1,d2,d3,d4分别输出四位BCD码,并通过数码管显示,分别表示千位,百位,十位,个位。当系统工作时,四个数码管所显示数据乘以档位即使所测量的方波的频率。3 程序设计系统通过图形输入实现,包括四个分程序,分别为分频程序,位选程序,时钟程序和计数程序。3.1 分频程序3.1.1 分频程序原理该部分程序中使用process,其中敏感信号列表中为fb1,即预测试的方波信号。通过定义一个变量,以方波为时钟进行计数,该系统需要乘1档,乘10档,乘100档,乘1000档,即进行10倍,100倍,1000倍的分频,则需要程序中计数器计分别计数到5,50,500时对四路输出信号进行逻辑

12、非运算。该程序封装图如下图3-1所示:图3-1 分频程序封装图其中fb1为预测方波输入信号,ao,bo,co,do分别为分频后的四路信号。该部分用以实现对预测试的方波进行10倍,100倍,1000倍的分频,以及本来方波信号共计四路方波信号的输出。3.1.2 分频程序仿真该部分程序仿真波形如下图3-2所示:图3-2 分频程序仿真图分频程序仿真参数设定fb1为输入的预测方波信号,ao,bo,co,do为四个输出信号,分别为对输入fb1进行分频后以及本来方波信号,由图中可以看出ao频率与fb1频率相同,bo频率为fb1频率的1/10,co频率为fb1频率的1/100,do频率为fb1频率的1/100

13、0。3.1.3分频程序源代码library ieee;use ieee.std_logic_1164.all;entity fp isport(fb1:in std_logic; -待测信号 ao,bo,co,do:buffer 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(

14、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 do;nu2:=0;end if;end if;end process;end bhv;3.2 位选程序3.2.1 位选程序原理该部分程序包含复位端(rst),其中四个输入信号ai,bi,ci,di分别接分频程序的四路分频后的方波信号,通过sel控制端是00,01,10,11分别选择输出信号的选择,例如若sel为00,则fb0等于ai的输入信号。位选程序与分频程序公共构成

15、频率计四个档位测量功能。位选程序封装图如图3-3所示图3-3 位选程序封装图封装图中输入信号ai,bi,ci,di为四路分频后的方波信号,当sel为00时fb=ai,当sel为01时fb=bi,当sel为10时fb=ci,当sel为11时fb=di。3.2.2 位选程序仿真该部分程序仿真波形如下图3-4所示:图3-4 位选程序仿真图 由仿真图可以看出,当sel为00时fb为ai的波形,当sel为01时fb为bi的波形,当sel为10时fb为ci的波形,当sel为11时fb为di的波形。3.2.3 位选程序源代码library ieee;use ieee.std_logic_1164.all;e

16、ntity wx isport(ai,bi,ci,di:in std_logic; -分频输出信号 sel: in std_logic_vector( 1 downto 0); -档位选择 fb0:out std_logic); -位选输出信号end 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 proc

17、ess;end bhv;3.3 时钟程序3.3.1 时钟程序原理该部分代码是实现得到0.5hz时钟频率,用以对方波频率的计数测量。时钟程序封装如图3-5所示:图3-5 时钟程序封装图图中输入信号clki为系统时钟频率,clko为输出信号,作为计数程序的基准时钟。该时钟程序仍为一个分频程序,系统时钟频率作为进程中敏感信号列表的值,当定义的计数变量计数到2时对输出clko进行逻辑非运算,并将变量置零,从而得到0.5Hz的时钟信号。此部分为计数部分输入时钟信号,作为频率测量的基准信号。3.3.2 时钟程序仿真程序仿真波形如下图3-6所示:图3-6 时钟程序仿真图其中输入信号clk为系统的时钟信号,输

18、出信号clk1为分频后得到的时钟信号,由上图中可以看出,clko的频率为clki的1/2。因为系统输入时钟频率选为6MHz,则clk1时钟频率则为12MHz。3.3.3 时钟程序源代码library ieee;use ieee.std_logic_1164.all;entity sz isport (clk:in std_logic; clk1:buffer std_logic); -基准信号end sz;architecture bhv of sz isbegin process(clk)variable a:integer range 0 to 6000000;beginif clkeve

19、nt and clk=1 thena:=a+1;if a=6000000 thena:=0;clk1=not clk1; -高低电平翻转end if;end if;end process;end bhv;3.4 计数程序3.4.1 计数程序原理该部分为本次课程简易频率计系统设计的核心部分,此处程序实现对于方波频率的测量。需要说明的是,此处所得到的测量结果为频率计选择档位后的值,即输出的频率需要乘以档位,最终所得到数据才为所测量方波的频率值。封装图中fb为经过选档后的方波信号,clk为0.5Hz的计数基准时钟信号,rst为复位信号。当输出信号超过量程时数码管显示FFFF。程序封装如下图3-7所示

20、:图3-7 计数程序封装图3.4.2 计数程序仿真计数程序仿真波形如下图3-8所示:图3-8 计数程序仿真图由于仿真所限,图中clk时钟频率为0.2MHz,fb为频率为100MHz,可以看出,fb为clk频率的500倍,由于只有当clk为高电平时计数,所以得到计数结果q值为500。同理,若clk频率为0.5Hz,则其高电平持续时间即为1s,所得到的计数结果500既为fb信号相应频率值,即此时输入方波频率为500Hz。3.4.3 计数程序源代码library ieee;use ieee.std_logic_1164.all;entity js isport (fb,clk,rst:in std_

21、logic; b1,b2,b3,b4:out integer range 0 to 15);end js;architecture bhv of js is signal x1,x2,x3,x4:integer range 0 to 15;begin process(fb,clk,rst)variable t1,t2,t3,t4:integer range 0 to 15; -计数中间变量beginif rst=1 then -计数信号复位 t1:=0;t2:=0;t3:=0;t4:=0;elsif clk=0 then t1:=0;t2:=0;t3:=0;t4:=0;elsif clk=1

22、thenif fbevent and fb=1 thent1:=t1+1;if t1=10 thent1:=0;t2:=t2+1;if t2=10 thent2:=0;t3:=t3+1;if t3=10 thent3:=0;t4:=t4+1;if t4=10 thent1:=15;t2:=15;t3:=15;t4:=15;end if;end if;end if;end if;end if;end if;x1=t1; -计数中间变量赋值x2=t2;x3=t3;x4=t4;end process;process (clk)beginif clkevent and clk=0then -计数数值输

23、出b1=x1;b2=x2;b3=x3;b4=x4;end if;end process;end bhv;3.5 系统总体仿真3.5.1系统总体连接图系统总体连接图如下所示图3-9 系统总体连接图由于仿真所限,此处并未按实际需要进行参数设定。顶层文件程序仿真前,系统时钟频率clk设定为0.02MHz,预测试方波频率值设定为100MHz,由图中可已看出,此时cel为01档,所得到的数据为1000,该数据再乘以10得到的最后值10000才为仿真欲要得到的数据。仿真时设定了复位参数,由图中可看出当复位信号rst为高电平时,所有的输出都会置零或变为低电平,可实现总体复位功能。如下图3-10所示。图3-1

24、0 顶层文件程序仿真图 由于频率计设计包括了四个档位,其中乘1档测试频率范围为1Hz9999Hz,乘10档测试频率范围为10Hz99990Hz,乘100档测试频率范围为 100Hz999900Hz,乘1000档测试频率范围为1000Hz9999000Hz,所以相对应的档位,预测试的频率一旦超过量程就会出现FFFF。3.5.2系统顶层源程序library ieee;use ieee.std_logic_1164.all;entity pljsq isport(fb1:in std_logic; sel:in std_logic_vector(1 downto 0);clk,rst:in std_

25、logic;b1,b2,b3,b4:out integer range 0 to 15);end pljsq;architecture bhv of pljsq iscomponent fp isport(fb1:in std_logic; -待测信号 ao,bo,co,do:buffer std_logic);end component;component wx isport(ai,bi,ci,di:in std_logic; -分频输出信号 sel: in std_logic_vector( 1 downto 0); -档位选择 fb0:out std_logic); -位选输出信号end

26、 component;component sz isport (clk:in std_logic; clk1:buffer std_logic); -基准信号end component;component js isport (fb,clk,rst:in std_logic; b1,b2,b3,b4:out integer range 0 to 15);end component;signal s0,s1,s2,s3,s4,s5:std_logic;beginU1: fp port map(fb1,s0,s1,s2,s3);U2: wx port map(s0,s1,s2,s3,sel,s4)

27、;U3: sz port map(clk,s5);U4: js port map(s4,s5,rst,b1,b2,b3,b4);end bhv;3.6简易频率计硬件显示顶层文件编译仿真完成后要对顶层文件程序中各个输入输出信号进行引脚锁定,值得说明的是,硬件试验箱选用模式5方式,其中数码管自带译码功能。系统时钟引脚应锁定为左侧clk2引脚(56),预测方波fb锁定右侧clk1引脚(126)。具体引脚锁定如下图311中所示。图3-11 引脚锁定图锁定引脚完成后,对程序再次进行编译,然后下载到硬件中,通过硬件操作,测试简易频率计的各项功能,包括1Hz10MHz频率测试,数据在四个数码管上的显示,频率

28、计档位切换,复位功能,超量程标志4 总结本次EDA课程设计题目为简易数字频率计设计,实现对于1Hz10MHz频率范围的方波频率进行测量,并在四位数码管上显示。该频率计包括四个档位,具有记忆功能,拥有一个整体的复位控制。此次课设需要用硬件描述语言(VHDL)编写程序,并在Quartus II软件平台上进行程序的编译和仿真,锁定引脚并下载到可编程逻辑器件(试验箱)中,进行硬件的测试。此次EDA课程设计历时两周时间,两人一组合作进行简易数字频率计系统的设计。程序的编写我们采用原理图连接的形式,经过思考和相互间的分析讨论,将整个系统划分四个功能模块,彼此配合进行四个功能模块设计和程序的编写。其间,我们

29、亦遇到许多问题,诸如整个系统核心模块计数过程的实现,时钟频率的设定等等。经历一周时间的不懈努力和同学之间愈加默契的配合,我们终于完成预定的目的,完成整个简易数字频率计的设计。虽然其中遇到很多困难,很多问题,但在我们两人相互支持和鼓励想下,都能够得以顺利的找到解决办法或者改进的方法,并在合作中相互提高,彼此进步,在困难在中体会到合作的乐趣。EDA技术对于我们电子信息工程专业的学生来说是一本很重要的专业技术课程,EDA技术极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度,是一门实际应用很广泛的技术。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医

30、学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。所以,EDA课程的学习对于我们自身素质和能力的提高有十分重要的积极作用,应该很认真的学习。参考文献1.Voknei A.Pedroni.VHDL数字电路设计教程.电子工业出版社,2008.52.潘松,黄继业.EDA技术实用教程(第二版).科学出版社,2005.23.焦素敏.EDA应用技术.清华大学出版社,2002.44.沈明山.EDA技术及可编程器件应用实训,科学出版社,2004附录一实现电路结构图模式5附录二

31、分频程序:library ieee;use ieee.std_logic_1164.all;entity fp isport(fb1:in std_logic; ao,bo,co,do:buffer 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)then nu:=nu+1;nu1:=nu1+1;nu2:=nu2+1;if(nu=5)then bo=n

32、ot bo;nu:=0;end if;if(nu1=50)then co=not co;nu1:=0;end if;if(nu2=500)then do=not do;nu2:=0;end if;end if;end process;end bhv;位选程序: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 wx;architecture bhv of

33、wx isbegin process(sel,ai,bi,ci,di)beginif(sel=00)thenfb0=ai;elsif(sel=01)then fb0=bi;elsif(sel=10)thenfb0=ci;elsif(sel=11)thenfb0=di;end if;end process;end bhv;时钟程序:library ieee;use ieee.std_logic_1164.all;entity sz isport (clk:in std_logic; clk1:buffer std_logic); end sz;architecture bhv of sz isb

34、egin process(clk)variable a:integer range 0 to 1;beginif clkevent and clk=1 thena:=a+1;if a=1 thena:=0;clk1=not clk1; end if;end if;end process;end bhv;计数程序library ieee;use ieee.std_logic_1164.all;entity js isport (fb,clk,rst:in std_logic; b1,b2,b3,b4:out integer range 0 to 15);end js;architecture b

35、hv of js is signal x1,x2,x3,x4:integer range 0 to 15;begin process(fb,clk,rst)variable t1,t2,t3,t4:integer range 0 to 15; beginif rst=1 then t1:=0;t2:=0;t3:=0;t4:=0;elsif clk=0 then t1:=0;t2:=0;t3:=0;t4:=0;elsif clk=1 thenif fbevent and fb=1 thent1:=t1+1;if t1=10 thent1:=0;t2:=t2+1;if t2=10 thent2:=0;t3:=t3+1;if t3=10 thent3:=0;t4:=t4+1;if t4=10 thent1:=15;t2:=15;t3:=15;t4:=15;end if;end if;end if;end if;end if;end if;x1=t1; x2=t2;x3=t3;x4=t4;end process;process (clk)beginif clkevent and clk=0then b1=x1;b2=x2;b3=x3;b4=x4;end if;end process;end bhv;

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

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1