概述
学习数字逻辑这门课程的目的有两个,第一是为了后续的电路设计,是硬件工程师的入门课程;第二则是为了更好地理解计算机的工作原理,为后续嵌入式开发、软件开发等打下坚实的基础。绝大部分人应该属于后者,毕竟纯粹的硬件开发工程师职位不多。
时序电路是数字逻辑这门课的关键,因为引入了时间这一维度,理解掌握其功能特性的难度比组合逻辑要高,因此,很多童鞋可能学到这有点晕,这是正常现象。应对办法也很简单:熟记典型的几个触发器功能特征,多做几个习题,对付考试和后续课程的理解绰绰有余。
时序电路这门课程的要求是最终能够进行简单的电路设计(包括组合逻辑和时序逻辑),完成特定的功能。学会跑之前,要先学会走,也就是先看看别人的电路是怎么设计的,分析其规律,然后再尝试设计简单的电路。
分析原理
要对时序电路进行分析,需要先理解其结构特征,时序电路的基本结构如下图所示:
由图1知,时序电路由组合变换电路、存储电路和对外输出的组合电路三部分组成。一般情况下,称存储电路中保存的数据为时序电路的状态;外部输出Z有两种形式,一种是Z只与电路的现态相关,称为Moore型电路,一种是与电路的状态和外部输入相关,称为Mealy型电路。
要分析时序电路,很多教材上要写第一步做什么、第二步做什么之类的,这种方法很容易让童鞋们死记硬背,误入歧途,较为合理的方法应该是抓住时序电路的本质,即是什么导致电路状态发生改变?电路的状态如何改变?电路的对外输出是什么规律?这三个问题搞清楚了,画出电路的状态迁移图,根据状态迁移图对其功能进行说明,简单的分析就算完成了。
什么导致电路状态发生改变?
答:激励方程,即存储电路的输入(激励就是输入,在本课程中特指触发器的输入)
电路状态如何改变?
答:次态方程,比如J-K触发器和D触发器等,这就需要大家熟记几种典型的触发器的功能特性。当然,后面还会提到一些典型的时序电路逻辑器件如计数器、移位器等,这也需要大家灵活理解并熟记。
电路对外的输出是什么规律?
答:输出方程,就是一个组合电路,比较简单。
综上,只要抓住这三个方程,电路分析不是什么难事,大家只要掌握这个规律,没有分析不了的电路。
例子
根据上面的原理,下面由简单到难,分别举两个例子进行分析。
例1:试分析下图所示时序电路,画出X=101101的时序图。
显然,这时一个同步的Mealy型电路(Z与输入和X和D触发器的状态相关),分别写出输出方程、激励方程和次态方程:
由此,可以写出电路的次态(状态转移)和输出:
根据输出表,画出电路的状态转移图和波形图,分别入图5和图6所示:
注:在画波形图时,一定要搞清楚哪是现态,哪是次态,输出是和输入和现态同步变化的(这里指的是理想情况),因此这里的D触发器是上升沿时引起状态变化,所以,要以CP从0跳变到1为界区分现态和次态
根据状态转移图,很容易看出,例1中的功能为:当输入为1时,电路状态变化,且当处于0状态时,输入1,输出为1,当处于1状态时,输入1,输出为0;其它输入(即0),电路状态保持不变,且输出为1.
例2: 分析下图的逻辑功能
其中的D0的输入为D00*D01
这个电路的特点是:只有一个CP输入,没有其它输入,也没有输出,只有电路状态的转移。(另外,这四个D触发器的状态组成了电路的状态)因此,这里只需要分析其激励方程和状态转移方程(D触发器的状态转移这里不再赘述)
这个电路中每个触发器的激励方程为:
对于这样的电路,可以口述,假设Q3Q2Q1Q0初态为0000,当一个时钟脉冲来临时,Q3Q2Q1Q0转换为:0001;再来一个时钟脉冲则为:0011,类似进行分析,可以得到其转换状态为:
类似这样的电路在后续学习中非常常见,请大家熟悉,并且最好能直接口述或绘制其状态转移图
小结
对于时序电路分析,抓住核心的三个方程(根据情况),很容易绘制状态转移图和波形图。
如有错,请各位批评指正!