题解 | #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 [7:0] cnt;
// always@(posedge clk or negedge rst_n) begin
// if(!rst_n) begin
// cnt <= 8'b11110000;
// end
// else begin
// cnt <= {cnt[0],cnt[7:1]};
// end
// end
// always@(*) begin
// Q = cnt[3:0];
// end
// endmodule
//更好的写法
module JC_counter(
input clk ,
input rst_n,
output reg [3:0] Q
);
always@(posedge clk or negedge rst_n) begin
if(!rst_n) begin
Q <= 'd0;
end
else begin
Q <= {~Q[0],Q[3:1]};
end
end
endmodule
阿里云成长空间 753人发布
