图中存在较多的模块,因此在此将每个模块的功能做简单介绍:
|
|
normal_keys_detect |
独立按键消抖模块 |
Dig_Led_Driver |
数码管驱动模块 |
Clock_Control |
时钟控制模块 |
Bin_to_BCD |
二进制转BCD格式模块,将时、分、秒计数器的值转换为BCD格式,以送往数码管显示 |
MUX |
最右侧三个多路选择器负责根据时分秒的显示使能信号进行对应数码管位的亮灭控制 |
表4-3 数字钟实验模块功能说明
另外,Clock_Control模块为综合模块,内部包含了时、分、秒、时钟计数器模块和时间设定模块,该模块的内部结构这里小梅哥不做过多介绍,详细请参看代码。
五、 代码组织方式
本实验主要学习由顶向下的设计流程,代码均为常见风格,这里不多做介绍。希望读者能够通过代码架构,学习领会这种自顶向下的设计结构的优势。
六、 关键代码解读
本设计中,顶层模块主要实现了各个模块的例化和数码管显示使能的多路控制,相信看了图4-1后,便能理解顶层代码的含义。由于本系统涉及到的模块较多,采用文档的形式很难简洁的讲解清楚,因此,综合实验,小梅哥以后将不再进行关键代码的解读。反之,小梅哥会尽快进行视频的录制,对综合实验采用视频的方式讲解,以使读者快速理解架构。
七、 测试平台设计
本系统为低速系统,采用Modelsim仿真耗时长,而且波形不便于观察。因此仿真略去。大家可以对每个子模块进行仿真,以验证其正确性。
八、 仿真分析
九、 下板验证
此次,小梅哥采用很早以前购买的21EDA的板子进行了下板测试,实测功能完备。以下为测试照片(渣渣像素,请各位谅解)。
十、 总结
本实验实现了数码钟的功能,并可以通过4个按键进行时间的设置,因为时间的关系,小梅哥没有在文档中进行详细的介绍,请大家谅解。
文章评论(0条评论)
登录后参与讨论