如何设计基于FPGA的万年历

时间:2024-10-30 20:10:51

1、 在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、首先根据所需要的功能,列出工程顶层的输入输出信号列表。

如何设计基于FPGA的万年历

3、我们可以把工程划分成三个模块,分别是万年历计数模块、按键模块和数码管显示模块。

如何设计基于FPGA的万年历

4、计数模块——实现的是万年历计数功能,为方便观看,将一天时间设置为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得到年份。本模块还自动计算当年是否是平闰年。

如何设计基于FPGA的万年历

5、按键模块——4x4矩阵键盘,实现了矩阵键盘的扫描并使用按键消抖功能。

如何设计基于FPGA的万年历

6、数码管模块——实现将年月日的信息显示在数码管上。

如何设计基于FPGA的万年历

7、分别写出顶层模块、数码管显示模块、矩阵键盘扫描模块、万年历计数模块等代码。

© 手抄报圈