日历android实训报告,EAD万年历实训报告及Verilog HDL源码

这篇实训报告详细介绍了使用Verilog HDL设计数字日历的过程,包括设计要求、设计思路、模块程序设计、调试过程、功能测试等。设计的数字日历能显示年、月、日、时、分、秒,并具备校对和自动切换功能。通过EDA实训仪实现了这一设计,并进行了功能验证。
摘要由CSDN通过智能技术生成

《EDA技术及应用》实训报告1  系统设

1.1 设计要求

1.1.1 设计任务

设计并制作一台数字日历。

1.1.2 性能指标要求

⑴用Verilog HDL语言设计一个数字日历。

⑵数字日历能显示年、月、日、时、分和秒。

⑶通过开关分别控制对年、月、日或时、分、秒校对及自动切换、,并且

运用按钮对年、月、日或时、分、秒校对。

⑷通过按钮对数码管全部清零。

1.2 设计思路及设计框图

1.2.1设计思路

通过EDA课程的学习,可知运用Verilog HDL语言设计一个数字日历

括计时器模块(jsq60、jsq)、年月日模块(nyr2016)、控制模块(contr)、

校时选择模块(mux_4)、显示选择模块(mux_16);然后将各个模块连接起来画成原理图再下载到实训仪上,调节开关及按钮来实现数字日历的功能。

1.2.2总体设计框图

4d07c5262f6165e769cb9f986272938a.png

2  各个模块程序的设计

地电平,用于万年历的自动倒换的显  ⑴使用了一个16分频的电路,输出rc是周期为16秒的方波,即8秒高电平、8秒示模式。

f085c43cf2f92400b1f99b830e3a9713.png

分析:如图所示,其中,clk是1秒时钟输入端,k1和k2是控制输入端,当k1k2=00或11时是自动显示模式,控制数码显示器用8秒钟时间显示年、月、日,另外8秒时钟时间显示时、分、秒;当k1k2=01时,仅显示年、月、日,同时用j1,j2,和j3校秒、校分、校时;当k1k2=10时,仅显示年、月、日,同时用j1、j2和j3校日、校月和校年;k是控制输出端。

⑵分别设计一个能显示年月日和时分秒的程序

校准年月日和秒分时的原理图如下:

7bcf191537d22f69c675cc91d438f2ff.png

分析:①当k=0时,开关j1,j2,j3校秒时分然后将信号分别送到jsq模块的jm(校秒)、jf(校分)、js(校时)。

②当k=1时,开关j1,j2,j3校年月日然后将信号分别送到nyr2009模块的jr(校日)、jy(校月)、jn(校年)。

计算年月日的模块如下:

99b3987ab7e4772c69df6beaa543e2e1.png

分析:clrn是异步清除输入端,低电平有效;clk是时钟输入端,上升沿有效;jn、jy和jr分别是校年、校月、校日输入端;qn[15..0]、qy[7..0]、qr[7..0]分别是年、月、日的输出端。

显示时分秒与年月历的模块如下:

<

基于FPGA设计的万年历数字时钟课程设计Quartus工程源码+设计报告文档资料,可以做为你的学习设计参考。 系统总体设计 2.1.1 系统功能介绍 本次万年历实现的功能有: (1)年月日、时分秒的走时、设置及其显示。 (2)闹钟功能、闹钟设置及其闹钟设置显示。 2.1.2 系统硬件介绍 本次万年历设计使用的硬件资源有:6个数码管、三个微动开关、两个拨码开关和两个LED灯。 其中,6个数码管选择显示年月日、时分秒及其闹钟设置的时分秒。三个按键分别为翻页按键(选择数码管显示内容)、选择按键(选择需调整的内容)、加一按键(调整的内容加一),用于翻页和时间及其闹钟的设置。两个拨码开关分别为闹钟使能开关和复位开关,用于闹钟的打开及其关闭和将整个系统复位。两个LED灯分别为闹钟开关状态和闹钟标志(代替蜂鸣器)。 2.1.3 系统总体框图介绍 整个系统采用自顶向下的设计方法,从系统的总体功能出发,将整个系统划分为多个模块,然后再将各个模块划分为多个功能部分,编程完成后将各个部分联系起来组成整个系统。 module calendar(system_clk,reset,key_turn,key_switch,key_add,switch_alarm,led,beep,hex0,hex1,hex2,hex3,hex4,hex5); input system_clk,reset,key_turn,key_switch,key_add,switch_alarm;//系统时钟、复位、三个按键和一个拨码开关 output led,beep; //LED灯和蜂鸣器 output [6:0] hex0; //输出:数码管0 output [6:0] hex1; //输出:数码管1 output [6:0] hex2; //输出:数码管2 output [6:0] hex3; //输出:数码管3 output [6:0] hex4; //输出:数码管4 output [6:0] hex5; //输出:数码管5 wire second_add,minute_add,hour_add,day_add,month_add,year_add,alarm_second_add,alarm_minute_add,alarm_hour_add; //专属增一信号 wire [1:0] flag_turn; //翻页状态信号 wire [1:0] flag_switch; //闪烁数码管选择信号 wire select_sign; //选择状态 wire [5:0] second; //秒 wire [5:0] minute; //分 wire [4:0] hour; //小时 wire [4:0] day; //日 wire [3:0] month; //月 wire [6:0] year; //年 wire [5:0] alarm_second; //闹钟秒 wire [5:0] alarm_minute; //闹钟分 wire [4:0] alarm_hour; //闹钟小时 //例化按键模块 key_drive_module use_key_drive_module( .system_clk (system_clk), .reset (reset), .key_turn (key_turn), .key_switch (key_switch), .key_add (key_add), .flag_switch (flag_switch), .flag_turn (flag_turn), .second_add (second_add), .minute_add (minute_add), .hour_add (hour_add), .day_add (day_add), .month_add (month_add), .year_add (year_add), .alarm_second_add (alarm_second_add), .alarm_minute_add (alarm_minute_add), .alarm_hour_add (alarm_hour_add), .select_sign (select_sign) ); //例化时钟模块 clock
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值