触发器的比赛条件是什么?


8

我已经阅读了两本教科书,并咨询了老师,但似乎没有什么可以澄清我的疑问。

我教过的两个种族的版本是-

  1. 当SR触发器的S和R输入为逻辑1时,输出将变得不稳定,这被称为竞争条件。

  2. 当SR触发器的S和R输入为逻辑1,然后将输入更改为任何其他条件时,输出将变得不可预测,这称为竞争条件。

哪一个是对的?或者,他们俩都错了,如果真是错,种族到底是什么?


2
是关于锁存器还是关于触发器的问题?一些答案描述的是锁存器,但称它们为触发器。此处讨论了区别:electronics.stackexchange.com/questions/21887/…–
nobar

我正在谈论触发器(边缘触发机制)
Soham,2015年

这个问题用S和R来表达,因此显然与时钟逻辑无关。如果露西弗(Lucyfer)想提出不同的问题,他可以编辑问题,我认为发表评论不仅要阐明一个问题,而且还要将其旋转180度是不合适的。
Wouter van Ooijen 2015年

@WoutervanOoijen我同意,对于OP来说,在他的问题中澄清他想要边沿触发的时钟SR触发器是个好主意。实际上,当前所有答案(包括我删除的我的答案)都使用了闩锁。我要承认,OP在他的原始帖子中确实提到了触发器,而不是闩锁,并且我没有理解其中的区别。 这是一个边沿触发触发器 -请注意,它需要串联两个SR锁存器。
tcrosley

在我的书中,边缘触发的事物有一个数据输入,而具有S和R输入的事物是简单的交叉耦合NAND或NOR。这比FlipFlop / Register / Latch术语更稳定,因此我只能将他的问题解释为是指简单电路。但是我将答案扩展到了水平触发和边缘触发的事物。
Wouter van Ooijen 2015年

Answers:


7

种族条件是与时间有关的现象。标准的SR FF(两个交叉耦合的NAND或NOR门)对于任何稳定的输入都是稳定的。

在此处输入图片说明

“乐趣”在S = 1 R = 1输入中,即存储情况。FF的状态取决于哪个状态在11之前出现,如果是01,则FF处于Q = 1状态,如果是10,则FF处于Q = 0状态。这是FF的经典记忆效果。

但是,如果它是00,并且两个输入在时间上都足够接近彼此,则FF可以进入亚稳态,这种状态的持续时间可能长于门的延迟时间。在这种状态下,输出可以缓慢地向其最终状态漂移,或者在建立最终状态之前显示阻尼振荡。稳定所需的时间不受限制,但是其分布会随着t >> gate-delay的变化而迅速下降。

在正常操作中,从00输入开始,一个输入变为1,并且触发器中的反馈环路通过两个门将其传播(或者说,其余的0输入),直到FF处于稳定状态。当从第一个输入的传播仍在进行时,另一个输入也变为1时,该输入也开始传播,任何人都猜哪个将获胜。在某些情况下,两个都不会立即获胜,并且FF会进入亚稳态。

竞争条件是,从第00个输入状态开始,一个输入变为0,而第二个输入也变为0,直到第一个变化的影响消失。现在,这两个更改的效果正在“争夺”优先级。

所述说明是针对简单的Set-Reset FF(或锁存器,或如何调用)的。可以将电平触发电路(我称其为锁存器)视为RS-FF,两个输入均由使能输入(此图中的CLK)来控制:

在此处输入图片说明

在该电路中,交叉耦合的NANDS的隐藏“输入”的相似的00-> 11转换仍然会导致竞争。当D输入同时随着CLK输入从1变为0的变化而发生这种过渡(由于反相器引起的延迟)。

可以认为一个真正的时钟(边沿触发)存储电路由两个锁存器组成,并由相反的时钟电平(主从配置)使能。显然,第一个闩锁仍然容易受到相同的竞争条件的影响。

在此处输入图片说明

PS谷歌搜索适当的图片,我从Flip flop中如何存储1位获得了它们:)


原谅我的愚蠢,但我仍然无法理解这个答案中“竞赛”实际上意味着什么。
苏厄姆,2015年

添加了一些文本
Wouter van Ooijen 2015年

该答案适用于锁存器,而不是触发器。OP对时钟SR触发器感兴趣。请参阅他的帖子下方的评论。
tcrosley15年

您添加的图片不是边缘触发的SR触发器(这是此问题的主题),而是边缘触发的D触发器。看到我在问题下方的注释中链接到的图像,这是一个边缘触发的SR触发器。我不知道您为什么现在要带D触发器。关于第一锁存易受相同的竞争条件明显底部的图片上面您的评论并不适用于d触发器,两个输入锁存器不能同时为1
tcrosley

由于延迟,他们可能会在短暂的时间内出现。要获得(可能)亚稳态情况,只需片刻。
Wouter van Ooijen 2015年

1

当输出的最终状态取决于输入的到达方式时,就会发生数字电路中的竞争状态。

数字电路具有固有的延迟。因此,输入中的一个可能比其他输入早或晚到达,即原本打算同时出现的输入实际上由于沿其路径的不同延迟而实际上到达了不同的时间。

结果,输出发生不可预测的变化。换句话说,输入之间存在着竞争,即哪一个会影响输出。通常,这采取尖峰的形式,可能既高又低。

对于您的情况:

在此处输入图片说明

考虑一下,如果S和R都很高,将会发生什么。

假设最初q = 0且q'= 1。然后

如果A在B之前到达,则Q将变为High,这将暂时将Q'设置为低,从而理想地应将Q保持为高,依此类推。

片刻之后,B到达(持续时间很短)。这将使Q'高,从而将Q'设置为高。

您可以查看B在A之前到达的情况。

现在实际上,这里发生了两件事:

1)输出暂时取决于首先到达的输入。这本质上是比赛条件。

2)最终状态为q = 1和q'= 1。这不是比赛条件。这仅仅是一个无效状态。理想情况下,Q和Q'必须相反,此处不是这种情况。

我希望我是正确的。


1

所有答案 在此处输入图片说明

首先,它不是围绕条件进行比赛的。。不要混淆它。

当S = R = 1时,Q = Q′= 1。它的定义很好。但是当S和R同时从1(高到低)变为0时,就会出现问题。

晶体管将试图摆脱饱和...

现在,晶体管Qr和Q都将尝试脱离饱和...但是,如果在批量生产中很少能达到相等的饱和延迟,则... ...饱和延迟较小的晶体管将获胜,并将锁存电路。 ..

如果Qr更快,则M处的电压将下降且Q = 0如果Qs更快,则N处的电压将下降且Q'= 0

因此输出是不可预测的

即使速度相等,输出Q和Q'也会在1到0之间波动,然后在0到1之间波动,因此输出不稳定...


0

我认为情况1是适当的。即,当SR锁存器的两个输入均为“ 1”时,输出不稳定。

现在,在这种情况下,从S = R ='1'将输入更改为S = R ='0',假定输出为先前状态。但是以前的状态是不稳定的。因此,输出可能会锁定为“ 1”或“ 0”。您无法预测。

因此,如果输入从“ 11”更改为“ 00”,则情况2是正确的。


好吧,如果您使用
也门,

0

只要我们在JK触发器中同时为J和K提供1,就应该对输出进行补充。这称为“围绕条件竞争”(类似于“操作系统”中的相同概念,其中最终输出取决于执行过程的顺序)。

为了克服这个问题,我们使用主从触发器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.