数字秒表课程设计报告

顾夕 分享 2025-6-24 下载文档

IF CLK'EVENT AND CLK='1' THEN IF CNTER=29999 THEN CNTER<=0; ELSE CNTER<=CNTER+1; END IF;

END IF;

END PROCESS;

PROCESS(CNTER) IS BEGIN

IF CNTER=29999 THEN NEWCLK<='1'; 计数到三万次了,就给出一个脉冲

ELSE NEWCLK<='0'; END IF;

END PROCESS; END;模块符号:

(图1)

2.2模块2——十进制计数器

十进制计数器就是输入一个时钟脉冲计一个数,计数当前值通过4位输出端口输出,输出为BCD码。当计到九且再来一个脉冲时计数输出清零,且进位端给出高电平。再来脉冲继续计数,进位端清零。计数只有在使能端为1时有效,否则保持。当复位端为1时,则计数器清零。

部分源程序及说明:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS

PORT (CLK,RST,EN : IN STD_LOGIC;

CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT10;

ARCHITECTURE behav OF CNT10 IS BEGIN

PROCESS(CLK, RST, EN)

VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

3

IF RST = '1' THEN CQI := (OTHERS =>'0') ; --计数器异步复位

ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿

IF EN = '1' THEN --检测是否允许计数(同步使能)

IF CQI < 9 THEN CQI := CQI + 1; COUT <= '0'; --允许计数, 检测是否小于9 ,设置输出为0

ELSE CQI := (OTHERS =>'0'); COUT <= '1'; --大于9,计数值清零,设置输出为1

END IF; END IF; END IF; CQ<=CQI;

END PROCESS; END;模块图:

(图2)

2.3模块3——六进制计数器。

当使能端是1时,对秒和分的十位进行计数,当计数到5,再来一个脉冲时就变为零。当遇到复位为高电平时,则清零。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT6 IS

PORT (CLK,RST,EN : IN STD_LOGIC;

CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT6;

ARCHITECTURE behav OF CNT6 IS BEGIN

PROCESS(CLK, RST, EN)

VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

IF RST = '1' THEN CQI := (OTHERS =>'0') ; ELSIF CLK'EVENT AND CLK='1' THEN IF EN = '1' THEN

IF CQI < 5 THEN CQI := CQI + 1; COUT <= '0';

ELSE CQI := (OTHERS =>'0'); COUT <= '1';

4

END IF; END IF; END IF; CQ<=CQI;

END PROCESS; END;

图3

2.4模块4——与门。

利用与门把几个进位输出进行相与,得出一分钟的高电平和十秒钟的高电平。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ANDT IS

PORT (A,B:IN STD_LOGIC; Y:OUT STD_LOGIC); END ENTITY ANDT;

ARCHITECTURE ART OF ANDT IS BEGIN

Y<=A AND B;

END ARCHITECTURE ART;

(图4)

2.5顶层设计模块

5

顶层文件是一个原理图文件(图9)

33.1 时序仿真

分频器时序仿真结果:

系统仿真

(图5)仿真时间是100ms,输入脉冲是上面一排,下面是输出脉冲,100ms内有10个脉冲,即输出是一个100Hz时钟信号。

6


数字秒表课程设计报告.doc 将本文的Word文档下载到电脑
搜索更多关于: 数字秒表课程设计报告 的文档
相关推荐
相关阅读