什么是触发器?


25

触发器和锁存器似乎有许多不同的定义,其中一些是矛盾的。

我所教课程的计算机科学教科书可能是最令人困惑的(实际上,我对这本书不太信任,因为在某些地方这完全是错误的)。

我对锁存器(SR,门控SR,门控D)的工作方式以及电平触发和边沿触发器件之间的差异感到满意,至少在逻辑门和时序图方面。但是,我仍在寻找触发器和锁存器的简洁定义。

到目前为止,这是我所相信的:

“触发器是可以存储1位的边沿触发双稳态设备”。

“锁存器是一个电平触发的双稳态设备,可以存储1位。”

我已经看过了该网站上有关此内容的以前的帖子,尽管很启发,但我仍在寻找确定的内容。

我要检查的当前理解是在下图中...

并排是我所理解的是电平触发的门控D锁存器的两种实现。

在这些下方是一个上升沿检测器,在短暂的时间,当NOT门尚未响应从低到高的变化输入,即上升沿(红色为1,蓝色为0)。

在最后一个图中,边缘检测器已安装到标有日期的D锁存器中,这就是使它成为触发器的原因。

在此处输入图片说明

最后一个图是否真的是触发器,还是只是锁存器?

为什么我们需要给定的主从版本,那么该设备要简单得多?


1
@DanielTork为什么不回答呢?
2016年

10
在澳大利亚和新西兰,它们是敞篷鞋的一种,经常在海滩上穿着或在天气晴朗时穿。;)
KyranF

3
在美国也是如此。但是我们以前称它们为丁字裤,但是现在指的是不同的东西;-)
暂停,直到另行通知。

1
现在,我想看一幅用凉鞋绘制的电路图,即人字拖……
keshlam

1
@immibis在这里离开你,烂猕猴桃!
KyranF

Answers:


11

我今天一直在考虑这个定义。

正如其他人指出的那样,确切含义将有所不同。最重要的是,您甚至可能会在这个网站上看到比正确的人更多的错误。我不在乎维基百科怎么说!

但一般来说:

  • 触发器将在每个时钟周期最多更改一次其输出状态。
  • 锁存器将在其透明窗口期间更改其状态与数据转换一样多的次数。

另外,

  • 触发器非常安全。几乎是傻瓜。因此,综合工具通常使用触发器。但是,它们比闩锁要慢(并使用更多功率)。
  • 闩锁很难正确使用。但是,它们比触发器更快(并且更小)。因此,定制电路设计人员通常会在其数字模块(具有相反相位的任一端的锁存器)上“分散触发器”,以从不良的时序弧中挤出一些额外的皮秒。这显示在帖子的底部。

触发器最典型的特征是主从拓扑。这是两个耦合的(彼此之间可能存在逻辑)背对背的反相锁存器(在行业中有时称为L1 / L2)。

这意味着触发器固有地由两个存储元件组成:一个在低周期时保持,另一个在高周期时保持。

锁存器只是一个存储元件(SR锁存器,D锁存器,JK锁存器)。在我看来,仅仅因为引入一个时钟来控制数据流到存储元件中并不能使它成为触发器(尽管它可以使之像一个触发器:即触发了更多的上升沿)。它只是使其在特定时间内透明。

下面显示的是一个由两个SR锁存器创建的真实触发器(注意相位时钟相反)。

真差

另一个真正的触发器(这是VLSI中最常见的样式),来自两个D闩锁(传输门样式)。 再次注意相反的相位时钟

真正的触发器tg风格

如果您将时钟足够快地脉冲到锁存器,则它开始类似于触发器的行为(脉冲锁存器)。这在高速数据路径设计中很常见,这是因为从D-> Out和Clk-> Out的延迟较小,此外,在以下情况下,透明性赋予了更好的建立时间(保持时间也必须增加,付出的代价很小)。脉冲。这会使它成为触发器吗?并非如此,但可以肯定看起来像一个!

但是,这很难保证能够正常工作。您必须检查所有过程角点(快速nmos,慢pmos,高线帽,低线r;作为一个例子)和所有电压(低电压会引起问题),边缘检测器的脉冲必须保持足够宽才能实际打开锁存器并允许数据进入。

对于您的特定问题,关于为什么将其视为脉冲锁存器而不是触发器,这是因为您实际上只有一个电平敏感的位存储元件。即使脉冲很窄,它也不会形成产生触发器的锁止系统。

这是一篇描述与您的查询非常相似的脉冲锁存器的文章。一个相关的引言:“如果脉冲时钟波形触发一个锁存器,则锁存器将与时钟同步,类似于边沿触发的触发器,这是因为脉冲时钟的上升沿和下降沿在时序方面几乎相同。”

编辑 为了清楚起见,我包括了一个基于闩锁的设计图形。L1锁存器和L2锁存器之间有逻辑。这是一种可以减少延迟的技术,因为锁存器的延迟小于触发器的延迟。触发器是“分散”的,逻辑放在中间。现在,您可以节省几个门控延迟(与两端的触发器相比)!

基于闩锁的设计


“以主从拓扑为特征”-听起来更像是实现细节,而不是定义行为特征。行为上,触发器(根据您的定义)是一个碰巧被边沿触发的单位存储器。实际上,逼近边缘触发所需的实现魔术需要第二个存储元素!
奥利弗查尔斯沃思

1
@OliverCharlesworth:嗯,这是一个实现细节。以及物理,行为,结构和拓扑细节。您不能仅将闩锁称为触发器,因为它看起来像一个触发器。您也许可以摆脱它,但是要充分利用它们,您需要了解它们之间的区别。如果分开一个触发器,则会有两个反相的独立锁存器。您可以在中间填充逻辑。这比两端都装有触发器要快。它还允许通过循环边界“借用”时间,这对于高速设计是非常重要的概念。
jbord39 '16

这是DFF的一些更有用的图片,可能会有所帮助,请参阅最后一张。上面发布的DFF由于时钟的相反相位上的锁存(即,主锁存在上升沿,从锁存在下降沿)而造成混乱。electronics.stackexchange.com/a/84247/42957
mrbean

很高兴在这里看到一个真正的单相边沿触发触发器(“ TSPC” DFF)的示例。
mrbean


1

许多人将时钟设备称为“触发器”,将非时钟设备称为锁存器。早在我了解它的时候,它就是“时钟触发器”和“触发器”。两者均可被边缘触发。

有足够的歧义性,当它很重要时,它依赖于零件号,数据手册和时序图,而不是字词说明。


那么GTO-SCR也是触发器吗?
Bradman175 '16

1

感谢所有回答我问题的人。正如预期的那样,存在一些分歧。不幸的是,语义通常比理解考试更重要。如果我需要与考试委员会争辩不正确地标记A Level计算机科学学生的考试卷(并且我过去曾经这样做过),我想保持自己的优势。我想与您分享A Level官方课程教科书的几页内容。

第一个图是一个有源低SR锁存器。这本书称它为触发器。

在书中,书中说:“通过使用两个触发器,我们可以创建一个称为D型触发器的电路,该电路使用时钟控制电路控制输出,将其延迟一个时钟脉冲。D代表延迟。 。” 本文似乎是指主/从配置。第二张图(图14.2)被标记为D型触发器。它实际上是一个有源高门控D锁存器。

不是很有帮助!

我将决定“触发器通常以主从拓扑为特征”。正如jbord39所建议的那样,需要注意的是,术语“触发器”通常用于表示边沿触发的锁存器,有时甚至表示任何类型的锁存器。我认为这是书的来历,尽管没有说服力。

再次感谢大家。

在此处输入图片说明 在此处输入图片说明


2
是的,那本书是直接的误导。另外,D代表数据,而不是延迟...大声笑的重要部分是理解它们的工作原理,而不是太受语义的困扰。我曾在我工作过的公司向我解释过语义。它可能随区域和经验水平的不同而变化(尤其是相对于逻辑门的内部情况,这是我的工作重点)。
jbord39 '16

我必须同意jbord39。就像我在答案中显示的那样,E输入仅使数据影响输出。但是,您的教科书包含错误的信息。实际上很烦人。
Bradman175 '16

1

触发器不同于锁存器。它们都是双稳态电路,但实际上它们是两个不同的事物。

所述闩锁具有一个使能引脚,并监听到数据输入/输入只有当该引脚为高。低电平时,锁存器冻结并记忆其状态。现在,即使您操纵输入,它也不会做出反应。

所述触发器包含一个时钟引脚代替,其中仅在改变脉冲(电平移位)反应。想一想方波。关闭与开启之间的瞬态时间;关闭与开启之间的时间是电路对输入信号做出反应的时间。只有那时,才可以更改它,而不是在引脚稳定且完全导通时才可以更改。

触发器反应时间

注意,绿线表示它监听输入的时间,红线表示不监听输入的时间。锁存器仅在最上面的红线所示的时间段内允许输入。

在实际中,独立SR不是可行的电路。

感谢jbord39指出了错误。图片取自radio-elctronics.com并进行了编辑。


触发器不是锁存器,而是可以由两个相反相位的锁存器背靠背构建的。
jbord39 '16

我编辑了答案@ jbord39
Daniel Tork

谢谢@彼得·莫滕森。我没看到那些。
丹尼尔·托克

0

您在问题中使用的术语与我在模拟IC设计中使用的术语100%一致。锁存器具有电平敏感的使能信号,而触发器具有边缘敏感的使能信号,称为“时钟”。我在网上或某些书中注意到一些地方,似乎在两种类型中都使用了“触发器”一词,如果您只考虑两个稳定点之间的电路状态“触发器”,那么这很有意义,但是每当设计师在谈论时在我工作的电路中,锁存器对电平敏感,而触发器(或通常也只是“触发器”)对边缘敏感。

关于是否将触发器设计为具有边沿检测器的锁存器和一对主从锁存器的另一个问题。假设边缘检测器有足够的延迟,则任何一种方法都可以工作。锁存器将具有一些最小的启用时间。我怀疑使用边缘检测器技术制造高速触发器会更加困难,并且建立/保持时间可能会随着过程/电压/温度的变化而变化。


我不知道为什么我很少看到具有不重叠逻辑阈值的主/从对实现的触发器(因此,低于VDD / 4的输入电压将使能主机,而高于VDD / 2的电压将使能从机。如果有多个级联触发器馈入缓慢上升或嘈杂的输入信号时,行为是可靠的,只要在上升沿上没有一个在看到高于VDD / 2的电压后看到一个低于VDD / 4的电压
。– supercat

@supercat您正在谈论滞后?
Cort Ammon-恢复莫妮卡

@CortAmmon:不,更好。如果两个具有独立施密特触发器的触发器被级联,则如果第一个触发器识别出时钟沿,并在第二个触发器识别出其时钟沿之前将输入传播到输出,则可能导致错误的操作。如果触发器使用分离的输入阈值,则第二个触发器将在时钟上升到下限阈值以上时捕获其输入,但是第一个触发器的输出直到时钟达到上限阈值时才会改变。
超级猫

0

(如果您想知道OP的最后电路是触发器还是锁存器,请跳到最后。)

从根本上讲,触发器是一种逻辑门(或组件)的布置,它允许2种状态的锁存以及使这些状态发生变化的时钟引脚锁存。

现在,这是触发器和锁存器之间的区别。锁存器是异步的,而触发器是同步的。

  • 异步锁存器不需要更新引脚,CLK在触发器中通常将其称为(时钟的简称)引脚。他们关心的只是输入是否处于特定状态,HIGH或者LOW。当在输入中激发HIGHs和LOWs 的某种组合时,也就是电路决定执行某个动作,并且您想要的结果“立即”返回时。闩锁中有4种可能的动作。

    1. 没做什么
    2. 设置QHIGH
    3. 设置QLOW
    4. 无效状态(应该反转的值Q

    请注意,这Q'取决于Q

SR锁存器就是一个示例,它演示了锁存器可以执行的所有4种可能的动作: RS锁存器

  1. Sis LOWRis时LOW,没有任何变化。
  2. Sis HIGHRis时LOWQ设置为HIGH
  3. Sis LOWRis时HIGHQ设置为LOW
  4. Sis HIGHRis时HIGHQ以“不可预测的”快速速率反转。此状态无效。
  • 同步触发器允许您为数据引脚设置一个值。这意味着它只关心这些引脚的状态是什么。但是,电路尚未决定对输出采取任何措施。您具有上述的CLK别针。当CLK引脚改变状态时(从LOW变为HIGH,反之亦然,甚至到两者都改变​​),数据引脚被“捕获”,触发器基于从数据引脚捕获的数据的HIGHs和LOWs 的组合执行动作。CLK插针有两个动作。
  1. 没做什么
  2. 从数据引脚“捕获”数据,并在该特定时间根据数据引脚的值对输出执行操作。

同样,电路可以对输出执行4种可能的动作。

  1. 没做什么
  2. 设置QHIGH
  3. 设置QLOW
  4. 反转的值Q(现在有效,因为它只执行一次)

这不是弹跳板:

在此处输入图片说明

但是为什么你会问呢?该E引脚不是时钟引脚。时钟引脚使电路能够一次分析来自数据引脚的信息,该信息将作为指令发送,以对输出执行特定操作。但是,只要使能引脚保持高电平并不断设置输出值,这样的使能引脚就可使电路分析来自数据引脚的信息。因此,它是一个闩锁。(感谢jbord39指出我的错误)。

因此,触发器就像一个锁存器,只不过您需要一个额外的“确认”步骤,即CLK引脚。

那么,OP的最后一个电路是触发器吗?尝试将C保持为高电平,然后查看更改D的值时输出是否发生变化。如果输出发生变化,则应将其称为enable,它是一个锁存器。但是,如果输出没有改变(在这种情况下),那么它就是一个触发器。

图片来自维基百科。


不,很多锁存器都有时钟引脚。nxp.com/documents/data_sheet/74HC_HCT373.pdf实际上,您显示的电路是锁存器而不是触发器...
jbord39 '16

@ jbord39吗?什么时钟针?并且使能引脚与时钟引脚不同。
Bradman175 '16

@ jbord39,哎呀,你是对的。底部的两个电路是锁存器。请重新考虑我的答案。
Bradman175 '16

让我看看我是否理解。触发器检查每个输入并打开输出,锁存器检查时钟并操作是否为1,输出D的值。所以SR锁存器是一个触发器,因为它没有计时,但是D锁存器是真正的锁存器。
丹尼尔·托克

@DanielTork问题是您有多个“时钟”,并且时钟不能在引脚之间交替,也可以用作数据引脚。
Bradman175 '16
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.