Abstract
将电路分成不同的层次和模块分别进行设计,然后组合,实现电路功能。
Instruction
数字钟的功能:
- 准确计时,以数字显示时、分、秒;
- 具有分、时校时功能;
- 整点报时;
- 闹钟;
指定:
/////////////////////////////////////////////////////////////////////
管脚 // 端口
-----------------------------------------------------------
SW0 复位(0有效)
-----------------------------------------------------------
SW1 校时调分钟
----------------------------------------------------------
SW2 校时调小时
----------------------------------------------------------
SW3 mode(闹钟定时模式)
----------------------------------------------------------
SW4 设置闹钟的分钟
----------------------------------------------------------
SW5 设置闹钟的小时
----------------------------------------------------------
SW6 ctrl_bell(关闭闹钟0有效)
----------------------------------------------------------
SW7 输出时钟选择(0-1hz,1-5hz)
----------------------------------------------------------
CLOCK_50 输入时钟
----------------------------------------------------------
HEX5--4 显示小时
----------------------------------------------------------
HEX3--2 显示分钟
----------------------------------------------------------
HEX1--0 显示秒
----------------------------------------------------------
LEDG8 表示闹钟或整点报时
////////////////////////////////////////////////////////////////////
分析:
数字钟主体电路的设计
1. 模24计数器
//counter24.v
2. 模60计数器
//counter60.v
3. 主体电路
//top_clock.v
1 //top_clock.v
2 module top_clock(Hour,Minute,Second,_1HZ,ncR,AdjMinKey,AdjHrKey);
3 input _1HZ,ncR,AdjMinKey,AdjHrKey;
4 output wire [7:0]Hour,Minute,Second;
5 supply1 Vdd;
6 wire MinCP,HrCP;
7
8 //Hour:Minute:Second counter
9 counter60 UT1(Second,ncR,Vdd,_1HZ); //second counter
10 counter60 UT2(Minute,ncR,Vdd,~MinCP); //minute counter
11 counter24 UT3(Hour[7:4],Hour[3:0],ncR,Vdd,~HrCP); //hour counter
12
13 //generate singal of minute counter
14 assign MinCP=AdjMinKey?_1HZ:(Second==8'h59);
15 //generate singal of hour counter
16 assign HrCP=AdjHrKey?_1HZ:({Minute,Second}==16'h5959);
17
18 endmodule
方框图:
仿真结果
4. 分频模块
//参考无双的万用分频器
扩展电路的设计
1. 整点报时
//radio.v
2.闹钟
//bell.v
多功能数字钟顶层电路设计
//complete_clock.v
另一种实现方式:方框图
Conclusion
数字钟也算是一个经典的课设,尝试在DE2上实现。当然功能还可扩展,唯一待解决的问题是DE2没有配置蜂鸣器,暂时用LEDG8接收500hz和1Khz的频率来代替蜂鸣器的效果。(不够完美:()。
Reference
罗杰 <Verilog HDL与数字ASIC设计基础> 华科