1功用概述
万年历是记载必定时刻范围内的年历,其称号仅仅一种标志,表明时刻跨度大。因为其功用十分常用,且极为便利人们查询运用,因而广泛运用于挂钟、历书出版物、电子产品、电脑软件和手机运用等职业中。
与传统计时东西如挂钟日历等比较,数字万年历具有精确度高、本钱低价、运转安稳、功用多样等很多长处,因而国内外许多规划人员先后进行了相关规划开发。其间,依据FPGA开发除规划简练、开发本钱低、电路简练等,更具有功用规划灵敏方面的优势。只需求在软件上做简略修正即可增加不同功用,如闹钟、阴阳历对照等。
在FPGA规划中,数字万年历归于小规模集成电路。从原理上来讲,是典型的数字电路,包含组合逻辑电路和时序电路。在本事例中详细功用要求如下:
1. 上板复位后从元年1月1号开端计数,为便利上板调试,将一天的时刻紧缩为1秒;
2. 按键用于设置日历,按下按键0进入设置状况,再次按下按键0退出设置状况;
3. 按键1用来挑选想要设置的年月日的各个位;
4. 按键2在设置状况时进行计数设置,每按一次数码管显现数字加1;
5. 平年365天(52周+1天),闰年366天(52周+2天),其间平年2月28天,闰年2月29天。
6. 闰年:每400年整一闰,或每4年且不为百年的一闰。即能被400整除,或不能被100整除但能被4整除的年份为闰年。
2 规划思路
首要依据所需求的功用,列出工程顶层的输入输出信号列表。如下表:
咱们能够把工程划分红三个模块,分别是万年历计数模块、按键模块和数码管显现模块。
1. 计数模块——完成的是万年历计数功用,为便利观看,将一天时刻设置为1秒;日计数器dat_cnt、月份计数器mon_cnt_h、mon_cnt_1、mon_2_h、mon_2_1分别为大月小月以及平年闰年的2月计数器、年份计数器yea_one、yea_ten、yea_hun、yea_tho分别为年份的个十百千位,由yea_cnt_tol 《= yea_cnt1000 + yea_cnt100 + yea_cnt10 + yea_one得到年份。本模块还主动核算当年是否是平闰年。
信号列表如下:
2. 按键模块——4×4矩阵键盘,完成了矩阵键盘的扫描并运用按键消抖功用。
信号列表如下:
3. 数码管模块——完成将年月日的信息显现在数码管上。
信号列表如下:
3、程序规划