数字逻辑与EDA技术课程设计---闹钟
一、功能介绍
本次数字逻辑与EDA技术实验课程设计用FPGA实现了一个总时长为一小时的闹钟,它所具有的功能如下:
基本功能:(1)正常时间显示,按照正常的时钟进行计时;
(2)闹钟时间显示,显示出来设置的闹钟时间;
(3)闹钟触发,时钟走到闹钟时间后触发闹钟。
设计功能:(1)手动调整时间,如果某时刻的时钟时间与正常时间有偏差,可以进行手动调整,使之与正常时间一致;
(2)八路彩灯,时钟走到闹钟时间后,会进行8秒的彩灯闪烁,彩灯依次从全亮到逐渐向中间熄灭,再到向两边闪烁直到全亮,提醒使用者设置的闹钟到点了。
二、设计思路
(1)对本次设计所需要的彩灯以及显示器还有开关进行一个汇总,并提前查阅其各自的管脚,进行分配;
(2)用实验三分频的方法设计出来一个1s的时钟,用于后面的时钟时间显示以及状态转移的持续时间;
(3)分别设计出来时钟自动计时以及手动调节时间的分秒进位,以及目前时钟显示的时间与设置闹钟的时间是否一致;
(4)设计分秒的显示;
(5)用实验四有限状态机的设计方法进行8路彩灯的显示。
三、模块结构
(1)模块一:设计得到1s的时钟信号;
(2)模块二:手动设置与自动计时的控制;
(3)模块三:设置闹钟与闹钟触发;
(4)模块四:手动调整时间;
(5)模块五:分秒显示;
(6)模块六:闹钟触发的8路彩灯显示。
四、代码
module ljw_clock(clk50,clear,set_mod,set_clock,set_option,add_time,led,out1,out2);
(*chip_pin="Y2"*)input clk50;
(*chip_pin="AB28"*)input clear;
(*chip_pin="AC27"*)input set_mod;
(*chip_pin="AC28"*)input set_clock;
(*chip_pin="M23"*)input set_option;
(*chip_pin="M21"*)input add_time;
(*chip_pin="G19,F19,E19,F21,F18,E18,J19,H19"*)output reg[7:0] led;
(*chip_pin="V21,U21,AB20,AA21,AD24,AF23,Y19,AA25,AA26,Y25,W26,Y26,W27,W28"*)output reg[13:0] out1;
(*chip_pin="M24,Y22,W21,W22,W25,U23,U24,G18,F22,E17,L26,L25,J22,H22"*)output reg[13:0] out2;reg[5:0] sec;
reg[5:0] min;//the first module
reg clk1;
reg[24:0] cout;
always@(posedge clk50)
beginif(cout==25'd24999999)begincout = 0;clk1 = ~clk1;endelsecout = cout + 1;
end//the second module
reg[5:0] sec_1;
reg[5:0] min_1;
reg[5:0] sec_2;
reg[5:0] min_2;reg flag;
reg[3:0] CS;
reg[3:0] NS;always@(posedge clk1)
begin// 2-1if(flag==1 && sec-10<clock_sec)beginCS = NS;NS = sec - clock_sec;case(NS)4'd0:NS = s1;4'd1:NS = s2;4'd2:NS = s3;4'd3:NS = s4;4'd4:NS = s5;4'd5:NS = s6;4'd6:NS = s7;4'd7:NS = s8;4'd8:NS = s9;4'd9:NS = s0;default:NS = s0;endcaseend// 2-2if(flag==1 && sec-10>=clock_sec)beginflag = 0;end// 2-3if(set_mod==1)beginif(sec_1==59)beginsec_1 = 0;beginif(min_1==9) min_1 = 0;else min_1 = min_1 + 1;endendelse sec_1 = sec_1 + 1;end// 2-4else if(set_mod==0 && set_clock==0)beginsec_1 = sec_2;min_1 = min_2;end// 2-5if(min==clock_min && sec==clock_sec)beginflag = 1;end
end//the third module
reg[5:0] clock_sec;
reg[5:0] clock_min;always@(posedge add_time)
begin// 3-1if(set_mod==0 && set_clock==0)begin// 3-1-1if(set_option==1)beginif(clear==0)beginif(sec_2==59) sec_2 = 0;else sec_2 = sec_2 + 1;endelse sec_2 = 0;end// 3-1-2elsebeginif(clear==0)beginif(min_2==59) min_2 = 0;else min_2 = min_2 + 1;endelse min_2 = 0;endend// 3-2if(set_mod==0 && set_clock==1)begin// 3-2-1if(set_option==1)beginif(clear==0)beginif(clock_sec==59) clock_sec = 0;else clock_sec = clock_sec + 1;endelse clock_sec = 0;end// 3-2-2elsebeginif(clear==0)beginif(clock_min==59) clock_min = 0;else clock_min = clock_min + 1;endelse clock_min = 0;endend
end//the fourth modulealways@(sec_1 or min_1 or sec_2 or min_2)begin// 4-1if(set_mod==1)beginsec = sec_1;min = min_1;end// 4-2if(set_mod==0 && set_clock==0)beginsec = sec_2;min = min_2;end
end//the fifth module
always@(min or sec or clock_min or clock_sec)
begin// 5-1if(set_clock==0)begin// 5-1-1case(min)6'd0:out1=14'b0000001_0000001;6'd1:out1=14'b0000001_1001111;6'd2:out1=14'b0000001_0010010;6'd3:out1=14'b0000001_0000110;6'd4:out1=14'b0000001_1001100;6'd5:out1=14'b0000001_0100100;6'd6:out1=14'b0000001_0100000;6'd7:out1=14'b0000001_0001111;6'd8:out1=14'b0000001_0000000;6'd9:out1=14'b0000001_0000100;6'd10:out1=14'b1001111_0000001;6'd11:out1=14'b1001111_1001111;6'd12:out1=14'b1001111_0010010;6'd13:out1=14'b1001111_0000110;6'd14:out1=14'b1001111_1001100;6'd15:out1=14'b1001111_0100100;6'd16:out1=14'b1001111_0100000;6'd17:out1=14'b1001111_0001111;6'd18:out1=14'b1001111_0000000;6'd19:out1=14'b1001111_0000100;6'd20:out1=14'b0010010_0000001;6'd21:out1=14'b0010010_1001111;6'd22:out1=14'b0010010_0010010;6'd23:out1=14'b0010010_0000110;6'd24:out1=14'b0010010_1001100;6'd25:out1=14'b0010010_0100100;6'd26:out1=14'b0010010_0100000;6'd27:out1=14'b0010010_0001111;6'd28:out1=14'b0010010_0000000;6'd29:out1=14'b0010010_0000100;6'd30:out1=14'b0000110_0000001;6'd31:out1=14'b0000110_1001111;6'd32:out1=14'b0000110_0010010;6'd33:out1=14'b0000110_0000110;6'd34:out1=14'b0000110_1001100;6'd35:out1=14'b0000110_0100100;6'd36:out1=14'b0000110_0100000;6'd37:out1=14'b0000110_0001111;6'd38:out1=14'b0000110_0000000;6'd39:out1=14'b0000110_0000100;6'd40:out1=14'b1001100_0000001;6'd41:out1=14'b1001100_1001111;6'd42:out1=14'b1001100_0010010;6'd43:out1=14'b1001100_0000110;6'd44:out1=14'b1001100_1001100;6'd45:out1=14'b1001100_0100100;6'd46:out1=14'b1001100_0100000;6'd47:out1=14'b1001100_0001111;6'd48:out1=14'b1001100_0000000;6'd49:out1=14'b1001100_0000100;6'd50:out1=14'b0100100_0000001;6'd51:out1=14'b0100100_1001111;6'd52:out1=14'b0100100_0010010;6'd53:out1=14'b0100100_0000110;6'd54:out1=14'b0100100_1001100;6'd55:out1=14'b0100100_0100100;6'd56:out1=14'b0100100_0100000;6'd57:out1=14'b0100100_0001111;6'd58:out1=14'b0100100_0000000;6'd59:out1=14'b0100100_0000100;default:out1=14'b1111111_1111111;endcase// 5-1-2case(sec)6'd0:out2=14'b0000001_0000001;6'd1:out2=14'b0000001_1001111;6'd2:out2=14'b0000001_0010010;6'd3:out2=14'b0000001_0000110;6'd4:out2=14'b0000001_1001100;6'd5:out2=14'b0000001_0100100;6'd6:out2=14'b0000001_0100000;6'd7:out2=14'b0000001_0001111;6'd8:out2=14'b0000001_0000000;6'd9:out2=14'b0000001_0000100;6'd10:out2=14'b1001111_0000001;6'd11:out2=14'b1001111_1001111;6'd12:out2=14'b1001111_0010010;6'd13:out2=14'b1001111_0000110;6'd14:out2=14'b1001111_1001100;6'd15:out2=14'b1001111_0100100;6'd16:out2=14'b1001111_0100000;6'd17:out2=14'b1001111_0001111;6'd18:out2=14'b1001111_0000000;6'd19:out2=14'b1001111_0000100;6'd20:out2=14'b0010010_0000001;6'd21:out2=14'b0010010_1001111;6'd22:out2=14'b0010010_0010010;6'd23:out2=14'b0010010_0000110;6'd24:out2=14'b0010010_1001100;6'd25:out2=14'b0010010_0100100;6'd26:out2=14'b0010010_0100000;6'd27:out2=14'b0010010_0001111;6'd28:out2=14'b0010010_0000000;6'd29:out2=14'b0010010_0000100;6'd30:out2=14'b0000110_0000001;6'd31:out2=14'b0000110_1001111;6'd32:out2=14'b0000110_0010010;6'd33:out2=14'b0000110_0000110;6'd34:out2=14'b0000110_1001100;6'd35:out2=14'b0000110_0100100;6'd36:out2=14'b0000110_0100000;6'd37:out2=14'b0000110_0001111;6'd38:out2=14'b0000110_0000000;6'd39:out2=14'b0000110_0000100;6'd40:out2=14'b1001100_0000001;6'd41:out2=14'b1001100_1001111;6'd42:out2=14'b1001100_0010010;6'd43:out2=14'b1001100_0000110;6'd44:out2=14'b1001100_1001100;6'd45:out2=14'b1001100_0100100;6'd46:out2=14'b1001100_0100000;6'd47:out2=14'b1001100_0001111;6'd48:out2=14'b1001100_0000000;6'd49:out2=14'b1001100_0000100;6'd50:out2=14'b0100100_0000001;6'd51:out2=14'b0100100_1001111;6'd52:out2=14'b0100100_0010010;6'd53:out2=14'b0100100_0000110;6'd54:out2=14'b0100100_1001100;6'd55:out2=14'b0100100_0100100;6'd56:out2=14'b0100100_0100000;6'd57:out2=14'b0100100_0001111;6'd58:out2=14'b0100100_0000000;6'd59:out2=14'b0100100_0000100;default:out2=14'b1111111_1111111;endcaseend// 5-2elsebegin// 5-2-1case(clock_min)6'd0:out1=14'b0000001_0000001;6'd1:out1=14'b0000001_1001111;6'd2:out1=14'b0000001_0010010;6'd3:out1=14'b0000001_0000110;6'd4:out1=14'b0000001_1001100;6'd5:out1=14'b0000001_0100100;6'd6:out1=14'b0000001_0100000;6'd7:out1=14'b0000001_0001111;6'd8:out1=14'b0000001_0000000;6'd9:out1=14'b0000001_0000100;6'd10:out1=14'b1001111_0000001;6'd11:out1=14'b1001111_1001111;6'd12:out1=14'b1001111_0010010;6'd13:out1=14'b1001111_0000110;6'd14:out1=14'b1001111_1001100;6'd15:out1=14'b1001111_0100100;6'd16:out1=14'b1001111_0100000;6'd17:out1=14'b1001111_0001111;6'd18:out1=14'b1001111_0000000;6'd19:out1=14'b1001111_0000100;6'd20:out1=14'b0010010_0000001;6'd21:out1=14'b0010010_1001111;6'd22:out1=14'b0010010_0010010;6'd23:out1=14'b0010010_0000110;6'd24:out1=14'b0010010_1001100;6'd25:out1=14'b0010010_0100100;6'd26:out1=14'b0010010_0100000;6'd27:out1=14'b0010010_0001111;6'd28:out1=14'b0010010_0000000;6'd29:out1=14'b0010010_0000100;6'd30:out1=14'b0000110_0000001;6'd31:out1=14'b0000110_1001111;6'd32:out1=14'b0000110_0010010;6'd33:out1=14'b0000110_0000110;6'd34:out1=14'b0000110_1001100;6'd35:out1=14'b0000110_0100100;6'd36:out1=14'b0000110_0100000;6'd37:out1=14'b0000110_0001111;6'd38:out1=14'b0000110_0000000;6'd39:out1=14'b0000110_0000100;6'd40:out1=14'b1001100_1111110;6'd41:out1=14'b1001100_1001111;6'd42:out1=14'b1001100_0010010;6'd43:out1=14'b1001100_0000110;6'd44:out1=14'b1001100_1001100;6'd45:out1=14'b1001100_0100100;6'd46:out1=14'b1001100_0100000;6'd47:out1=14'b1001100_0001111;6'd48:out1=14'b1001100_0000000;6'd49:out1=14'b1001100_0000100;6'd50:out1=14'b0100100_1111110;6'd51:out1=14'b0100100_1001111;6'd52:out1=14'b0100100_0010010;6'd53:out1=14'b0100100_0000110;6'd54:out1=14'b0100100_1001100;6'd55:out1=14'b0100100_0100100;6'd56:out1=14'b0100100_0100000;6'd57:out1=14'b0100100_0001111;6'd58:out1=14'b0100100_0000000;6'd59:out1=14'b0100100_0000100;default:out1=14'b1000100_1000100;endcase// 5-2-2case(clock_sec)6'd0:out2=14'b0000001_0000001;6'd1:out2=14'b0000001_1001111;6'd2:out2=14'b0000001_0010010;6'd3:out2=14'b0000001_0000110;6'd4:out2=14'b0000001_1001100;6'd5:out2=14'b0000001_0100100;6'd6:out2=14'b0000001_0100000;6'd7:out2=14'b0000001_0001111;6'd8:out2=14'b0000001_0000000;6'd9:out2=14'b0000001_0000100;6'd10:out2=14'b1001111_0000001;6'd11:out2=14'b1001111_1001111;6'd12:out2=14'b1001111_0010010;6'd13:out2=14'b1001111_0000110;6'd14:out2=14'b1001111_1001100;6'd15:out2=14'b1001111_0100100;6'd16:out2=14'b1001111_0100000;6'd17:out2=14'b1001111_0001111;6'd18:out2=14'b1001111_0000000;6'd19:out2=14'b1001111_0000100;6'd20:out2=14'b0010010_0000001;6'd21:out2=14'b0010010_1001111;6'd22:out2=14'b0010010_0010010;6'd23:out2=14'b0010010_0000110;6'd24:out2=14'b0010010_1001100;6'd25:out2=14'b0010010_0100100;6'd26:out2=14'b0010010_0100000;6'd27:out2=14'b0010010_0001111;6'd28:out2=14'b0010010_0000000;6'd29:out2=14'b0010010_0000100;6'd30:out2=14'b0000110_0000001;6'd31:out2=14'b0000110_1001111;6'd32:out2=14'b0000110_0010010;6'd33:out2=14'b0000110_0000110;6'd34:out2=14'b0000110_1001100;6'd35:out2=14'b0000110_0100100;6'd36:out2=14'b0000110_0100000;6'd37:out2=14'b0000110_0001111;6'd38:out2=14'b0000110_0000000;6'd39:out2=14'b0000110_0000100;6'd40:out2=14'b1001100_0000001;6'd41:out2=14'b1001100_1001111;6'd42:out2=14'b1001100_0010010;6'd43:out2=14'b1001100_0000110;6'd44:out2=14'b1001100_1001100;6'd45:out2=14'b1001100_0100100;6'd46:out2=14'b1001100_0100000;6'd47:out2=14'b1001100_0001111;6'd48:out2=14'b1001100_0000000;6'd49:out2=14'b1001100_0000100;6'd50:out2=14'b0100100_0000001;6'd51:out2=14'b0100100_1001111;6'd52:out2=14'b0100100_0010010;6'd53:out2=14'b0100100_0000110;6'd54:out2=14'b0100100_1001100;6'd55:out2=14'b0100100_0100100;6'd56:out2=14'b0100100_0100000;6'd57:out2=14'b0100100_0001111;6'd58:out2=14'b0100100_0000000;6'd59:out2=14'b0100100_0000100;default:out2=14'b1000100_1000100;endcaseend
end//the sixth module
parameter s0=4'd0,s1=4'd1,s2=4'd2,s3=4'd3,s4=4'd4,s5=4'd5,s6=4'd6,s7=4'd7,s8=4'd8,s9=4'd9;always@(CS)
begincase(CS)4'd0:led=8'b00000000; 4'd1:led=8'b11111111;4'd2:led=8'b11111111;4'd3:led=8'b11100111;4'd4:led=8'b11000011;4'd5:led=8'b10000001;4'd6:led=8'b11000011;4'd7:led=8'b11100111;4'd8:led=8'b11111111;4'd9:led=8'b00000000;default:led=8'b00000000;endcase
endendmodule
数字逻辑与EDA技术课程设计---闹钟相关推荐
- 【数字逻辑与EDA技术】verilog HDL语法-期末考试重点总结
一.相关术语 BST(Boundary Scan Test)边界扫描测试 CAD(Computer Aided Design) 计算机辅助设计 CAE(Computer Aided Engineeri ...
- 数字逻辑与EDA技术期末考试复习重点
数电重点 一.数制和码制 (1)常见数制,二进制和十进制的转换 (2)反码补码运算 (3)计算机以补码的方式存储(算原码),后面的常见编码了解一下 二.逻辑代数 (1)与或非.异或.同或器件真值表(怎 ...
- 数字电子技术课程设计——盲人报时钟
数字电子技术课程设计 盲人报时钟 任务书 0.1 设计课题 盲人报时钟 0.2 设计目的 (1) 掌握盲人报时钟的设计.组装和调试方法. (2) 掌握声响模块的设计. 0.3 设 ...
- 数字电子技术课程设计-八路抢答器
数字电子技术课程设计-八路抢答器 大学生活逐渐虚度光阴,不知道干了啥都已经快大三了~~~~ 做的东西还是有一些bug,到最后答辩完事之后就开始复习期末考试了,没时间再整 有错误请指正 目录 第一章 课 ...
- 《数字电子技术课程设计》课程笔记(二)————multisim仿真模拟
仿真源文件:链接:百度网盘 请输入提取码 提取码:1234 一.前言 对于一个完整的设计过程而言,仿真是一个必不可少的过程,因为仿真给了你一个重要的数据参考,信心来源,在之后的硬件设计过程中,心中的引 ...
- 浙江理工大学数字电子技术课程设计
<数字电子技术课程设计>报告 班级: 20计算机科学与技术(3)班 学号: 2020329621193 姓名 ...
- 计算机微机原理与接口技术课程设计课题,微机原理与接口技术课程设计报告
<微机原理与接口技术课程设计报告>由会员分享,可在线阅读,更多相关<微机原理与接口技术课程设计报告(12页珍藏版)>请在人人文库网上搜索. 1.微机原理与接口技术课程设计设计题 ...
- 【汇编】微机原理与接口技术课程设计
本文是微机原理与接口技术课程设计 完整的程序和实验报告开源在我的Github上: https://github.com/zstar1003/XDU_Homework/tree/main/%E5%BE% ...
- 计数器的设计--电子技术课程设计说明书--模99
< 计数器的设计> 电子技术课程设计说明书 目录 < 计数器的设计> 电子技术课程设计说明书 引言 方案比较 电路设计 电路的仿真 结论 参考文献: 引言 计数是一种最简单基本 ...
最新文章
- 通过这12张手绘图,搞懂什么是微服务架构
- 基于mysql主从同步的proxy读写分离
- linux 笔记: screen
- php 新浪面试题,新浪网技术部笔试题
- Android之在linux终端执行shell脚本文件(通过aapt)得到apk包名
- 4am永远 鼠标按键设置_4AM碾压性夺冠创PCL历史!韦神赛后采访彰显霸气
- Python学习之路(一)字符串
- C#高级编程9 第19章 程序集
- c++进阶(十八)stack容器和queue容器
- PHP学习之二:变量
- JDK API 1.6.0中文版纯分享
- jmeter接口自动化
- 调用微信方法报错errMsg:chooseImage:fail, the permission value is offline verifying
- uni-app 微信、支付宝APP支付流程
- 计算机用户文件夹加密,windows7电脑文件夹怎么加密
- 周易六十四卦——震为雷卦
- SWOT分析法——进行项目管理的高效方法
- Django--学生管理系统(django慢更)
- 计算机如何默认一种打字法,如何设置输入法,教您如何设置电脑的默认输入法...
- 纯属娱乐的涂色绘画系统
热门文章
- 18.Adaptive AUTOSAR 架构-核心类型CORE
- java建站_Java建站流程 ---------- 1.Eclipse 与 Maven
- Qt实战:Qt5.11.1安装与MSVC配置
- The sandbox is not in sync with the Podfile.lock
- 海康摄像头中的SADP协议(Smart Active Device Protocol,智能活动设备协议)和ONVIF协议(Open Network Video Interface Forum)是什么?
- 建筑业的利润为何下滑的这么快?
- linux终端命令大全
- java进度条代码,java更新进度条
- Java轻松解决百度文库复制、下载!程序员你能不掌握???
- Android Video Player. 安卓视频播放器,封装 MediaPlayer、ExoPlayer、IjkPlayer。模仿抖音,悬浮播放,广告播放,列表播放,弹幕