我们为什么要为触发器计时?


19

我正在尝试了解拖鞋和闩锁。我正在读Morris Mano的《数字逻辑》一书。我无法理解的一件事是为什么要给触发器计时?

我了解为什么我们需要“启用”或门控闩锁。但是时钟有什么用?我不明白这一点。为什么我们不能仅启用所需的触发器并给它们输入?当我们更改输入时,输出也会更改。为什么我们必须在时钟上升沿或下降沿时改变输出(在边沿触发触发器的情况下)?

对此任何帮助表示赞赏。

Answers:


18

我们为触发器计时的原因之一是,当触发器的输出通过某些逻辑功能馈入其自身的输入时,不会出现任何混乱。

如果使用触发器的输出来计算其输入,则应该使我们具有井井有条的行为:防止触发器的状态发生变化,直到输出(以及输入)稳定为止。

此时钟使我们能够构建计算机,它们是状态机:它们具有当前状态,并根据当前状态和一些输入来计算其下一个状态。

例如,假设我们要构建一台计算机,该计算机“计算”一个从0000到1111的递增4位计数,然后回绕到0000并继续运行。我们可以通过使用一个4位寄存器(一组四个D触发器)来实现。寄存器的输出通过组合逻辑函数进行运算,该函数将1(一个四位加法器)相加以产生递增的值。然后将该值简单地反馈给寄存器。现在,只要时钟边沿到达,寄存器就会接受新值,该新值是1加上之前的值。我们有序,可预测的行为会逐步遍历二进制数而不会出现任何故障。

时钟行为在其他情况下也很有用。有时,电路具有许多输入,这些输入无法同时稳定。如果输出是由输入立即产生的,那么它将混乱,直到输入稳定为止。如果我们不希望依赖于输出的其他电路出现混乱,则使该电路成为时钟。我们留出足够的时间使输入稳定下来,然后指示电路接受这些值。

时钟本质上也是某些触发器语义的一部分。没有时钟输入就无法定义AD触发器。如果没有时钟输入,它将要么忽略其D输入(无用!),要么一直复制该输入(没有触发器!)。RS触发器没有时钟,但是使用两个输入控制允许输入为“自计时”的状态:即作为输入以及状态更改的触发器。所有触发器都需要某种输入组合来对它们的状态进行编程,而某种输入组合可以使它们保持其状态。如果所有输入组合都触发编程,或者如果所有输入组合都被忽略(状态保持不变),则这将无用。现在什么时钟?时钟很特别 专用输入,用于区分是忽略其他输入还是对设备进行编程。将此作为单独的输入很有用,而不是在多个输入之间进行编码。


当您解释计数器或状态机的时钟需求时,这很有意义。如果根本没有时钟,那么计数器只是不断更改其值(&reset)并无限启动?和状态机一样。(根据我从Wiki上读到的内容,计数器只是一种状态机,因为状态被更改了)。但是即使使用寄存器,我们也使用时钟,那为什么呢?我也想知道在没有时钟的情况下在任何应用程序中都可以使用任何触发器吗?
2013年

现在到了稳定点,如果输出不断变化,那么其他需要触发器输出的设备将无法正确接收它,并且可能会出现不稳定的行为。那么这是稳定性问题吗?现在,我试图理解稳定性的概念。尤其是您解释了这两个参数:“防止触发器的状态更改直到输出(以及输入)稳定之前。” “有时电路有许多输入,这些输入无法同时稳定”
avi 2013年

7

可以将一个上升沿触发器设想为两个背靠背的锁存器,其中一个在时钟信号变低后不久启用,并保持启用直到变高。第二个在时钟变高后不久启用,并保持启用直到变低。在短暂的时间内没有启用任何触发器,这意味着触发器的输出可以通过组合逻辑安全地反馈到其输入。在一个时钟周期内对输出进行更改可能会导致输入发生更改,但是该输入更改在下一个时钟周期之前不会起作用。

从历史上看,数字设备通常使用所谓的“两相时钟”,该时钟具有两条时钟线,每个时钟线在非重叠间隔内都很高。所有锁存器分为两组,一个时钟控制第一组锁存器,另一时钟控制第二组锁存器。在大多数情况下,每组的输出仅用于计算另一组的输入。每个时钟周期由第一个时钟上的一个或多个脉冲组成,其中至少一个必须满足最小长度规格,第二个时钟上的一个或多个脉冲(相同要求)组成。这种设计的一个优点是,只要时钟相位之间的空载时间超过时钟偏移量,它就可以非常容忍时钟偏移。

一种更“现代”的方法是使每个锁存元件(寄存器)接收一条时钟线,并本质上生成其自己的内部不重叠时钟。这就要求最大时钟偏斜不超过寄存器之间的最小传播时间,但是现代工具可以比过去几十年更加精确地控制时钟偏斜。此外,在许多情况下,单相时钟消除了将逻辑划分为两组的需要,从而使设计更简单。


2

我们都知道,数字真实电路将包含许多门。信号可能必须采取多条路径才能到达给出输出的最后一个门。信号需要花费一些时间才能在到达最后一个门的不同路径上“传播”。在不同的路径上传播所需的时间是不同的。这导致了我们所说的故障。由于某些路径比其他路径短,因此会出现毛刺,并且当信号较早到达最后一个门时采用较短的路径时,就会在较长路径上的其他信号到达门口之前立即生效。暂时导致的输出是错误的,并且可能在数字电路中变得危险,从而导致错误传播。

现在我来说明为什么我们需要一个时钟。时钟实质上将电路“同步”为单个外部信号。可以将其视为电路已调整为喜欢音乐的节拍。与此时钟同步发生,没有时钟=电路被禁用。通过使用时钟,我们可以确保电路的不同部分同时协调工作。这样,电路的行为更加可预测。受温度和制造变化引起的传播延迟变化​​的影响也较小。这涵盖了时钟。

触发器是这样的数字电路元件,当“时钟边缘”出现时,它会采取行动(响应于其输入端口的输入而改变其输出)。时钟沿是指时钟信号从0变为1或从1变为0的时间。只要画出一个时钟波,您就会知道我的意思。还有另一组称为锁存器的元素,当某个控制信号处于特定逻辑电平且不等待任何边沿时,锁存器的输出会更改以反映输入,该控制信号在锁存器中称为ENABLE。当enable为1并更改其输出或enable为0时,闩锁可能会起作用。这取决于闩锁类型。相反,人字拖确实可以事情当它们由时钟EDGE供电时。请注意锁存器和触发器之间的区别,并且请记住,锁存器连接在一起以创建触发器,从而使能仅在时钟沿出现时才使触发器执行某些操作。在这种情况下,我们将Enable信号命名为Clock,它也更有意义。人类的时钟变成了滴答滴答声,触发器只在滴答滴答声中起作用,而在滴答滴答声之间什么也没有。

如果仍然不清楚,那么您将通过观看印度数字电路技术学院在youtube上的nptelhrd讲座而受益。


“通过使用时钟,我们可以确保电路的不同部分同时协调工作。”-我们如何做到这一点?我将检查视频。
2013年

请注意,触发器是改变其输出以反映上升沿触发器的控制信号的上升沿(或下降沿,如果是下降沿触发的触发器)的输入的设备。此控制信号由于其周期性而被称为时钟,更像壁钟的滴答声。如果存在时钟信号,则触发器将执行某些操作,否则输入将不会对输出产生任何影响。请从早期就知道锁存器和触发器之间的区别和相似之处,以免引起混淆。
量子231

1

诸如异步计数器之类的东西。这是一个:- 在此处输入图片说明

它也被称为波纹计数器,因为当输入脉冲到达输入端(改变第一触发器的状态)时,状态的改变需要有限的时间长度才能波动到其余的触发器。在那短暂但有限的时间内,输出ABCD将具有不可预测的瞬态值,直到最终触发器建立为止。

如果输出ABCD然后全部通过D型触发器馈送并一起计时,则在建立周期之后的一段时间,ABCD的“更好”版本将永远不会“显示”这种瞬态行为。

为了避免这种情况,工程师有时会使用同步时钟电路。抱歉,输入是从该图的左侧开始的,Q0至Q3映射到上图的ABC和D:-

在此处输入图片说明

与在输出端带有一堆D类型的异步计数器相比,它稍微复杂一点,但是它更快,并且零件更少。


好吧,有了计数器很有意义。但是,有没有在没有时钟的情况下使用触发器的应用程序?或没有时钟永远不能使用触发器?
2013年

@avi第一个示例(异步计数器)不必视为从“时钟”获取其输入。可能是来自磁传感器的脉冲,目的是查看轴旋转的速度。系统上会有一个“主”时钟,它每秒每秒“计数”计数,但是进入计数器的“信号”不一定是时钟。模拟比较器的输出可以为D类型的输出“计时”“ 1”,而另一个模拟比较器的输出可以将D类型复位-这可用于产生源自模拟波形的信号-无时钟如此
安迪(aka Andy)

我认为波动计数器的行为与同步计数器的行为在数量上而不是质量上有所不同。两个计数器的输出将在时钟脉冲到达后的一段时间内变为无效,并在此后的一段时间内再次变为有效。同步计数器将具有一个较小的窗口,在该窗口中其输出无效,但是无论如何该窗口都不为零。还值得注意的是,绘制的计数器的最大计数速度将受到计数器长度的限制。一个人可以避免这种限制...
supercat

...通过使进位链从例如第四位开始,生成前三位的“与”,然后仅当来自进位链的输入为高,位2为高,位1时才使每个位翻转为高,位0为高。即使信号到达进位链所需的时间达到了七个计数脉冲,这也没问题,因为到达计数xxx111 ... 111000时,进位链将开始传播进位,但是直到输出时才重要到达xxx111 ... 111111之后的时钟脉冲。
2013年

它们的纹波计数器很简单,但是在我使用的数字电路的真实世界中却遭到了人们的憎恶。很高兴知道它们的存在,但极不可能允许您将它们用于实际项目。它总是可以用于琐碎的练习中,而这些练习的“异步”性质不成问题。
量子231

0

因为它比异步系统更容易设计同步系统(同步系统意味着组合逻辑和时钟触发器的任何集合),所以同步系统更可靠。但是,异步状态机设计值得研究,因为与同步系统相比,异步状态机可以更快地计算输出,并且功耗更低。

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.