题解 | #加减计数器#

加减计数器

http://www.nowcoder.com/practice/9d50eb2addaf4a37b7cd5a5ee7b297f6

`timescale 1ns/1ns

module count_module(
	input clk,
	input rst_n,
	input mode,
	output reg [3:0]number,
	output reg zero
	);

reg    [3:0]    num_reg;

always@(posedge clk or negedge rst_n)begin
    if(!rst_n)begin 
       num_reg <= 4'd0; 
    end
    else    if((mode) && (num_reg == 4'd9))begin 
       num_reg <= 4'd0; 
    end
    else    if((!mode) && (num_reg == 4'd0))begin
       num_reg <= 4'd9; 
    end
    else    if(mode)begin 
       num_reg <= num_reg + 1'b1; 
    end
    else    if(!mode)begin 
       num_reg <= num_reg - 1'b1; 
    end   
end

always@(posedge clk or negedge rst_n)begin 
    if(!rst_n)begin 
       zero <= 1'b0; 
    end
    else    if(num_reg == 4'd0)begin 
       zero <= 1'b1; 
    end
    else    begin 
        zero <= 1'b0;
    end       
end  

always@(posedge clk or negedge rst_n)begin 
    if(!rst_n)begin 
       number <= 4'd0; 
    end
    else    begin 
       number <= num_reg; 
    end
end

endmodule
全部评论

相关推荐

10-31 13:04
南华大学 Java
嵌入式的小白:很多面试,面试前不会去打扰cto的,但一般cto不会在这些小事上刷人,只能说这个cto比较操心,啥重要不重要,紧急不紧急的,估计都会过问,平淡看待吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务