欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

基于VHDL的电子秒表的设计说明

  • 资源ID:90583388       资源大小:83KB        全文页数:13页
  • 资源格式: DOC        下载积分:10积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要10积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

基于VHDL的电子秒表的设计说明

.EDA技术及应用课程设计报告题 目:基于VHDL的电子秒表的设计 院 系: 机电与自动化学院 专业班级:学生姓名:学 号:指导教师:2015年 1月 5日至2015 年 1月9日华中科技大学武昌分校制.目 录1 课程设计的目的及主要内容12 设计模块1 2.1系统总体框图及功能设计1 2.1.1系统总体框图1 2.1.2模块功能设计2 2.2 六十进制计数器 2 2.2.1 六十进制计数器设计思路 2 2.2.2 六十进制计数器仿真结果 3 2.3 二十四进制计数器 4 2.3.1 二十四进制计数器设计思路 42.3.2 二十四进制计数器仿真结果 5 2.4 分频器6 2.4.1 分频器设计思路 6 2.4.2 分频器仿真结果 7 2.5 LED显示 7 2.5.1 LED显示模块设计思路7 2.5.2 LED显示模块仿真结果10 2.6 顶层仿真113课程设计总结 124 主要参考资料 13.1 课程设计目的及主要内容 1运用数字系统的设计方法进行数字系统设计; 2能进行较复杂的数字系统设计; 3数字中的工作原理,工作流程图与原理方框图,自顶向下的数字系统设计方法。具体内容: 设计一个电子秒表,给定时钟信号为256HZ,要求系统达到以下功能: <1>用6个数码管分别显示时、分、秒, 计时范围为:00: 00: 00 23: 59:59。<2>计时精度是1s。<3>具有启/ 停开关, 复位开关, 可以在任何情况下使用。2设计模块2.1 系统总体框图及功能设计2.1.1系统总体框图电子秒表的基本工作原理就是不断输出连续脉冲给加法计数器,加法计数器通过译码器来显示它所记忆的脉冲周期个数。 根据系统设计要求, 系统的底层设计主要由六十进制计数器模块、二十四进制计数器模块、分频模块、LED显示模块组成。系统顶层设计图如图1所示。图1 系统顶层设计图图1中左边为三个输入信号en,clk,reset,分别为启动/停止开关,时钟信号和复位开关。中间从上至下依次为count24,count60,count60,fenpinqi。右边是clock1和输出信号wei3.0, led6.0。2.1.2模块功能设计 本系统由六十进制计数器模块、二十四进制计数器模块、分频模块执行计时功能, 输入信号是256 Hz,通过分频后为1hz,时钟信号是1 Hz 作为秒表的秒输入, 秒为60 进制计数器, 分也为60 进制计数器, 小时采用二十四进制计数器, 各级进位作为高位的使能控制。2.2 六十进制计数器2.2.1 六十进制计数器设计思路 设计一个八位的六十进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa30、qb30、rco,分别为低4位输出、高4位输出和进位。图2 六十进制计数器示意图六十进制计数器模块部分VHDL 源程序如下。LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY count60 ISPORT< en,Reset,clk: in STD_LOGIC; qa: out STD_LOGIC_VECTOR<3 DOWNTO 0> qb: out STD_LOGIC_VECTOR<3 DOWNTO 0> rco: OUT STD_LOGIC> END count60;ARCHITECTURE a OF count60 ISBEGINprocess<clk>variable tma: STD_LOGIC_VECTOR<3 DOWNTO 0>variable tmb: STD_LOGIC_VECTOR<3 DOWNTO 0>beginIf Reset ='0'then tma:="0000" tmb:="0000" elsif clk'event and clk='1' thenif en='1' thenrco<=tmb<2>and tmb<0>and tma<3>and tma<0> if tma="1001" then tma:="0000" if tmb="0101" then tmb:="0000" else tmb:=tmb+1; end if; else tma:=tma+1; end if; end if; end if; qa<=tma;qb<=tmb; end process;END a;2.2.2 六十进制计数器仿真结果六十进制计数器模块部分仿真结果如下图3。图3六十进制计数器仿真波形图 CLK:时钟信号 RST:复位信号 低电平清零 En:置数端 低电平不让它继续计数qb、qa:分别为输出数的十位个位,qb取值范围为0-5,qa取值范围为0-9rco:进位信号,当qb=5,qa=0, rco=0时,clk上升沿来到后,qb=0, qa=0, rco=1; 当qb=5,qa=0, rco=1时,clk上升沿来到后,qb=0, qa=0, rco=0。2.3 二十四进制计数器2.3.1 二十四进制计数器设计思路设计一个八位的二十四进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa30、qb30,分别为低4位输出、高4位输出。图4 二十四进制计数器示意图二十四进制计数器模块部分VHDL 源程序如下。LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY count24 ISPORT< en,Reset,clk: in STD_LOGIC; qa: out STD_LOGIC_VECTOR<3 DOWNTO 0> qb: out STD_LOGIC_VECTOR<3 DOWNTO 0>> END count24;ARCHITECTURE a1 OF count24 ISBEGINprocess<clk>variable tma: STD_LOGIC_VECTOR<3 DOWNTO 0>variable tmb: STD_LOGIC_VECTOR<3 DOWNTO 0>beginIf Reset = '0'then tma:="0000" tmb:="0000" else if clk'event and clk='1' then if en='1' then if tma="1001" then tma:="0000"tmb:=tmb+1; elsif tmb="0010" and tma="0011" then tma:="0000"tmb:="0000" else tma:=tma+1; end if; end if; end if;end if; qa<=tma;qb<=tmb; end process;END a1;2.3.2 二十四进制计数器仿真结果 二十四进制计数器模块部分仿真结果如下图5。图5二十四进制计数器仿真波形图 CLK:时钟信号 RST:复位信号 低电平清零 En:置数端 低电平不让它继续计数 qb、qa:输出的四位二进制数,分别对于要输出数的十位个位2.4 分频器2.4.1 分频器设计思路分频器原理:输入一个较高的频率,比如750kHz,则设计算法,使得每输入7500个脉冲输出一个脉冲,这样输出端口就提供一个100Hz的频率。输入信号为clk和rst,分别为时钟信号和复位信号,输出信号为clk_out,为分频器1HZ的时钟信号输出。图6 分频器示意图分频器模块部分VHDL 源程序如下。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fenpinqi IS PORT <CLK,RST:in std_logic; CLK_OUT:out std_logic> END fenpinqi;ARCHITECTURE behav OF fenpinqi ISsignal clk_data:std_logic;SIGNAL CNT6 : INTEGER := 0;BEGIN PROCESS<CLK> BEGIN IF RST = '0' THEN CNT6<=0 ; ELSIF CLK'EVENT AND CLK='1' THEN IF CNT6=2 THEN clk_data<=NOT clk_data;CNT6<=0;ELSE CNT6<=CNT6+1; END IF; END IF; CLK_OUT<=clk_data; END PROCESS;END behav;2.4.2 分频器仿真结果 分频器模块部分仿真结果如下图7。图7分频器仿真波形图 CLK:输入分频前的时钟信号 RST:复位信号 低电平清零 Clkout:输出分频后的时钟信号2.5 LED显示2.5.1 LED显示模块设计思路LED有着显示亮度高,响应速度快的特点,最常用的是七段式LED显示器,又称数码管。七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。LED数码管的ga七个发光二极管因加正电压而发亮,因加零电压而不能发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码<段码>,如显示"0",字形码为3fh。数码管的接口有静态接口和动态接口。动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性 ,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出<字形选择>,另一接口完 成各数码管的轮流点亮<数位选择>。将二十四进制计数器和2个六十进制计数器的输出作为LEDA显示模块的输入,在时钟信号的控制下通过此模块完成6个LED数码管的显示,输出信号为WEI20和LED60,分别为位选信号和段码输出。图8 LED显示示意图图9 LED数码管结构图 LED显示模块部分VHDL 源程序如下。 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clock1 IS PORT<CLK: IN STD_LOGIC;S1, S2, S3, S4, S5, S6: IN STD_LOGIC_VECTOR<3 DOWNTO 0>WEI: OUT STD_LOGIC_VECTOR<2 DOWNTO 0>LED: OUT STD_LOGIC_VECTOR<6 DOWNTO 0>>END ENTITY;ARCHITECTURE behave OF clock1 ISSIGNAL CNT6 : INTEGER RANGE 0 TO 5 := 0;SIGNAL SHUJU: STD_LOGIC_VECTOR<3 DOWNTO 0>BEGIN PRO1:PROCESS<CLK>BEGINIF CLK'EVENT AND CLK = '1' THENCNT6 <= CNT6 + 1;CASE CNT6 ISWHEN 0 => WEI <= "000" SHUJU <= S1;WHEN 1 => WEI <= "001" SHUJU <= S2; WHEN 2 => WEI <= "010" SHUJU <= S3;WHEN 3 => WEI <= "011" SHUJU <= S4;WHEN 4 => WEI <= "100" SHUJU <= S5;WHEN 5 => WEI <= "101" SHUJU <= S6;CNT6<=0;WHEN OTHERS => NULL;END CASE;END IF;END PROCESS;PRO2: PROCESS<SHUJU>BEGINCASE SHUJU ISWHEN "0000" => LED<= "1111110" ;WHEN "0001" => LED<= "0110000" ; WHEN "0010" => LED<= "1101101" ; WHEN "0011" => LED<= "1111001" ; WHEN "0100" => LED<= "0110011" ; WHEN "0101" => LED<= "1011011" ; WHEN "0110" => LED<= "1011111" ; WHEN "0111" => LED<= "1110000" ; WHEN "1000" => LED<= "1111111" ; WHEN "1001" => LED<= "1111011" ; WHEN others=> LED<= "0000000" ; END CASE;END PROCESS;END ; 2.5.2 LED显示模块仿真结果 LED显示模块部分仿真结果如下图10。图10LED显示模块仿真波形图Clk:时钟信号 s1,s2,s3,s4,s5,s6:输入的的四位二进制数 led:输出的七位二进制数,对应数码管脚的输出gfedcba wei:输出的三位而进制数输出范围为000-101,控制led输出,当wei=000时,led输出s1对应的十进制数的数码管脚gfedcba当wei=001时,led输出s2对应的十进制数的数码管脚gfedcba当wei=010时,led输出s3对应的十进制数的数码管脚gfedcba当wei=011时,led输出s4对应的十进制数的数码管脚gfedcba当wei=100时,led输出s5对应的十进制数的数码管脚gfedcba当wei=101时,led输出s6对应的十进制数的数码管脚gfedcba2.6 顶层仿真 顶层仿真仿真波形如下图11图11顶层仿真仿真波形CLK:时钟信号 RST:复位信号 低电平清零 En:置数端 低电平不让它继续计数led:输出的七位二进制数,对应数码管脚的输出gfedcbawei:输出的三位而进制数输出范围为000-101,控制led输出,当wei=000时,led输出对于秒钟的个位当wei=001时,led输出对于秒钟的十位当wei=010时,led输出对于分钟的个位当wei=011时,led输出对于分钟的十位当wei=100时,led输出对于时钟的个位当wei=101时,led输出对应时钟的十位3 课程设计总结通过本次课程设计,把EDA课堂上学习的硬件描述语言应用到了实际,巩固了已经学到的东西,并对它有了更深层次的理解。实际操作让我了解了实际操作方面的应用。我认识到完成一个复杂的工程需要通过模块。对数字秒表的设计,可由60进制计数器、24进制计数器、分频器、LED显示4个模块组成。在每个模块的设计思路和过程上都要清晰和明确,再分布完成仿真,得到想要的正确仿真结果。在整个设计过程之中细心十分重要,特别是当编译出错或仿真结果不正确时需要细心检查,看是源程序的程序错误还是编译的对象错误等等。完成此次课程设计后,我学习到了许多东西:逻辑思维能力和动手能力得到提高,同时加深了理解EDA开发软件QuartusII的认识,对于VHDL语言的应用有了进一步的理解和掌握,还有在对一些设计的思路上有所领悟。这些对我的学习都有一定的好处,对于我的思维开阔也有所帮助。 本次设计的完成,对我来说也是一种肯定,是一种提高。在以后的实际生活中本次课程设计的理念也是一种参考。.4 主要参考资料1 杨晖大规模可编程逻辑器件与数字系统设计北京:北京航空航天大学出版社,20102 任爱锋基于FPGA的嵌入式系统设计XX:XX电子科技大学出版社,20113 杨恒FPGA/CPLD最新实用技术指南北京:清华大学出版社,20104 王锁萍电子设计自动化EDA教程XX:电子科技大学出版社,20095 路而红电子设计自动化应用技术北京:北京希望电子出版社,20096 潘松VHDL实用教程. XX:电子科技大学出版社,2010课程设计成绩评定表成绩评定项 目比例得 分平时成绩百分制记分30%业务考核成绩百分制记分70%总评成绩百分制记分100%评定等级优 良 中 及格 不及格指导教师签名:20 年 月 日.

注意事项

本文(基于VHDL的电子秒表的设计说明)为本站会员(沈***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!