名称:12小时数字钟Verilog代码Quartus 开发板(文末获取)
软件:Quartus
语言:Verilog
代码功能:
12小时数字钟
1. 设计一个能显示1/10秒、秒、分、时的12小时数字钟。
2. 熟练掌握各种计数器的使用。
3. 能用计数器构成十进制、六十进制、十二进制等所需进制的计数器。
4. 能用低位的进位输出构成高位的计数脉冲。
5.完成全部流程:设计规范文档、模块设计、代码输入、功能仿真、约束与综合、布局布线、时序仿真、下载验证等。
教学提示:
1、时钟源使用频率为0.1Hz的连续脉冲。
2、设置两个按钮,一个供“开始”及“停止”用,一个供系统“复位”用。
3、时钟显示使用数码管显示。
4、“时显示”部分应注意12点后显示1点。
5、注意各部分的关系,由低位到高位逐级设计、调试。
本代码已在开发板验证,开发板如下,其他开发板可以修改管脚适配:
1. 工程文件
2. 程序文件
3. 程序编译
4. 管脚分配
5. RTL图(电路结构图)
6. testbench
7. 仿真图
部分代码展示:
//十进制 module counter_10 ( input clk,//时钟 input reset_key,//系统“复位”用 output [3:0] cnt,//计数值 output reg cout//计满进位 ); parameter num=4'd10; reg [3:0] cnt_buf=4'd0;//计数值 always@(posedge clk or negedge reset_key) if(reset_key==0)begin//系统“复位”用 cnt_buf<=0; cout<=0; end else//正常计数 if(cnt_buf<num-4'd1)begin cnt_buf<=cnt_buf+4'd1;//计数0——9 cout<=0; end else begin cnt_buf<=4'd0;//计数0——9 cout<=1; end assign cnt=cnt_buf; endmodule
源代码
扫描文章末尾的公众号二维码