从本章开始我们将引入时间的概念,将时间一并代入到我们讨论的问题当中。首先我们讨论循环依赖的问题,在物理电路中我们学习过不能将一个元件的输入和输出首尾相连,这会导致该元件被短路。但是在逻辑电路中存在一种特殊的性质,就是输入可以被输出所影响。以非门举例,如果将非门的输入与输出相连,在连接的那一刻,理论上便会产生振荡,如果输出为0,那么传递到输入,取反后应该输出为1,再次传递到输入,取反后应该输出为0,如此循环往复下去便会产生一个脉冲。(注意能量并不是在非门中凭空产生的,实际电路中非门可能由晶体管或者三极管组成,它们均需要有另外的电势差来维持正常工作,并不是从0电平被取反后凭空产生了1高电平的电势能)
由于组成实际逻辑门电路的材料特性,我们所研究的逻辑门均存在延时,该耗时损失是在电路材料中参与电化学反应或电物理效应的分子,原子的耗时。从人的观察和反应量级上来看,这是一个非常非常快的变化,但是它依然存在延时,我们设延时为t,这意味着当输入信号传入元器件之后,经历过时间t之后,输出信号,再瞬间(电信号的传播速度可大致视为光速,可认为瞬间完成)给到输入,再经历时间t,如此循环。
循环依赖可以包含多个元件结构,但从输入输出来看一定是经过取反的,否则无法构成脉冲。包含多个元件时,t会增大,因为门电路串联(并联可能会增大延时)的越多,延时就会越大。
我们此处引入时钟刻表示在逻辑电路中的一个单位时间,用符号CT表示。有延时,我们就可以制作延时元器件,它的物理特性可以将输入的信号延时t时间刻度。我们用如下符号表示一个能延时一个CT刻的延时元件。
作用示例:当电路图闭合开关的那一刻开始,经历t时间后,灯泡才会被点亮工作。
我们将所有的逻辑门变化信号视为是瞬时的,而用延时线来满足我们所需要的延时,所以上述脉冲发生器可以由一个非门和一个延时器来组成。
该图便是脉冲发生器的示意图,当延时器可调时,将会改变脉冲图像的周期T,延时刻CT与T的关系是T=2CT。频率f=1/2CT。该脉冲发生器产生的信号与时间的关系图像如下图所示。
存储器
我们将时间引入逻辑电路,是为了讨论时序逻辑电路这种特殊的电路,这种电路的输出状态不仅取决于当前输入的信号,还与电路原先的状态有关。因此时序逻辑电路是具有记忆功能的电路,因为它的输出状态和原先的状态存在关联。这种奇特的“记忆”特性下面引入最基础的RS触发器来展现。
这是RS触发器结构的两种示意图,(它们都是同一种结构,展现方式不一致),NOR或非门的真值表输出是1000,即只有在全0时输出1。我们需要牢记这一特性,方便下面对该结构进行分析。
如图我们标注了AB两个NOR,mn两个输入端,以及红蓝两条输出线。由于输出状态被反馈到输入端,我们先假设初始状态:A输出为0,B输出为0,mn输入为0,此时AB中必定有一个输出为1来达到稳定,有两种情况,A输出了1,B的输入接收了该信号,输出为0,此时A的输入没有接到信号,则依旧输出1,状态不变;另外一种是B输出了1,A的输入接收了该信号,输出为0,此时B的输入没有接到信号,则依旧输出1,状态不变,两种状态都可能会发生在AB一方上这是显而易见的结论,因为AB均处于完美的结构对称状态,其分析方法都是一致的。
初始状态A是1,B是0时,B的输入就会接收到来自A的信号1,此时B按逻辑依然是输出0,A的输入接收的B输入是0,依然保持原有状态,同理B是1,A是0的状态是完全一致思路的。
初始状态AB均为1是不稳定的,两者必定有一方先变化信号,而变化后,AB则会变成0和1这种稳定状态,之后将不会改变。即使都同时变为0,那么00的状态也会必定有一方先产生信号,如果一直处于这种状态,RS触发器是不稳定的,直到产生偏差,达到稳定。
我们得出结论,当mn输入均为0时,各种假设的初始状态均会变为稳定状态,即红蓝两条线路信号永远是相异的。由此后文我们均认为RS的触发器初始状态是01稳定状态。
我们将RS触发器的m端输入1,n保持0,红线为1蓝线为0的状态下,m输入信号1,此时A输出0,即红线变为0,蓝线变为1,发生红蓝信号交换,此刻m再无论如何变化均不会发生互换状态。如果红线为0蓝线为1的状态下,m输入1,n保持0,则不发生变化。在红线为0,蓝线为1的状态下,是同理的结论。因此我们得出第二条结论:只有对应输出为1的NOR的输入变为信号1才可以发生信号互换,且互换后该信号无论如何变换均无法改变状态。换一种思路看作:因为变换后输出为1的NOR变了,所以当前NOR并不是输出为1的NOR,对应的输入无论如何变化均没法改变状态。
当mn输入全为1时,此时“对应输出为1的NOR的输入为1”这条互换条件是永远成立的,因为所有的输入都是1!因此会导致振荡或者状态静止,总之这是一个不被允许的行为,因为会得到一个不确定的结果。
总的来讲,RS触发器具有两个稳态——红蓝线信号10和01,任意时刻RS触发器总是处于这两个状态中的一种,两个状态相互转换通过m和n来操控,因此这两个输入端被称为置位端(Set)和复位端(Reset),所以RS触发器的RS是置位-复位的含义。输出线红蓝永远是相异的,也称互补的,因此可以被记为和。仅需知道一个输入状态便可知道另外一个输入状态。
对于时序逻辑电路的真值表,输入端不仅还有R和S,因为触发器的初态会反馈到输入端,因此初态作为次态的一个输入变量,这种含有状态的表我们称之为状态表。
此外触发器的其他表示方法还有特性方程,激励表,状态图3种表示方式,下面将以本次RS触发器为示例给出其他三种表示方式的介绍。
特性方程表达了次态与初态和数据输入端之间的逻辑关系,并把这种关系用逻辑函数的形式表达出来,由状态图画出卡诺图并化简可以得到特性方程。
激励表给出了若要实现从初态到次态的状态转换应该实施怎样的控制输入条件,可由状态表转换而来,下图是RS触发器的激励表。
状态图是以图形的方式表示状态变化与控制输入之间的变化关系,如下是RS触发器的状态图。
RS触发器的R和S端对应的NOR输出为1时,R或S输入为1才会更新稳态。如果将R和S端整合成一条线,该线有一个非门,非门前与非门后信号是相异的,将对应的线路接入到RS触发器的两个输入端,输出保留任何一条即可。
输入端接入两个开关(与门),如下图所示。当红线输入为1时,开关才会输出两路的信号。黑色输入端被视作代写入的数据输入端,红线代表写入开关。当写入数据端操作时,如果写入开关是0,无论如何变化数据,输出端不会有明显变化。当写入开关为1时,数据输入端变为1或0都会形成稳定的NOR触发器结构。也就意味着输入1或0,触发器的输出都会输出1或0,这就是D触发器。
存储一比特的需求可以由D触发器来实现,如果写入的数据时不要求即刻输出,而是下一个CT时刻输出,可根据电路延迟决定,如果延迟过小可在输出线加入延时电路,示意图如下:
存储一比特后可以拓展至存储一字节,需要八个D触发器记忆每个位的信号,所有的写入开关共线即可,原理图和示意图如下:
由多个触发器组合出来的电路可存储多位数据,因此被称作寄存器(register),寄存器可以接收,存储和数据输出等操作。
有了寄存器基础架构,可以对其进行一定的额外设计,例如上面所述的寄存器是永远输出其内部存储的值,如果我们想设计一个读取read开关,当开关打开时才会输出其内部存储的数据(读操作),当开关关闭时,输出永远为0,但数据写入功能是正常的。
只需要将输出端键入一个开关器件,把开关端当作写入端即可