关于时钟计数器模块,
实现功能时钟计数:
毫秒,秒,分钟.....计数满清零
使用BCD计数,进位加一
按键控制(消抖模块),分频(时钟基准10hz,数码管扫描时钟400hz),计时累加模块
使用同一按键表示(开始,停止,清零)三种功能.同样,可以使用不同的按键控制,个人实现
扩展:可加入定时功能,通过设定的时间蜂鸣器响
操作平台:小梅哥"芯航线"板卡
效果:
设计RTL视图如下
分开截图了 整体好像太大了图片.............
设计基本都是以前笔记实现的模块进行累加的,关于按键消逗,分频,BCD计数,数码管不了解的都可以查看以前的笔记......这里不废话了
部分代码:
同一按键控制3个功能:
ctrl模块: reg [1:0]ctrl_state; always@(posedge sys_clk or negedge rst_n) if(!rst_n)begin clear <= 1'b0; count <= 1'b0; stop <= 1'b0; ctrl_state <= 2'd0; end else if(ButtonSig && ctrl_state == 2'd0)begin//清零 clear <= 1'b1; ctrl_state <= 2'd1; end else if(ButtonSig && ctrl_state == 2'd1)begin//使能计数 count <= 1'b1; ctrl_state <= 2'd2; end else if(ButtonSig && ctrl_state == 2'd2)begin//停止计数 stop <= 1'b1; ctrl_state <= 2'd0; end else begin//无按键状态 clear <= 1'b0; count <= 1'b0; stop <= 1'b0; ctrl_state <= ctrl_state; end timer模块: //计数器状态转换 always@(posedge sys_clk or negedge rst_n) if(!rst_n) timer_state <= 2'b00; else if(count) //使能计数 timer_state <= 2'b01; else if(stop) //停止计数 timer_state <= 2'b10; else timer_state <= timer_state; 计数累加模块: //根据计数器状态设置来选择是否输入计数使能信号 assign cin_0_1 = (timer_state == 2'b01)?En:1'b0; BCD_Counter #( .Conuter_Top(4'd9) ) BCD_Counter_0_1( .sys_clk(sys_clk), .rst_n(rst_n), .cin(cin_0_1), .clr(clr), .cout(cout_0_1), .q(q_0_1) ); BCD_Counter #( .Conuter_Top(4'd9) ) BCD_Counter_s_L( .sys_clk(sys_clk), .rst_n(rst_n), .cin(cout_0_1), .clr(clr), .cout(cout_s_L), .q(q_s_L) ); BCD_Counter #( .Conuter_Top(4'd5) ) BCD_Counter_s_H( .sys_clk(sys_clk), .rst_n(rst_n), .cin(cout_s_L), .clr(clr), .cout(cout_s_H), .q(q_s_H) ); BCD_Counter #( .Conuter_Top(4'd9) ) BCD_Counter_m_L( .sys_clk(sys_clk), .rst_n(rst_n), .cin(cout_s_H), .clr(clr), .cout(cout_m_L), .q(q_m_L) ); BCD_Counter #( .Conuter_Top(4'd5) ) BCD_Counter_m_H( .sys_clk(sys_clk), .rst_n(rst_n), .cin(cout_m_L), .clr(clr), .cout(cout_m_H), .q(q_m_H) ); BCD_Counter #( .Conuter_Top(4'd9) ) BCD_Counter_H( .sys_clk(sys_clk), .rst_n(rst_n), .cin(cout_m_H), .clr(clr), .cout(), .q(q_H) );
curton 2019-4-30 19:10
curton 2019-4-26 12:53
用户1867798 2016-5-25 17:29
西西在冰城 2016-5-25 11:33
用户1275447 2008-3-24 14:10
用户1275447 2008-3-24 13:31
顶
用户1340791 2008-3-20 09:26