题意整理

约翰逊计数器,亦称扭环形计数器,每次状态变化时仅有一个触发器发生翻转,译码不存在竞争冒险,在n(n≥3)位计数器中,使用2n个状态,有2^n-2n个状态未使用;

题解主体

扭环形计数器一方面保持移位寄存器的特点,另一方面又能提高触发器的利用率。

它是将末级的反相输出端反馈到第一级的输入端。

4位扭环形计数器实现电路如下:



根据电路设计,Verilog代码描述如下:


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 <= 'd0;

   else

      Q <= {~Q[0], Q[3:1]};

end

  

endmodule

参考答案

`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 <= 'd0;
   else 
      Q <= {~Q[0], Q[3:1]};
end 
   
endmodule