任务描述 本关任务:完成4位二进制计数器的建模,采用低电平同步复位信号。 知识点 为了完成本关任务,需要掌握的知识点如下: 普通二进制计数器 N位二进制计数器是一种带有时钟和复位输入,N位计数值输出的时序逻辑电路。电路符号和原理图如图1所示。 图1 N位二进制计数器 N位二进制计数器在复位时,计数值输出cnt被初始化为0;否则,计数器在每个时钟上升沿递增1,故共有2 N 种计数值,即0~2 N −1。 编程要求 根据提示,在右侧编辑器中补全代码,完成4位二进制计数器的建模,采用低电平同步复位。 4位输出端口:用于输出计数器的当前计数值。 计数器建模主要考虑两个方面:复位条件和开始计数条件。 测试说明 平台会对你建模的数字电路模块进行自动化测试: 输入信号: 时钟周期为10ns; 0ns:sys_clk = 0, sys_rst_n = 0 20ns: sys_rst_n = 1 复位信号无效后,先经历18个时钟上升沿。然后电路复位(sys_rst_n = 0)3个时钟周期。接着,取消复位,再经历3个时钟上升沿。
时间: 2023-06-26 09:06:12 浏览: 569
```verilog
module binary_counter(
input sys_clk, // 时钟信号
input sys_rst_n, // 复位信号,低电平有效
output reg [3:0] cnt // 4位计数器输出
);
always @(posedge sys_clk or negedge sys_rst_n) begin
if(!sys_rst_n) begin // 复位信号有效
cnt <= 4'b0000; // 计数器清零
end else begin // 复位信号无效
if(cnt == 4'b1111) begin // 计数器已满
cnt <= 4'b0000; // 回到初始状态
end else begin // 计数器未满
cnt <= cnt + 4'b0001; // 计数器加1
end
end
end
endmodule
```
阅读全文