您的位置:首页 > 其它

利用触发器设计计数器

2016-11-15 13:25 246 查看

概述

前面的课程中,介绍了基本触发器的功能特性,对触发器的内部电路进行了分析;然后还对时序电路分析给出了基本思路,即抓住三个核心方程:输出方程、激励方程、次态方程。

学习组合电路和基本触发器的目的是为了设计电路,数字逻辑这门课程的目的是能够设计简单的同步时序电路,并对其简单分析,下文通过一个模16的减1计数器进行说明。

基本流程

要设计时序电路,首先必须要对功能需求进行分析,模16减1计数器的功能需求很显然应该是: 15 –> 14 –> 13 –> 12 –> … –> 1 –> 0 –> 15 –> 14 –> …。

有了上面的迁移关系,接下来应该做的是如何实现这种转换。显然,上面的这种转换关系是我们人类的头脑意识,电路并不知情,因此,我们需要给上面的这种关系进行形式化描述,即对15,14等数字(这个例子里直接认为是状态)进行编码(这个编码是任意的,可以自由发挥,但是一般我们采用大家都认可的规范,这个例子中用二进制数进行编码),编码规则为:

- 15: 1111

- 14: 1110

- 13: 1101

- …

- 0:0000

显然,这里需要4个触发器来存储需要表达的状态。

然后,如何表述状态之间的转换关系呢?前面学习的状态转移表刚好可以表述现态和次态之间的关系,如下表所示:

Q3Q2Q1Q0Q3(t+1)Q2(t+1)Q1(t+1)Q0(t+1)
11111110
11101101
11011100
11001011
10111010
10101001
10011000
10000111
01110110
01100101
01010100
01000011
00110010
00100001
00010000
00001111
在得到了编号后状态的基本迁移关系的基础上,需要进一步获取次态和现态之间的关系。上表是一个状态转移真值表,需要得到准确的次态与现态之间的关系。处理方式有两种,一种是直接利用最小项之和,另一种是卡诺图,通常情况下,对于6变量以下,一般采用卡诺图。

首先寻求Q3(t+1)与Q3Q2Q1Q0的关系,其对应的卡诺图为:

Q3Q2\Q1Q000011110
001000
010000
111111
100111
注:卡诺图中的编号即表示了现态

利用卡诺图化简规则,得到:

Q3(t+1) = Q3 !(!Q2!Q1!Q0) + !Q3 (!Q2!Q1!Q0) // 由于markdown中没有异或符号,直接展开

同理,可以获取Q2(t+1)、Q1(t+1)、Q0(t+1)与Q3Q2Q1Q0之间的关系,得到:

Q2(t+1) = Q2 !(!Q1!Q0) + !Q2 (!Q1!Q0)

Q1(t+1) = Q1 Q0 + !Q1 (!Q0)

Q0(t+1) = !Q0

此时,已经得到了次态与现态的准确关系,剩下的工作就是根据所提供的触发器来设计。假设,给定的是4个下降沿J-K触发器,则需要根据J-K触发器的次态方程,对上述方程进行匹配赋值。由此得到:

J3 = K3 = (!Q2!Q1!Q0)

J2 = K2 = (!Q1!Q0)

J1 = K1 = (!Q0)

J1 = K1 = 1

因此,最终的电路图为:



分析

至此,模16减1计数器已经实现了。分析上面得到的次态与现态的表达式,其实可以直接写出模32减1的计数器;另外,也可以看出:Q0的状态每个脉冲都会跳变一次,Q1的状态每两个脉冲跳变一次,Q2的状态每四个脉冲跳变一次,Q3的状态每8个脉冲跳变一次,这种跳变对应着脉冲的2分频、4分频、8分频、16分频。

小结

不管是分析时序电路,还是设计时序电路,切忌简单背诵分析和设计步骤,抓住分析和设计的关键点(分析电路时的三个方程、设计电路时的状态迁移)即可。

简单意味着复杂,计数器可以说是最基本的时序逻辑电路,利用计数器可以做出十分复杂且有用的电路。然而,本文讲解的计数器除了时钟脉冲,没有其它输入,即其不可控,无法灵活使用,下一节将详细讲解163计数器及其应用。

如有错,请大家批评指正!谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: