Verilog 实现4位二进制计数器
时间: 2023-12-15 10:06:00 浏览: 73
下面是一个简单的 4 位二进制计数器的 Verilog 实现:
```verilog
module binary_counter(
input clk,
input reset,
output reg [3:0] count
);
// 计数器清零
always @(posedge reset) begin
count <= 4'b0;
end
// 计数器递增
always @(posedge clk) begin
if (count == 4'b1111) begin
count <= 4'b0;
end else begin
count <= count + 1;
end
end
endmodule
```
在上面的代码中,`binary_counter` 模块有三个输入和一个输出。
- `clk` 是时钟信号,用于计数器递增。
- `reset` 是一个异步重置信号,用于将计数器清零。
- `count` 是一个 4 位的输出,表示当前计数器的值。
在模块中,我们使用两个 `always` 块实现计数器的递增和清零。在 `always @(posedge reset)` 块中,如果 `reset` 信号为高电平,则将 `count` 清零。在 `always @(posedge clk)` 块中,如果 `count` 的值为 `4'b1111`(即 15),则将 `count` 重新设置为 0;否则,将 `count` 的值加 1。
最后需要注意的是,这只是一个简单的计数器实现,并没有考虑任何其他功能,如异步复位延迟等。如果需要更复杂的功能,需要进行一些额外的设计。