欢迎来到天天文库
浏览记录
ID:10727414
大小:531.00 KB
页数:14页
时间:2018-07-07
《vhdl课程设计--数字秒表》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于VHDL语言的数字秒表实现基于VHDL语言的数字秒表实现041020421夏进1510301班2013-5-113基于VHDL语言的数字秒表实现基于VHDL语言的数字秒表实现041020421夏进1510301班1设计方案1.1?系统功能要求设计一块数字秒表,能够精确反映计时时间,并完成复位、计时功能。秒表计时的最大范围为1小时,精度为0.01秒,并可显示计时时间的分、秒、0.1秒等度量。(1)具有秒表系统功能要求显示功能,用6个数码管分别显示分、秒、0.01秒;计时范围为00:00:00~59:59:99。(2)计时精度是0.01s;(3)具有
2、启/停开关,复位开关。1.2?总体框图根据系统设计要求,系统的底层设计主要由六十进制计数器模块、二十四进制计数器模块、分频模块、LED显示模块组成。系统顶层设计图如图所示:图中左边为三个输入信号en,clk,reset;分为启/停开关,时钟信号和复位开关。主要模块有:模60计数器(count60),模100计数器(count100),分频器(clk_div),复位控制(control),译码器(yima),防抖模块(fdou),状态变换模块(change)。13基于VHDL语言的数字秒表实现右边是六个LED显示输出信号。2?模块功能设计由模60计数器
3、模块与模100计数器模块进行计数;实验室仪器可产生标准的1kHz的时钟信号,通过分频器模块产生所需的100Hz的时钟信号;复位模块可进行计数器复位操作;译码器是为了将四位二进制信号转换为LED所需的七位二进制编码;防抖模块用于消除用户按键时的抖动消除,为方便仿真,此处原始时钟信号3周期以上可产生信号;状态变换模块是为了用户按键后信号的变换及保持。2.1模60计数器该模块部分VHDL源程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcoun
4、t60ISPORT(en,Reset,clk:inSTD_LOGIC;qa:outSTD_LOGIC_VECTOR(3DOWNTO0);qb:outSTD_LOGIC_VECTOR(3DOWNTO0);rco:OUTSTD_LOGIC);ENDcount60;ARCHITECTUREaOFcount60ISBEGINprocess(clk)variabletma:STD_LOGIC_VECTOR(3DOWNTO0);variabletmb:STD_LOGIC_VECTOR(3DOWNTO0);beginIfReset='0'thentma:="000
5、0";tmb:="0000";13基于VHDL语言的数字秒表实现elsifclk'eventandclk='1'thenifen='1'thenrco<=tmb(2)andtmb(0)andtma(3)andtma(0);iftma="1001"thentma:="0000";iftmb="0101"thentmb:="0000";elsetmb:=tmb+1;endif;elsetma:=tma+1;endif;endif;endif;qa<=tma;qb<=tmb;endprocess;ENDa;2.2模100计数器该模块部分VHDL源程序如下:
6、LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcount100ISPORT(en,Reset,clk:inSTD_LOGIC;qa:outSTD_LOGIC_VECTOR(3DOWNTO0);qb:outSTD_LOGIC_VECTOR(3DOWNTO0);rco:OUTSTD_LOGIC);ENDcount100;ARCHITECTUREaOFcount100IS13基于VHDL语言的数字秒表实现BEGINprocess(clk)variabl
7、etma:STD_LOGIC_VECTOR(3DOWNTO0);variabletmb:STD_LOGIC_VECTOR(3DOWNTO0);beginIfReset='0'thentma:="0000";tmb:="0000";elsifclk'eventandclk='1'thenifen='1'thenrco<=tmb(3)andtmb(0)andtma(3)andtma(0);iftma="1001"thentma:="0000";iftmb="1001"thentmb:="0000";elsetmb:=tmb+1;endif;elsetma
8、:=tma+1;endif;endif;endif;qa<=tma;qb<=tmb;endprocess;E
此文档下载收益归作者所有