计数器是用于计算事件发生的次数的电子电路。在数字电子技术的序列构造计数器人字拖。尽管任何触发器都可以适当地连接以形成计数器,但最广泛使用的是D和JK触发器(图1)。
众所周知,触发器是双状态器件,这意味着它们有两个状态,要么是0(0),要么是1(1)。因此一个触发器可以跟踪两个计数,也就是说它从0计数到1,因此被称为模-2 (mod-2)计数器。
在相同的地面,可以预期串联连接的两个触发器以形成从0到3的2位计数器,其中包含4个状态,因此可以称为Mod-4计数器。概括,一个得到n位或mod-n计数器2N状态从0计数到(2N-1)级联n个人字拖。然而,为了表现为计数器,触发器必须在其输入端由高(逻辑状态1)驱动,无论是D类型还是jk类型。这背后的原因可以被理解真理表见表一。
考虑D触发器,可以看出,只有当输入较高时,输出才会发生变化。同样的JK触发器输出状态保持不变(对于J = K = 0)或固定为一个特定的值(0对于J = 0和K = 1;1表示J = 1, K = 0),期望两者都是高的。在计数器中,状态被期望改变,而不是保持与特定的值绑定。因此,当在这些触发器的输入端驱动' 1 '时,它们充当1位计数器(图2)。
计数器的特性是由触发器之间的互连方式决定的。计数器可以
- 异步或同步,
- 向上或向下计数器和/或
- 正或负边缘触发取决于在触发器的时钟输入端提供的连接。计数器的行为可以用时序图(波形)、真值表和/或状态图来解释。
图3显示了通过级联三个正边缘触发D触发器形成的3位异步UP-计数器。这里所有的输入(d0.,D.1和D2)很高。触发器1(FF1)的时钟输入由外部时钟脉冲驱动,而第二和第三(FF2和FF3)的驱动由分别。这里FF1的操作依赖于外部时钟脉冲序列,而FF2和FF3的操作依赖于外部时钟脉冲序列。这是符合工作的事实人字拖取决于时钟输入。
让我们假设计数器的初始状态是Q2问:1问:0.= 111,只是为了了解柜台的工作。在这种情况下,对于第一个时钟脉冲Q0.位从1到0切换。这意味着bit从0到1切换,这进一步充当FF2的正时钟脉冲(由图4中的红色箭头表示),改变其输出位Q1从1到0。这个转换切换Q2的转换触发的从1到0的位从0到1.因此,对于第一时钟脉冲,计数器的输出将为000。
然后用于第二时钟脉冲Q的前沿0.从0到1切换,这意味着从1到0开始。这像一个后缘,因此,FF2的状态没有变化,导致Q1保持在0。由于FF1的状态不变,FF3的状态也保持不变,产生Q1= Q.2= 0。这样我们就有001作为计数器的输出。根据同样的理由,我们可以看到第三个时钟脉冲Q0.= 0且= 1.因此可以注意到FF2中的状态转换,从而产生Q1= 1,= 0.然而,FF3的输出保持低,因为信号在其CLK引脚上没有正转换。这将计数器输出产生为011.时钟脉冲4处的触发器的行为类似于时钟脉冲2的行为,除了这种情况下的输出位的状态。第五钟脉冲,q0.= 0(因此= 1);问:1= 0(因此= 1).过渡从0到1触发FF3将其状态从0改变为1,从而在计数器的输出处产生101。对于进一步的时钟脉冲,计数器的输出可以在相同的基础上得到。而在第8个时钟脉冲之后,序列重复如图5的状态图和表II给出的真值表所示。
通常我们看到,对于类似于图3的n位计数器,最低位(LSB) = 2O.为每个时钟周期切换,而下一个较高位只有在它们的前位将其状态从1更改为0时才切换。例如,问23位上计数器中的位只会在Q时改变其状态1比特从1到0变为0(除了从图4中的0转换为0到1)。这可以被视为虽然波纹传播通过布置人字拖因此计数器称为纹波计数器。此外,所有触发器都不会同时触发。因此,它们本质上是异步的。
当传播延迟与触发器相关联时,异步计数器的涟波效应会带来一个问题。为了克服这个问题,计数器的设计使构成计数器的所有触发器的时钟输入由相同的输入时钟脉冲序列驱动。这些被称为同步计数器(图6)。这使得所有触发器同时改变它们的状态,消除了在异步计数器中遇到的延迟。
从图6可以看出,所有触发器的输入不像异步计数器那样被驱动得很高(图3)0.FF1,D1FF2和D2FF3)根据柜台预期的状态序列来决定。由于图X中所示的计数器类似于其图3所示的反部分,所以状态的数量和状态之间的转换保持不变。因此,状态图和真相表保持不变。因此,通过分析表II可以通过分析表II来到达输入比特的驱动,以找到输出比特切换所需的条件。
从表中可以明显看出,Q位0.需要为输入时钟脉冲上的每一个正边过渡进行切换。因此输入管脚D0.就是要被鞭策得更高。然而一些问1只有在位q时才需要运输0.为1,用表II中的蓝色箭头表示。这可以通过连接Q来实现0.作为FF2的输入。此外,我们还注意到Q2只有当Q1和问0.,如表2中绿色箭头所示。为了达到这个条件,需要利用两个输入和门由比特Q驱动0.和问1。这是由于当所有输入都高时,且门的输出才能高。现在,图6所示的计数器用作每个输入时钟脉冲的0到7递增0到7。
通常,在N比特同步上计数器中,LSB需要在输入时钟脉冲上的每个正边缘过渡切换;下一个更高的位只有在其前面的位(= LSB)高时才改变其状态;如果其上一位的两位高等,则下一个更高的位仅传输。因此,在同步计数器的情况下,触发器才能仅在所有上一触发器的输出高时改变它们的状态。为了实现这一目标,必须将输出和栅极连接到驱动每个触发器的输入引脚。在每个阶段进一步,这些和栅极都需要逻辑上'和'所有上一个的输出位人字拖。
向下计数器的工作几乎与向上计数器的工作相似,除了每个时钟脉冲的计数顺序将从高到低递减一个。或者例如,3位向下计数器从7(111)计数到0(000),而不是从0到7。因此,在异步计数器的情况下,必须考虑输出位从0到1而不是1到0的转换。类似地,在同步计数器和门的情况下,用于逻辑上的'和'比特而不是q位。
除了基本的向上和向下计数器,其他特殊类型的计数器也存在戒指柜台那约翰逊计数器、十进计数器、Mod-N计数器等。此外,对拟议的反设计稍加修改就会产生类似的变化
- 添加控制线以选择向上或向下计数导致实现上/下计数器,
- 使用清晰和预设引脚的触发器允许一个人为计数器设置初始状态
- 添加合适的逻辑导致在2之前打破计数序列N状态已经消失,例如,一个3位计数器可以只计数到5,并可以重复序列(Mod-6计数器)。然而,需要注意的是,尽管每种设计都有一定的差异,但它们背后的基本工作原理是相同的。