完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
/*信号定义:
CLR: 异步复位信号 CLK: 时钟信号 PAUSE:暂停信号 MUH,MSL:百分秒的高位和低位 SH,SL:秒信号的高位和低位 MH,ML:分钟信号的高位和低位*/ module paobiao(CLR,CLK,PAUSE,MUH,MSL,SH,SL,MH,ML); input CLK,CLR; input PAUSE; output[3:0] MSH,MSL,SH,SL,MH,ML; reg[3:0] MSH,MSL,SH,SL,MH,ML; reg cn1,cn2; //cn1为百分秒向秒的进位,cn2为秒向分的进位 //百分秒计数进程,每计数100,cn1产生一个进位 always @(posedge CLK or posedge CLR) begin if(CLR) begin //异步复位 {MSH,MSL}<=8'h00; cn1<=0; end else if(!PAUSE) //PAUSE为0时正常计数,为1是暂停计数 begin if(MSL==9) begin MSL<=0; if(MSH==9) begin MSH<=0; cn1<=1; end else MSH<=MSH+1; end else begin MSL<=MSL+1; cn1<=0; end end end //秒计数进程,每计满60,cn2产生一个进位 always@(posedge cn1 or posedge CLR) begin if(CLR) begin //异步复位 {SH,SL}<=8'h00; cn2<=0; end else if(SL==9) //低位是否为9 begin SL<=0; if(SH==5) begin SH<=0; cn2<=1;end else SH=SH+1; end else begin SL<=SL+1; cn2<=0; end end //分钟计数进程,每满60,自动清零 always@(posedge cn2 or posedge CLR) begin if(CLR) begin //异步复位 {MH,ML}<=8'h00; end else if(ML==9) begin //低位是否为9 ML<=0; if(MH==5) MH<=0; else MH=MH+1; end else ML<=ML+1; end endmodule |
|
相关推荐
4个回答
|
|
编译时没提示的吗? 端口名称和里面寄存器名称核对一下 有点乱
|
|
|
|
有一个什么错误?
|
|
|
|
我知道什么错了,根本是我的modelsim证书没搞好,一直不能编译。大神这个的测试程序怎么写。。
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1403 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1053 浏览 0 评论
2474 浏览 1 评论
2177 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
2445 浏览 0 评论
1916 浏览 52 评论
6020 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 19:37 , Processed in 0.951346 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号