VHDL课程设计.doc
《VHDL课程设计.doc》由会员分享,可在线阅读,更多相关《VHDL课程设计.doc(25页珍藏版)》请在三一办公上搜索。
1、目 录1 引言11.1 EDA介绍11.2 任务说明12 系统设计22.1系统概述22.2 系统原理22.3 系统封装图33 程序设计43.1系统结构示意图43.2 分频程序43.2.1 分频程序原理43.2.2 分频程序仿真53.3 位选程序63.3.1 位选程序原理63.3.2 位选程序仿真73.4 时钟程序83.4.1 时钟程序原理83.4.2 时钟程序仿真93.5 计数程序93.5.1 计数程序原理93.5.2 计数程序仿真113.6 BCD码转换113.6.1 BCD码转换原理113.6.2 BCD码程序仿真133.7顶层文件143.7.1 顶层文件介绍及仿真143.7.2硬件调试1
2、54 总结17参考文献18附录191 引言1.1 EDA介绍EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。1.2 任务说明简易数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,
3、方波或其它周期性变化的信号。如配以适当的传感器,可以对多种物理量进行测试,比如机械振动的频率,转速,声音的频率等。其具有高速、精确、可靠、抗干扰性强和现场可编程等优点。因此,数字频率计是一种应用很广泛的仪器 。本次EDA课程设计题目为简易数字频率计设计,实现对于1HZ-10MHZ的方波信号进行测量。该频率计包括4个不同的档位,具有记忆功能和总体的复位功能。需要利用VHDL(硬件描述语言)通过Quartus II编程软件进行程序的编写和调试、仿真。并将程序下载到硬件上进行实际观测。2 系统设计2.1系统概述本设计基于可编程逻辑器件FPGA,使用VHDL进行设计、综合、仿真以及实现。通过编程,根据
4、选择的档位对输入的方波信号进行频率的测量,并且显示在四位七段数码管上,当数值溢出时进行报警指示。2.2 系统原理本设计共分成五个子模块程序:分频(fpq)程序、位选(wxq)程序、时钟(szq)程序、计数(jsq)程序、BCD转换(bcd)程序。通过五个模块相互配合实现简易数字频率计的功能。各模块间的连接关系如下所示:图1 系统原理图系统原理为:待测的方波信号首先通过分频模块,进行10/100/1000分频,产生10倍/100倍/1000倍及原待测信号共四路方波信号。然后将四路信号送入位选功能模块,通过四个输入开关对该四路方波的选择。位选模块所选择的方波信号送入计数模块后,与输入的系统基准时钟
5、clk配合,计数得到输入方波的信号频率,最后送入bcd转换模块,将四位十进制数据转化成四组4位BCD码。本设计具有记忆功能,在测量过程中不刷新数据,等数据测量过程结束后才显示测量的频率值,并保存到下一次测量结束,此频率计有整体异步复位功能。2.3 系统封装图图2 系统封装图系统封装图如图2所示,其中shuru为待测试的方波输入端,clk为系统时钟频率输入端,rst为复位端,ginp为频率计乘1档端,sinp为频率计乘10档,sinp为频率计乘100档,binp为频率计乘1000档。gout,sout,bout,qout分别为四路档位对应的标志位,通过四个LED灯点亮实现,cc为超量程警告位,通
6、过一个LED灯闪烁实现。gw,sw,bw,qw分别输出四位BCD码,并通过数码管显示,分别表示千位,百位,十位,个位。当系统工作时,四个数码管所显示数据乘以档位即使所测量的方波的频率。3 程序设计3.1系统结构示意图图3 系统结构示意图3.2 分频程序3.2.1 分频程序原理该部分程序中使用process,其中敏感信号列表中为shuru,即待测方波信号。系统备有1档,10档,100档,1000档,即需对待测方波进行10倍,100倍,1000倍的分频,通过定义三个变量,以待测方波为时钟进行计数,则需要程序中计数器计分别计数到5,50,500时对四路输出信号进行逻辑非运算。分频程序代码:libra
7、ry ieee;use ieee.std_logic_1164.all;entity fpq isport(shuru:in std_logic; ao,bo,co,do:buffer std_logic);end fpq;architecture bhv of fpq isbeginao=shuru;process(shuru)variable nu,nu1,nu2:integer range 0 to 1000:=0;beginif(shuru event and shuru =1)then nu:=nu+1;nu1:=nu1+1;nu2:=nu2+1;if(nu=5)then bo=no
8、t 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;该程序封装图如下图所示:图4 分频程序封装图3.2.2 分频程序仿真该部分程序仿真波形如下图5所示:图5 分频程序仿真图分频程序仿真参数设定shuru1为输入的预测方波信号,ao,bo,co,do为四个输出信号,分别为对输入shuru1进行分频后以及本来方波信号,由图中可以看出ao频率与fb1频率相同,bo频率为fb1频率的1/10,co频率为
9、fb1频率的1/100,do频率为fb1频率的1/1000。3.3 位选程序3.3.1 位选程序原理该部分程序包含复位端rst,四个输入信号ai,bi,ci,di分别接分频程序的四路分频后的方波信号,通过四个开关控制端k1,k2,k3,k4分别选择输出信号的选择,例如若k1为高电平,则fb0等于ai的输入信号。位选程序与分频程序公共构成频率计四个档位测量功能。位选程序代码:library ieee;use ieee.std_logic_1164.all;entity wxq isport(ai,bi,ci,di,rst:in std_logic; ginp,sinp,binp,qinp:in
10、std_logic; gout,sout,bout,qout:out std_logic; shuru0:out std_logic);end wxq;architecture bhv of wxq isbegin process(rst, ginp,sinp,binp,qinp, gout,sout,bout,qout)beginif(rst=1)then gout=0;sout=0;bout=0;qout=0;shuru0=0;elsif(ginp=1)then gout=1;sout=0;bout=0;qout=0; shuru0=ai;elsif(sinp=1)then gout=0;
11、sout=1;bout=0;qout=0; shuru0=bi;elsif(binp=1)then gout=0;sout=0;bout=1;qout=0; shuru0=ci;elsif(qinp=1)then gout=0;sout=0;bout=0;qout=1; shuru0=di;end if;end process;end bhv;位选程序封装图如下图所示:图6 位选程序封装图封装图中输入信号ai,bi,ci,di为四路分频后的方波信号,ginp、binp、binp、qinp这四档开关选择输入信号,该程序中复位端rst为高电平时,将ginp、binp、binp、qinp四个开关控制
12、端对应的输出信号gout、sout、bout、qout分别置零,在硬件电路中用四个LED灯的亮灭表示,测量时必须有且仅有一个灯点亮,否则为违规操作,测量数据错误。3.3.2 位选程序仿真该部分程序仿真波形如下图7所示:图7 位选程序仿真图由仿真图中可以看出,输入信号其中qinp为高电平,ginp、binp、binp皆为低电平,则相对应的输出信号qout为高电平,shuru0波形与第4路输入信号di相同。复位信号在前端有一正脉冲,即当为高电平时,所有的输出信号皆为低电平。此后,sinp为高电平而其它3档为低电平时,输出信号sout为高电平,shuru0波形与第2路输入信号bi相同。3.4 时钟程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 课程设计
三一办公所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。




链接地址:https://www.31ppt.com/p-4146816.html