题解 | #Johnson Counter#
Johnson Counter
https://www.nowcoder.com/practice/7ee6e9ed687c40c3981d7586a65bc22d
`timescale 1ns/1ns
module JC_counter(
input clk ,
input rst_n,
output reg [3:0] Q
);
reg [2:0] count;
always @(posedge clk or negedge rst_n)begin
if(!rst_n)begin
count <= 3'b000;
end
else begin
count <= count + 1;
end
end
always @(posedge clk or negedge rst_n)begin
if(!rst_n)begin
Q <= 4'b0000;
end
else begin
case(count)
3'b000:Q <= 4'b1000;
3'b001:Q <= 4'b1100;
3'b010:Q <= 4'b1110;
3'b011:Q <= 4'b1111;
3'b100:Q <= 4'b0111;
3'b101:Q <= 4'b0011;
3'b110:Q <= 4'b0001;
3'b111:Q <= 4'b0000;
endcase
end
end
endmodule
查看2道真题和解析