题解 | #加减计数器#

加减计数器

https://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] cnt ;
always@(posedge clk or negedge rst_n) begin
	if(!rst_n)
		cnt <= 'd0;
	else if (cnt == 'd9 && mode == 'd1)
		cnt <= 'd0 ;
	else if (cnt == 'd0 && mode == 'd0)
		cnt <= 'd9 ;
	else if(mode)
		cnt <= cnt + 'd1 ;
	else 
		cnt <= cnt - 'd1 ;
end

always@(posedge clk or negedge rst_n) begin
	if(!rst_n)
		zero <= 'd0;

	else if(cnt == 'd0)
		zero <= 'd1 ;
	else
		zero <= 'd0 ;
end

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




endmodule

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 11:27
明天又是董事长面,啥时候是个头啊
积极向上的林同学:董事长亲自面试
点赞 评论 收藏
分享
05-19 15:21
已编辑
门头沟学院 Java
白火同学:你才沟通了200,说实话,北上广深杭这里面你连一座城市的互联网公司都没投满呢,更别说还有各种准一线二线城市了。等你沟通突破了三位数,还没结果再考虑转行的事吧。
点赞 评论 收藏
分享
代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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