名称:数字跑表设计Verilog代码ISE仿真
软件:ISE
语言:Verilog
代码功能:
数字跑表
/信号定义:
CLK:CLK为时钟信号;
CLR:为异步复位信号;
PAUSE:为暂停信号;
MSH,MSL:百分秒的高位和低位
SH,SL:秒信号的高位和低位
MH,ML:分钟信号的高位和低位。*/
nodule paobiaoput CLKnput CLR,nput PAUSE,
output 3: 0 MSH, MSL, SH,SL,MH,M
∥自己实现逻辑代码endmodule
完成指标:1)能够实现百分秒的高位和低位计时;
2)能够实现异步清零复位
3)能够实现暂停
4)能够实现秒信号的高位和低位,分钟信号的高位和低位计时;
5)附加功能,例如增加到小时信号的计数
提示
1)CLK为百分秒的驱动信号,上升沿有效。当CLK上升沿跳变时MSL加1,当MSL累加到10时MSH加1
2)MSH,MSL为百分秒计数的高位和低位,每计满100,产生一个进位信号用秒信号计数。同理SH,SL,MH,ML的计数也是同样的逻辑
3)CLR为异步复位信号,指只有在CLK下降沿时所有计数归零。
4)当计时满60分钟时归零重新开始计时。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1.工程文件
2.程序文件
3.测试文件
4.程序运行
5.仿真
CLR异步清零,下降沿清零
暂停按键,按下暂停,再按继续计时
暂停按键,按下暂停,再按继续计时
秒表计时
部分代码展示:
`timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 21:10:27 01/10/2019 // Design Name: // Module Name: paobiao // Project Name: // Target Devices: // Tool versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module paobiao( input CLK, input CLR,//异步清零,下降沿清零 input PAUSE,//按一次暂停,再按一次继续 output [3:0] MSH,MSL,SH,SL,MH,ML ); reg zanting=0;//暂停信号,为1时暂停,为0时正常计时 always@(posedge PAUSE) //按一次PAUSE,zanting变化一次 zanting<=~zanting; //计时 reg [7:0] hun_second_count_reg=7'd0;//百分之秒,0.01-0.99 reg [7:0] hun_second_count=7'd0; reg second_enable=0;//秒计数 always@(posedge CLK or negedge CLR) begin if(CLR==0) begin hun_second_count_reg<='d0;//清零 end else if(zanting) hun_second_count_reg<=hun_second_count_reg;//暂停 else if(hun_second_count_reg>='d99) begin hun_second_count_reg<='d0; second_enable<='d1;//计数到99产生下一级计数脉冲 end else begin hun_second_count_reg<=hun_second_count_reg+'d1;//百分之秒计时 second_enable<='d0;
击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1142
337