约翰逊(Johnson)计数器又称扭环计数器,是一种用n位触发器来表示2n个状态的计数器。它与环形计数器不同,后者用n位触发器仅可表示n个状态。2~n进制计数器(n为触发器的个数)有2~n个状态。若以四位二进制计数器为例,它可表示16个状态。但由于8421码每组代码之间可能有二位或二位以上的二进制代码发生改变,这在计数器中特别是异步计数器中就有可能产生错误的译码信号,从而造成永久性的错误。而约翰逊计数器的状态表中,相邻两组代码只可能有一位二进制代码不同,故在计数过程中不会产生错误的译码信号。鉴于上述优点,约翰逊计数器在同步计数器中应用比较广泛。
约翰逊(Johnson)计数器又称扭环计数器,是一种用n位触发器来表示2n个状态的计数器。它与环形计数器不同,后者用n位触发器仅可表示n个状态。n位二进制计数器(n为触发器的个数)有2^n个状态。若以四位二进制计数器为例,它可表示16个状态。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
module johnson #( parameter N=4 ) ( input clk, input rst_n, output reg [N-1:0] q );
always @ (posedge clk,negedge rst_n) if(!rst_n) q <= {N{1'b0}}; else if(!q[0]) q <= {1'b1,q[N-1:1]}; else q <= {1'b0,q[N-1:1]};
endmodule |
用原理图搭
路漫漫其修远兮,吾将上下而求索
来自 <http://www.cnblogs.com/qiweiwang/archive/2011/09/12/2174106.html>
本词条缺少概述、信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!
扭环形计数器图
为了提高环形计数器电路状态利用率,改变反馈函数为 D0=D2' ,则得到如上所示逻辑电路图,称为扭环形计数器。 扭环形计数器的有效状态是:000→100→110→111→011→001→000…(环形计数器是100→010→001→100→…),如此循环,工作时,首先用 STA 置电路为全 0,然后加 CP。
② 波形图
③状态图
下面是扭环形计数器状态图。有效状态 6 个,电路进入有效循环;无效状态 2 个,电路进入无效循环。这个电路不能自启动。
④ 优缺点n 个触发器组成的扭环形计数器 2n 个有效状态,有效状态利用率比环形计数器增加一倍。3 位扭环形计数器可构成 6 节拍发生器 T0 ~ T5,但需加译码电路。由于电路在每次状态转换时,只有一位触发器改变状态,电路译码时不会产生竞争冒险现象,而且,译码电路简单。