找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1886|回复: 0
打印 上一主题 下一主题
收起左侧

新人求助!基于verilog HDL的秒表设计

[复制链接]
跳转到指定楼层
楼主
ID:277620 发表于 2018-1-19 10:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
楼主大三刚学完pld,期末课程设计让设计一个基于verilog HDL的秒表,苦思三天才写出来一点点东西,不知道对错,望各位大神指点迷津。指导指导。






hour1  //时的个位
min1   //分的个位
min2   //分的十位
sec1     //秒的个位
sec2   //秒的十位
clk  //100hz时钟输入信号
key1   //清零按键信号

module miaobiao  (hour1,min1,min2,sec1,sec2,clk,key1);
input clk;
input key1;
output[3:0]hour1;
output[3:0]min1;
output[3:0]min2;
output[3:0]sec1;
output[3:0]sec2;
reg hour1,min1,min2,sec1,sec2;
wire key1;

always@(posedge clk or negedge key1)
begin
if(!key1))   //是否需要清零
begin
sec1[3:0]=1'b0;
sec2[3:0]=1'b0;
min1[3:0]=1'b0;
min2[3:0]=1'b0;
hour1[3:0]=1'b0;
else if(!key1)   
begin
sec1[3:0]=sec[3:0]+1'b1;   //秒的个位加1
if(sec1[3:0]==4'ha)   //秒的个位等于10
begin
sec1[3:0]=4'b0;     //秒的个位清零
sec2[3:0]=sec[3:0]+1'b1;  //秒的十位加1
if(sec2[3:0]==4'h6)  //秒的十位为6
begin
sec2[3:0]=4'h0;       //秒的十位清零
min1[3:0]=min1[3:0]+1'b1; //分钟的个位加1
if(sec2[3:0]==4'ha)  
begin
min1[3:0]=4'h0;        //分钟的个位清零
min2[3:0]=min[3:0]+1'b1; //分的十位加1
if(min2[3:0]==4'h6)     //分的十位为6
begin
min2[3:0]=4'h0;      //分的十位清零
hour1[3:0]=hour1[3:0]+1'b1;  //时的个位加1
if(hour[3:0]==4'h1)       //时的个位为1
hout1[3:0]=4'h0;          //时的个位清零(计时器最长计时为1小时)
end
end
end
end
end
end
end
endmodule

秒表.rar

559 Bytes, 下载次数: 24

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表