题解 | #加减计数器#

加减计数器

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

分析

这道题很简单。就是有几个地方需要注意:

  • 在rst_n为0后,number是从0开始计数的。为了实现这个功能,把number打一拍就好了。所以需要使用到number1。

代码

`timescale 1ns/1ns

module count_module(
	input clk,
	input rst_n,
	input mode,
	output reg [3:0]number,
	output reg zero
	);
	reg [3:0]number1;
	always @(posedge clk or negedge rst_n) begin
		if (!rst_n)begin
			number1<=0;
			zero<=0;
		end
		else begin
			if (mode)begin
				number1<=number1<9?number1+1:0;
				zero=number1==0?1:0;
			end
			else begin
				number1<=number1>0?number1-1:9;
				zero=number1==0?1:0;
			end
		end
	end

	always @(posedge clk or negedge rst_n) begin
		if (!rst_n)begin
			number<=0;
		end
		else number<=number1;
	end

endmodule

问题

我有一个问题,想请教下大佬们。

在代码的第18行和第22行,number的赋值我用=而不是<=,波形图就变成下面这种样子:

为什么number就变成2了呢?1咋就消失了?

全部评论

相关推荐

11-01 08:48
门头沟学院 C++
伤心的候选人在吵架:佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞 评论 收藏
分享
10-17 16:07
门头沟学院 Java
牛牛大你18号:在汇报,突然弹出来,,领导以为我在准备跳槽,刚从领导办公室谈心出来
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务