用verilog写一个双向4位二进制计数器
时间: 2023-12-15 14:05:51 浏览: 160
用verilog写的一个计数器
好的,以下是用 Verilog 编写的一个双向 4 位二进制计数器:
```
module binary_counter(
input clk,
input rst_n,
input up_down,
output reg [3:0] count
);
always @(posedge clk or negedge rst_n) begin
if (~rst_n) begin
count <= 4'd0;
end else if (up_down) begin
count <= count + 1;
end else begin
count <= count - 1;
end
end
endmodule
```
这个模块有四个输入端口和一个输出端口:
- `clk`:时钟信号
- `rst_n`:异步复位信号(低电平有效)
- `up_down`:计数方向选择信号(1 表示向上计数,0 表示向下计数)
- `count`:4 位二进制计数器输出
`always @(posedge clk or negedge rst_n)` 表示在时钟上升沿或者复位信号下降沿时执行,`if (~rst_n)` 表示如果复位信号为低电平,则将计数器清零,`else if (up_down)` 表示如果计数方向为向上,则计数器加 1,`else` 表示计数方向为向下,则计数器减 1。最终的计数器输出结果通过 `count` 输出。
阅读全文