数字逻辑课程设计--数字钟的设计(quartus ii)(内附源代码和实习报告以及6篇实习日志)

这篇博客详细记录了一位学生进行数字逻辑课程设计的过程,设计了一个24/12进制的数字钟,包括时、分、秒的60进制和24进制计数器,分频模块,以及显示控制模块。学生通过VHDL编程实现了各模块功能,并进行了仿真验证。在设计过程中,学生遇到了代码错误和仿真问题,但通过不断学习和改进最终成功完成设计。此外,博客还讨论了设计中遇到的问题和改进方向,强调了实践操作和理论知识相结合的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数字逻辑课程设计–数字钟的设计(quartus ii)

说明一下这是之前做的数字逻辑课程设计,代码的话我是测试过的应该没有bug,用到的软件是quartus ii。
在这里插入图片描述

一、数字钟设计实验报告

1.设计内容

(1) 正常计时:先设置当前时间,然后以秒(60)、分(60)、小时(24)计数,要求使用60进制计数器及24进制计数器,以BCD码形式输出小时、分、秒信号
(2)数码管实时显示计时的小时、分、秒。

2.系统总体设计

系统结构框图
在这里插入图片描述

给出结构框图(系统包含的各子模块及连接框图)
在这里插入图片描述

给出各子模块的信号名字及功能
时计数器 :Clk_to_hour: 驱动时计时器的时钟信号
Reset : 恢复原位
SCALE_SEL: 小时的高位显示,低位显示
DATOUT: 输出分针时器的秒钟信号
分计时器:clk_to_minute:驱动分计时器的时钟信号
reset:恢复原位
set_hour:使能输入
CO : 进位输出端
DATOUT :输出分针时器的秒钟信号
秒计时器: clk_to_second:驱动秒计时器的时钟信号
reset:恢复原位
set_min:使能输入
CO : 进位输出端
DATOUT :输出秒针时器的秒钟信号

3.计时器模块设计

1、计时器逻辑框图及输入输出描述(包括每个信号名字)

(1)小时—二十四进制的逻辑框图

Clk_to_hour: 驱动时计时器的时钟信号
Reset : 恢复原位
SCALE_SEL: 小时的高位显示,低位显示
DATOUT: 输出分针时器的秒钟信号
在这里插入图片描述
(2)分–六十进制的逻辑框图

clk_to_minute:驱动分计时器的时钟信号
reset:恢复原位
set_hour:使能输入
CO : 进位输出端
DATOUT :输出分针时器的秒钟信号
在这里插入图片描述
(3)秒—六十进制的逻辑框图

clk_to_second:驱动秒计时器的时钟信号
reset:恢复原位
set_min:使能输入
CO : 进位输出端
DATOUT :输出秒针时器的秒钟信号

在这里插入图片描述

2、子模块功能描述

功能的文字描述:功能的文字描述: 主要是对时,分,秒的计数以及对上一位的进位,例如秒计时器中当reset=0时,读取当前时间,reset=1且clk上升沿时,计数器加1。当秒为59秒,上升沿到来时59归零,datout=1。当count溢出则该位进行清零,并向前进一位。该模块主要是体现计数器计数的功能。

3、VHDL源代码
*-----------------------------------------------------
– 小时24进制或12进制的BCD计数模块
-----------------------------------------------------

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY HOUR_BCD_COUNT IS
PORT(clk_to_hour, reset, SCALE_SEL : IN STD_LOGIC;
                            DATOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END HOUR_BCD_COUNT;

ARCHITECTURE BHV OF HOUR_BCD_COUNT IS
SIGNAL COUNT_SHI, COUNT_GE : STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN 
	PROCESS(clk_to_hour, reset)  	BEGIN
		IF reset = '0'		THEN COUNT_SHI <= "0000"; COUNT_GE <= "0000"; -- 有复位信号,则清除计数。
		ELSIF clk_to_hour'EVENT AND clk_to_hour = '1'    THEN
		   IF SCALE_SEL = '1' THEN  -- 24进制
				IF COUNT_SHI = "0010" AND COUNT_GE = "0011"		THEN COUNT_SHI <= "0000"; COUNT_GE <= "0000";  -- 24进制溢出清零
				ELSIF COUNT_GE < "1001"		THEN COUNT_GE <= COUNT_GE + 1;
				ELSE COUNT_GE <= "0000"; COUNT_SHI <= COUNT_SHI + 1;
				END IF;
			ELSE  -- 12进制
			   IF COUNT_SHI = "0001" AND COUNT_GE = "0001"		THEN COUNT_SHI <= "0000"; COUNT_GE <= "0000";  -- 12进制溢出清零
		      ELSIF COUNT_GE < "1001"		THEN COUNT_GE <= COUNT_GE + 1;
				ELSE COUNT_GE <= "0000"; COUNT_SHI <= COUNT_SHI + 1;
				END IF;
			END IF;
		END IF;
	DATOUT <= COUNT_SHI &a
目 录 第一章 系统概述 1 1.1项目目的 1 1.2项目范围 1 第二章 设计要求内容 2 2.1 设计要求 2 2.2 设计内容 2 第三章 设计方案 3 3.1 总体框图 3 3.2 定时器设计 3 3.3控制器的设计 4 3.4 总电路图 6 第四章 简单元器件 7 第五章 仿真实现 8 结束语 10 参考文献 11 第一章 系统概述 1.1项目目的 运用掌握所学的《数字逻辑数字系统》的基本知识,使用电脑EWB仿真技术,独立完整地设计交通灯电路,以及仿真调试等的综合能力。 通过指导学生循序渐进地独立完成数字电路的设计任务,加深学生对理论知识的理解,提高学生的动手能力,独立分析、解决问题能力,协调能力创造性思维能力。提高学生在数字电路应用方面的实践技能,树立严谨的科学作风,培养学生综合运用理论知识解决实际问题的能力,学生通过电路的设计、安装、调试、整理资料等环节,初步掌握工程设计方法组织实践的基本技能,逐步熟悉开展科学实践的程序方法。 本课程设计培养、启发学生的创造性思维,进一步理解数字系统的概念,掌握小型数字系统的设计方法,掌握小型数字系统的组装调试技术,掌握查阅有关资料的技能。 1.2项目范围 该交通灯系统解决了现代城市交通控制管理问题的现状,结合城乡交通的实际情况阐述了交通灯控制系统的工作原理,给出了一种简单实用的城市交通灯控制系统的硬件电路设计方案。随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。,然而,随着交通量的快速增长缺乏对高速道路的系统研究控制,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道支道、城区同周边地区的交通拥堵状况。
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王多鱼变成鱼

谢谢宝贝们支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值