硬件基础:时序逻辑电路

本文主要参考大神文章如下:

第五章·锁存器和触发器 - 知乎

第六章·时序逻辑电路 - 知乎

仅作为本人学习之用。 

什么是时序逻辑电路

组合逻辑电路中,任一时刻的输出信号仅仅由该时刻的输入信号所决定,而时序电路在任一时刻的输出信号不仅与当时的输入信号有关,而且与电路原来的状态有关。也就是说,时序电路中除具有逻辑运算功能的组合电路外,还必须有能够记忆电路状态的存储单元或延迟单元,这些存储或延迟逻辑单元主要由锁存器或触发器组成

时序电路的基本结构如图6.1.1所示,它由完成逻辑运算的组合电路和起记忆作用的存储电路两部分构成。其中,存储电路由触发器或锁存器组成。

输入信号:I=(I1、I2,…,Ii) ;

输出信号:O=(O1、O2,…,Oj) ;

激励信号:E=(E1、E2,…,Ek) ,可以驱动存储电路转换为下一状态;

状态信号:S=(S1、S2,…,Sm) ,表示存储电路的状态,亦称为状态变量;它表示时序电路当前的状态,简称现态

状态变量 S 被反馈到组合电路的输入端,与输入信号 I 一起决定时序电路的输出信号 O ,并产生对存储电路的激励信号 E ,从而确定电路的下一状态,即次态

时序电路具有以下主要特征

①时序电路由【组合电路】和【存储电路】组成。

②时序电路的输出信号由【输入信号】和【之前的电路状态】共同决定。

时序电路可分为:异步时序电路和同步时序电路

若电路中触发器的时钟输入端没有连接在统一的时钟脉冲上,或电路中没有时钟脉冲(如SR 锁存器构成的时序电路),从而电路中各存储单元的状态更新不是同时发生的。则这种电路称为异步时序电路

与异步时序电路不同,同步时序电路中存储电路状态的转换是在同一时钟脉冲源的同一边沿作用下同步动作的。

同步时序电路的存储电路一般用触发器实现,所有触发器的时钟输入端都应接在同一个时钟脉冲源CP上,而且它们的时钟脉冲触发沿也都应一致。因此,所有触发器的状态更新是在同一时刻,其输出状态变换的时间差异很小。

在时钟脉冲两次作用的间隔期间,从触发器输入到状态输出的通路被切断,即使此时输入信号发生变化,也不会改变各触发器的输出状态,所以较少发生因状态转换不同步而引起的输出状态不稳定的现象。更重要的是,其电路的状态很容易用固定周期的时钟脉冲边沿清楚地分离为序列步进

其中,每一个步进都可以通过输入信号和所有触发器的现态单独进行分析,从而有一套较系统、易掌握的分析和设计方法。电路行为也很容易用 HDL来描述。所以,目前结构较复杂、运行速度较高的时序电路广泛采用同步方式来实现。很多大规模可编程逻辑器件的应用电路和专用集成电路的设计,也都采用同步时序电路的结构。

时序电路的功能可用逻辑方程组、转换表、状态表、状态图和时序图等形式来表达,也可以用HDL语言描述。

这里仅提一下时序图

与组合电路一样,波形图能直观地表达时序电路中各信号在时间上的对应关系

通常把时序电路的状态、输出对输入信号(包括时钟信号)响应的波形图称为时序图

上面在简单介绍时序逻辑电路时,我们知道时序逻辑电路的记忆存储部分是由锁存器和触发器来实现的,那什么是锁存器和触发器呢?我们接下来先了解下相关概念。 

基本双稳态电路

将两个非门 G1 和 G2 接成如图5.1.1所示的交叉耦合形式,则构成最基本的双稳态电路。

从图5.1.1所示电路的逻辑关系可知,若Q=0,经非门G2反相,则 Q¯ =1。Q¯反馈到G1输入端,又保证了Q=0。由于两个非门首尾相接的逻辑锁定,因而电路能自行保持在Q=0、Q¯=1的状态,形成第一种稳定状态。反之,若Q=1,Q¯=0,则形成第二种稳定状态。

在两种稳定状态中,输出端Q和Q¯总是逻辑互补的。可以定义Q=0为整个电路的0状态,Q=1则是1状态。电路进入其中任意一种逻辑状态都能长期保持下去,并可以通过Q端电平检测出来,因此,它具有存储1位二进制数据的功能

像图5.1.1所示电路这样,具有0、1两种逻辑状态,一旦进入其中一种状态,就能长期保持不变的单元电路,称为双稳态存储电路,简称双稳态电路。本章所讨论的锁存器和触发器均属于双稳态电路。

双稳态电路没有任何外部输入可以让电路状态发生变化,因此可以保持稳定状态。

可以看出,图5.1.1 所示双稳态电路的功能极不完备。在接通电源后,它可能随机进入0状态或1状态,因为没有控制机构,所以也无法在运行中改变和控制它的状态,从而不能作为存储电路使用。但是,该电路是各种锁存器、触发器等存储单元的基础。

SR锁存器

锁存器(Latch)是一种对脉冲电平敏感的双稳态电路,它具有0和1两个稳定状态,一旦状态被确定,就能自行保持,直到有外部特定输入脉冲电平作用在电路一定位置时,才有可能改变状态。这种特性可以用于置入和存储1位二进制数据。本节首先讨论 SR 锁存器。

基本 SR 锁存器

将图5.1.1中双稳态电路的非门换成或非门,则构成图5.2.1(a)所示的基本 SR 锁存器。

它是一种具有最简单控制功能的双稳态电路。图中,S和 R是两个输入端,Q和 Q¯是两个输出端。

图5.2.1(b)所示为基本SR锁存器的逻辑符号,其中,S(Set)是置位端,R(Reset)是复位端。,Q和 Q¯ 为互补的两个输出端,其中Q¯输出锁存器的非状态,所以用小圆圈示之。

定义Q=0且 Q¯ =1为整个锁存器的0状态,Q=1且Q¯=0则是锁存器的1状态。

基本SR锁存器的功能表,如表5.2.1所示

基本 SR锁存器的数据保持、置0和置1功能,是一个可实际应用的存储单元最基本的逻辑功能。

R或者S的有效电平信号完成对应功能后撤掉就行,之后状态可以保持。

基本 SR锁存器的输出状态是由输入信号S或 R直接控制的,由于信号的传输延时,所以信号起作用需要一定的时间,因此基本 SR 锁存器工作时,必须保证S和R的高电平脉冲宽度不小于某一最小值tw,如果加在S或R端的脉冲宽度过窄,就可能来不及转换。

基本 SR锁存器可以应用于数字系统中某些特定标志的设置。

例如,当某种预设逻辑条件具备时,电路可以通过S端将基本 SR锁存器置1,标志预设事件已经发生;而当另一种相悖的预设逻辑条件满足时,则可通过R端将其置0。

等等。

门控SR锁存器

前面所讨论的基本 SR锁存器的输出状态是由输入信号S或 R直接控制的,而图5.2.8(a)所示电路在基本SR锁存器输入端增加了一对逻辑门 G3 、 G4 ,用使能信号E控制锁存器在某一指定时刻,根据S、R输入信号确定输出状态。这种锁存器称为门控 SR 锁存器。通过控制 E 端电平,可以实现多个锁存器同步的数据锁存。

如果没有门控,则SR有效时会一直起作用,有了门控信号,就可以控制SR起作用的时间,从而也可以使得多个锁存器同步工作。

这就体现了与门的一个好处,那就是具有“一票否决权”,类似的,或门具有“一票决定权”。

与门一端为1时,输出就取决于另一端,此时功能相当于一个传输门;或门一端为0时,也相当于一个传输门。加个非,就成了反相器。

当E=0时,锁存器处于保持状态,E=1时,才会按照基本SR锁存器的逻辑来工作,即实现保持、置1、置0的功能。

但不管是哪种SR锁存器,都存在一个问题:SR同时有效时的不稳定状态。

若E=1时输入信号S=R=1,则Q=Q¯=0,锁存器将处于非定义的逻辑状态。当E恢复为0时,由于Q3、Q4同时回到0,将不能确定锁存器的状态。因此,应用这种锁存器必须更严格地遵守SR=0的约束条件。由于约束条件造成的应用限制,因而很少有独立的门控 SR锁存器产品。但是,在许多中、大规模集成电路中时常应用这种锁存器,或用它构成触发器或存储器。所以,SR 锁存器仍是重要的基本逻辑单元。

D锁存器

与 SR锁存器不同,D锁存器在工作中不存在非定义状态,因而得到广泛应用。

看一个逻辑门控D锁存器

跟门控SR锁存器对比就会发现,它在门控 SR锁存器的 S和 R输入端之间连接了一个非门 G5 ,从而保证了 SR=0的约束条件,消除了可能出现的非定义状态。

接了一个非门,所以SR两端永远是相反的,此时它就只有置1和置0功能了,而失去了常规的保持功能,但是,当E=0时,正好是保持状态,所以,很巧妙。

另外还有传输门结构的D锁存器,相比逻辑门控D锁存器,电路结构更加简单、在芯片中占用面积更小而更受青睐……具体参看大神的文章。

两种D锁存器的逻辑符号一样。

逻辑表如下:

上表概括了D锁存器的功能。由于这种锁存器在E=1时Q端可跟随D端的逻辑状态变化,故又称为透明锁存器

D触发器相对SR触发器更简洁,当使能有效时,输入直接决定输出,具有“透传”效果。

注意,逻辑电路在传输过程中会要求有些信号保持一段时间,有些信号先来,有些信号后来,才能保证电路按照正确的逻辑来工作,这就是为什么时序逻辑电路常常要按照时序来执行程序,锁存器也不例外。

比如D锁存器的一些动态特性,比如传输时延、建立时间、保持时间、脉冲宽度等等。

说的大概就是,输入信号得持续一定的时间,使能信号也得持续相应的一段时间。

在设计工作中,对电路的动态特性必须予以充分重视。特别是电路工作在接近定时极限的高频条件下,对上述时间关系更要注意留有充分余地。否则,电路在长期工作时会发生原因难以查明的偶发性逻辑错误,或因环境条件改变(如温度变化))而出现工作不稳定的情况。

触发器

本节讨论另一种对脉冲边沿敏感的双稳态电路。如前所述,D锁存器在使能信号E 为逻辑1期间更新状态,在图5.4.1(a)所示的波形图中以加粗部分表示这个敏感时段

在这期间,它的输出会随输入信号变化,在电平持续的时间里,任何输入的变化都会引起输出的变化,出现空翻现象,为了解决这一问题,就有了边沿触发。

很多时序电路要求存储电路只对时钟信号的上升沿或下降沿敏感,而在其他时刻保持状态不变,例如 6.5节中将要讨论的移位寄存器和计数器。

这种对时钟脉冲边沿敏感的状态更新称为触发,具有触发工作特性的存储单元称为触发器。电路结构不同的触发器对时钟脉冲的敏感边沿可能不同,分为上升沿触发下降沿触发

本书以 CP(Clock Pulse)命名上升沿触发的时钟信号,触发边沿如图5.4.1(b)波形中的箭头所示;以 CP¯ 命名下降沿触发的时钟信号,触发边沿如图5.4.1(c)中箭头所示。

在Verilog HDL中,对脉冲电平敏感的锁存器和脉冲边沿敏感的触发器的描述语句是不同的。正因为如此,这里要特别强调锁存器与触发器在概念上的差异。

不管是锁存器还是触发器,都是一种双稳态电路,可以改变电路的状态,然后保持稳定。

可以有稳定的状态保持,就是存储的核心思想,触发是为了让我们能够存0,也能存1,但锁存,也就是保持态才是精华所在。

实现触发器的核心思想-主从

触发器主要由两个锁存器构成,一主一从,之所以能实现在脉冲的边沿触发,是因为一主一从锁存器,一个只会在低电平时处于导通状态,一个只会在高电平时处于导通状态,但是信号想从输入端到输出端,就得经过两个触发器,跳变前后依次打开两个锁存器,最终才能让输入到达输出端,就等于是两道门,一道门在低电平打开,一道门在高电平时打开,我要想
进去,就得经过两道门,道理是一样的。其本质上还是得一高一低电平来切换才能实现边沿触发。 

比如

主从D触发器

将俩个D锁存器级联,则构成典型的CMOS主从D触发器,如图5.4.2所示。

图中左边的锁存器称为主锁存器,右边的称为从锁存器。主锁存器与从锁存器的使能信号相位相反,利用两个锁存器的交互锁存,则可实现边沿触发。

触发器也有时序的一些动态特性,和锁存器类似。

触发器输入时钟有最高时钟频率限制,如果使能时钟太快,则来不及建立稳定的信号,别上升沿工作还没完成,下降沿就来了。

按照触发器的逻辑功能,通常分为

图中方框内侧的">"符号表示电路对CP信号的脉冲边沿敏感。

各逻辑方框内分别标明了时钟信号与不同输入信号的控制关联。

需要指出的是,逻辑功能和电路结构是两个不同的概念。某一种逻辑功能的触发器可以用不同的电路结构来实现,如两种不同电路结构而功能完全相同的 D触发器;同时,以某一种基本电路结构为基础,也可以构成不同逻辑功能的触发器。

对于某种特定的电路结构,只不过是可能更易于实现某一逻辑功能而已。在本节讨论触发器的逻辑功能时,可以暂时不考虑其内部的电路结构。

触发器在每次时钟触发沿到来之前的状态称为现态,之后的状态称为次态。所谓触发器的逻辑功能,是指以输入信号和现态为变量,以次态为函数的逻辑关系,可以用特性表、特性方程或状态图来描述这种关系。

SR触发器

仅有置位,复位功能的触发器称为SR触发器。它的特性表如表5.5.4 所示。

其实就是一主一从SR锁存器构成了SR触发器。

再次强调,触发器是在边沿触发,锁存器是在电平触发,别搞混了。

因此,SR 触发器的使用必须遵循 SR=0的约束条件。

就是因为这个约束条件,让SR触发器应用没有D触发器那么广泛。

事实上,生产厂家罕有专门的 SR触发器芯片提供,它主要出现于集成电路的内部结构,需要单独使用SR 触发器时,可以JK 触发器直接代用

令J=S,K=R,便可用JK触发器实现 SR 触发器的全部有效功能。

D触发器

上面说过了主从D触发器

D触发器的特性表如表5.5.1所示:

E=0时保持,E=1时才会触发,边沿触发。

这样来看,触发器就是通过两个锁存器级联,将电平敏感巧妙地转成了边沿触发。

在时钟脉冲的两个触发沿之间,触发器状态保持不变,即存储 1位二进制数据

JK触发器

表5.5.2 是JK 触发器的特性表,其中列出了触发器的输入信号J、K 和现态 Qn 在不同组合条件下的次态值。

由上面的描述可以看出,

  1. 当J=K=0时,JK触发器状态保持不变( Qn+1=Qn );
  2. 当J=0,K=1时,触发器的下一状态将被置0( Qn+1=0 );
  3. 当J=1,K=0时,将被置1( Qn+1=1 );
  4. 当J=K=1时,触发器的下一状态将翻转( Qn+1=Qn¯ )。

在所有逻辑类型的触发器中,JK 触发器具有最强的逻辑功能。在外部J、K信号控制下,它能执行保持、置0、置1和翻转四种操作,并可用简单的附加电路转换为其他功能的触发器。

J、K均为1,每输入一个脉冲,Q端的状态就改变一次,即触发器翻转一次。触发器的这种工作状态称为计数状态∶由触发器翻转的次数可以计算出时钟脉冲的个数。

同时,Q端的方波频率是时钟脉冲频率的二分之一。若以 CP(或 CP¯ )为输入信号,Q为输出信号,则一个触发器可作为二分频电路,两个触发器级联可获得四分频,其余类推。

JK相比SR触发器,就没有任何的约束条件了,功能完备,因此应用十分广泛。

T触发器

在某些应用中,需要对上述计数功能进行控制∶当控制信号T=1时,每来一个 CP(或CP¯)脉冲,它的状态翻转一次;而当T=0时,则不对CP(或CP¯)信号作出响应而保持状态不变。

具备这种逻辑功能的触发器称为T(Toggle)触发器。

T,toggle,也就是翻转切换的意思。

T触发器主要是对电平翻转这一动作进行关闭和开启。

T=0时保持,T=1时翻转,不具备置0和置1的功能。

由此可知,T触发器的功能是∶

  1. T=1时为翻转状态,Qn+1=Qn¯;
  2. T=0时为保持状态,Qn+1=Qn ;

比较式(5.5.3)和式(5.5.2),如果令J=K=T,则两式等效。

事实上只要将JK 触发器的J、K端连接在一起作为T输入端,就可实现T触发器的功能。

因此,在小规模集成触发器产品中没有专门的T触发器,如果有需要,可用其他功能的触发器转换。

如前所述,D触发器和 JK 触发器具有较完善的功能,有很多独立的中、小规模集成电路产品,而 T触发器和 SR 触发器可以很容易用D触发器或 JK 触发器转换而成。 

若干典型的时序逻辑电路

本节介绍在数字系统中广泛应用的几种典型时序电路——寄存器、移位寄存器和计数器的电路结构和工作原理,它们是时序电路的基本逻辑部件,与各种组合电路一起,可以构成逻辑功能极其复杂的数字系统。

寄存器、移位寄存器和计数器有很多种类的中规模集成电路,可直接用于较简单的数字系统。对于较复杂的时序电路设计,应选择可编程逻辑器件实现,大批量生产的电子产品采用专用集成电路则可降低成本。本节提及的几种中规模集成电路,都经过精心设计和多年改进,具有较完善的逻辑功能及电路性能,至今仍广泛应用。它们的设计思想和电路结构,可作为可编程逻辑器件或专用集成电路设计的范例。

在一些逻辑集成开发软件中也包含这些电路的"宏模块",直接引用可简化数字系统设计。总之,充分理解这些典型时序电路的工作原理和电路结构并灵活应用,对于各种数字系统的设计都有裨益。

寄存器

寄存器是数字系统中用来存储二进制数据的逻辑部件。

1个触发器可存储1位二进制数据,存储 N位二进制数据的寄存器需要用N个触发器组成。由8个触发器构成的8 位寄存器的逻辑图如图6.5.1所示。

图中, D7∼D0 是8 位数据输入端,在CP脉冲上升沿作用下,D7∼D0端的数据同时存入相应的触发器,是一种极为简单的同步时序电路。

当输出使能控制信号 OE¯=0 时,触发器存储的数据通过三态门输出端 Q7∼Q0 并行输出。

注意,使能端和时钟脉冲不是同一个东西。

移位寄存器

如果将若干个触发器级联成如图6.5.2 所示电路,则构成基本的移位寄存器。

以这张图为例,在Dsi端依次输入4个二进制数,经过4个时钟后,二进制流会依次到达各Q端,然后并行输出,也可以先存着,然后再经过4个时钟周期,再从Dso端串行输出。

一般来说,N位移位寄存器要由N个触发器构成,需要 N·TCP来完成串行到并行的数据转换,同样也需要 N·TCP 来实现并行到串行的数据输出。这里, TCP 为时钟周期。

从上述操作可以看出,移位寄存器只能用脉冲边沿敏感的触发器,而不能用电平敏感的锁存器来构成,因为在时钟脉冲高电平期间,锁存器输出跟随输入变化的特性将使移位操作失去控制。显然,移位寄存器属于同步时序电路

有时需要对移位寄存器的数据流向加以控制,实现数据的双向移动,其中一个方向称为右移,另一个方向则为左移,这种移位寄存器称为双向移位寄存器

具体参看大神文章。

计数器

计数器是最常用的时序电路之一,它们不仅可用于对脉冲进行计数,还可用于分频、定时、产生节拍脉冲以及其他时序信号。

概念不难理解,具体查看大神的文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值