牛客网Verilog刷题——VL55
- 题目
- 答案
题目
请用Verilog实现4位约翰逊计数器(扭环形计数器),计数器的循环状态如下:
电路的接口如下图所示:
输入输出描述:
信号 | 类型 | 输入/输出 | 位宽 | 描述 |
---|---|---|---|---|
clk | wire | Input | 1 | 系统时钟信号 |
rst_n | wire | Input | 1 | 异步复位信号,低电平有效 |
Q | reg | Output | 4 | 输出约翰逊计数器 |
答案
`timescale 1ns/1ns
module JC_counter(
input clk ,
input rst_n,
output reg [3:0] Q
);
always @(posedge clk or negedge rst_n) begin
if(!rst_n)
Q <= 4'd0;
else
Q <= {~Q[0],Q[3:1]};
end
endmodule