题解 | #加减计数器#
加减计数器
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咋就消失了?