一、功能介绍

本次数字逻辑与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技术课程设计---闹钟相关推荐

  1. 【数字逻辑与EDA技术】verilog HDL语法-期末考试重点总结

    一.相关术语 BST(Boundary Scan Test)边界扫描测试 CAD(Computer Aided Design) 计算机辅助设计 CAE(Computer Aided Engineeri ...

  2. 数字逻辑与EDA技术期末考试复习重点

    数电重点 一.数制和码制 (1)常见数制,二进制和十进制的转换 (2)反码补码运算 (3)计算机以补码的方式存储(算原码),后面的常见编码了解一下 二.逻辑代数 (1)与或非.异或.同或器件真值表(怎 ...

  3. 数字电子技术课程设计——盲人报时钟

    数字电子技术课程设计 盲人报时钟 任务书 0.1  设计课题 盲人报时钟 0.2  设计目的 (1)     掌握盲人报时钟的设计.组装和调试方法. (2)     掌握声响模块的设计. 0.3  设 ...

  4. 数字电子技术课程设计-八路抢答器

    数字电子技术课程设计-八路抢答器 大学生活逐渐虚度光阴,不知道干了啥都已经快大三了~~~~ 做的东西还是有一些bug,到最后答辩完事之后就开始复习期末考试了,没时间再整 有错误请指正 目录 第一章 课 ...

  5. 《数字电子技术课程设计》课程笔记(二)————multisim仿真模拟

    仿真源文件:链接:百度网盘 请输入提取码 提取码:1234 一.前言 对于一个完整的设计过程而言,仿真是一个必不可少的过程,因为仿真给了你一个重要的数据参考,信心来源,在之后的硬件设计过程中,心中的引 ...

  6. 浙江理工大学数字电子技术课程设计

    <数字电子技术课程设计>报告 班级:      20计算机科学与技术(3)班         学号:             2020329621193                姓名 ...

  7. 计算机微机原理与接口技术课程设计课题,微机原理与接口技术课程设计报告

    <微机原理与接口技术课程设计报告>由会员分享,可在线阅读,更多相关<微机原理与接口技术课程设计报告(12页珍藏版)>请在人人文库网上搜索. 1.微机原理与接口技术课程设计设计题 ...

  8. 【汇编】微机原理与接口技术课程设计

    本文是微机原理与接口技术课程设计 完整的程序和实验报告开源在我的Github上: https://github.com/zstar1003/XDU_Homework/tree/main/%E5%BE% ...

  9. 计数器的设计--电子技术课程设计说明书--模99

    < 计数器的设计> 电子技术课程设计说明书 目录 < 计数器的设计> 电子技术课程设计说明书 引言 方案比较 电路设计 电路的仿真 结论 参考文献: 引言 计数是一种最简单基本 ...

最新文章

  1. 通过这12张手绘图,搞懂什么是微服务架构
  2. 基于mysql主从同步的proxy读写分离
  3. linux 笔记: screen
  4. php 新浪面试题,新浪网技术部笔试题
  5. Android之在linux终端执行shell脚本文件(通过aapt)得到apk包名
  6. 4am永远 鼠标按键设置_4AM碾压性夺冠创PCL历史!韦神赛后采访彰显霸气
  7. Python学习之路(一)字符串
  8. C#高级编程9 第19章 程序集
  9. c++进阶(十八)stack容器和queue容器
  10. PHP学习之二:变量
  11. JDK API 1.6.0中文版纯分享
  12. jmeter接口自动化
  13. 调用微信方法报错errMsg:chooseImage:fail, the permission value is offline verifying
  14. uni-app 微信、支付宝APP支付流程
  15. 计算机用户文件夹加密,windows7电脑文件夹怎么加密
  16. 周易六十四卦——震为雷卦
  17. SWOT分析法——进行项目管理的高效方法
  18. Django--学生管理系统(django慢更)
  19. 计算机如何默认一种打字法,如何设置输入法,教您如何设置电脑的默认输入法...
  20. 纯属娱乐的涂色绘画系统

热门文章

  1. 18.Adaptive AUTOSAR 架构-核心类型CORE
  2. java建站_Java建站流程 ---------- 1.Eclipse 与 Maven
  3. Qt实战:Qt5.11.1安装与MSVC配置
  4. The sandbox is not in sync with the Podfile.lock
  5. 海康摄像头中的SADP协议(Smart Active Device Protocol,智能活动设备协议)和ONVIF协议(Open Network Video Interface Forum)是什么?
  6. 建筑业的利润为何下滑的这么快?
  7. linux终端命令大全
  8. java进度条代码,java更新进度条
  9. Java轻松解决百度文库复制、下载!程序员你能不掌握???
  10. Android Video Player. 安卓视频播放器,封装 MediaPlayer、ExoPlayer、IjkPlayer。模仿抖音,悬浮播放,广告播放,列表播放,弹幕