基于VHDL的数字时钟设计 - 图文

2026/4/27 20:01:27

邵阳学院课程设计

本设中秒、分的六十进制是由个位的十进制和十位的六进制进行组合实现的。当个位记到9时自动向高位进一,同时个位自动清零。当十位记到5并且个位记到9时,自动产生一个进位脉冲,同时个位和十位分别从零开始重新计数。

由VHDL语言生成的模块图和程序说明如下:

图3.4六十进制模块

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cantsixty is port(clk:in std_logic; reset:in std_logic;

out1:out std_logic_vector(3 downto 0); out2:out std_logic_vector(3 downto 0); c:out std_logic); end;

architecture beh of cantsixty is

signal ss1,ss2:std_logic_vector( 3 downto 0); begin

p1:process(clk,reset) begin

if(reset='0')then ss1<=\ elsif(clk'event and clk='1')then

if ss1=\--当计数到59时产生进位信号 else c<='0';--否则不产生 end if;

if ss1=\

8

邵阳学院课程设计

if ss2=\ else ss2<=ss2+1; end if;

else ss1<=ss1+1;--计数过程 end if; end if;

end process p1;--结束进程

out1<=ss1;out2<=ss2;--把信号送输出 end beh;

3.1.5时计数模块hourtwenty

时计数模块是二十四进制相对复杂一点,因为当十位0或着1时个位需要记到9并产生进位信号,当十位是2时,个位记到3时,就全部从零开始重新计数。即是在十位为不同值时个位两种计数过程。

由VHDL语言生成的模块图和程序说明如下:

图3.5时计数模块

3.1.6秒、分、时组合后的模块

把设计的秒、分、时模块连接起来,再通过仿真验证,各模块间的进位是否正确 连接后的原理图如下

图3.6秒、分、时组合后原理图

9

邵阳学院课程设计

3.1.7数码管显示模块

本模块中包含数码管的段选和位选设计,Led灯循环设计,以及整点报时的设计。模块的输入信号有数码管扫描频率clk2ms,秒、分、时各模块的个位和十位输入,以及由分模块向时模块产生的进位脉冲信号。

由VHDL语言生成的模块图和程序说明如下:

图3.7数码管显示原理图

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity qudong is

port(s1,s2,m1,m2,h1,h2:in std_logic_vector(3 downto 0); clk2ms: in std_logic; xiang:in std_logic;

signal sel:std_logic_vector( 2 downto 0); signal A:std_logic_vector( 3 downto 0); signal t:std_logic_vector ( 11 downto 0); signal f:std_logic_vector(1 downto 0); signal count1:std_logic_vector(1 downto 0); begin

p1:process(clk2ms) begin

if clk2ms'event and clk2ms='1' then sel<=sel+1;t<=t+1; if t=\

10

邵阳学院课程设计

end if; end if; f<=t(11)&t(10);

if f=\ then led(3)<='0';else led(3)<='1'; end if;

if f=\ then led(2)<='0';else led(2)<='1'; end if;

if f=\end if;--led的循环显示设计 end process p1;

p2:process(sel,s1,s2,m1,m2,h1,h2) begin case sel is

when \--秒个位在数码管1上显示 when \--秒十位在数码管2上显示 when \--数码管3上显示横杠 when \--分个位在数码管4上显示 when \--分十位在数码管5上显示 when \--数码管6上显示横杠 when \--时个位在数码管7上显示 when \--时十位在数码管8上显示 when others =>null; end case; end process p2; p3:process(A) begin case A is

when \ --显示0 when \ --显示1 when \ --显示2 when \ --显示3

11


基于VHDL的数字时钟设计 - 图文.doc 将本文的Word文档下载到电脑
搜索更多关于: 基于VHDL的数字时钟设计 - 图文 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219