碎碎思 · 2022年04月20日

触发器全知道

在电子学中,触发器(Flip-Flop)或锁存器(latch)是具有两种稳定状态并可用于存储状态信息的电路,专业术语双稳态多谐振荡器(多谐振荡器是一种电子电路,用于实现各种简单的两态设备,例如张弛振荡器、定时器和触发器,bistable multivibrator)。该电路可以通过施加到一个或多个控制输入的信号来改变状态,并将具有一个或两个输出。它是时序逻辑中的基本存储元素。触发器和锁存器是计算机、通信和许多其他类型系统中使用的数字电子系统的基本组成部分。

触发器的线路图由逻辑门组合而成,其结构均由SR锁存器派生而来(广义的触发器包括锁存器)。触发器可以处理输入、输出信号和时序脉波(CK)之间的相互影响。这里的触发器特指flip-flop,flip-flop一词主要是指具有两个状态相互翻转,例如编程语言中使用flip-flop buffer(翻译作双缓冲)

触发器和锁存器用作数据存储元件。触发器是一种存储单个位(二进制位)数据的设备;它的两个状态之一代表“一”,另一个代表“零”。这种数据存储可用于存储状态,这种电路在电子学中被描述为时序逻辑。在有限状态机中使用时,输出和下一个状态不仅取决于其当前输入,还取决于其当前状态(因此也取决于先前的输入)。它还可用于脉冲计数,以及将可变定时输入信号与某个参考定时信号同步。

触发器可以是电平触发(异步、透明或不透明)或边沿触发(同步或时钟)。触发器一词历来泛指电平触发和边沿触发电路,它们使用门存储单个数据位。最近,一些作者保留术语“触发器”专门用于讨论时钟电路。简单的通常称为透明闩锁。\[1\] \[2\]使用这个术语,电平敏感触发器称为透明锁存器,而边沿触发触发器简称为触发器。使用任一术语,术语“触发器”指的是存储单个数据位的设备,但术语“锁存器”也可以指使用单个触发器存储任意数量的数据位的设备。术语“边缘触发”和“电平触发”可用于避免歧义。\[3\]

当启用电平触发锁存器时,它变得透明,但边沿触发触发器的输出仅在单一类型的时钟边沿(正向或负向)上改变。

b5ba20ab244052dfbfad4de9e61cab91.png

触发器发展历史

f0c925a039571f62dec81aeffaada313.png

来自 Eccles 和 Jordan 1918 年专利的触发器原理图,一个被绘制为具有正反馈路径的级联放大器,另一个被绘制为对称交叉耦合对

1918 年,英国物理学家s William Eccles 和 F. W. Jordan发明了第一台电子触发器。它最初被称为Eccles-Jordan 触发电路,由两个有源元件(真空管)组成。该设计用于 1943 年的英国Colossus 密码破译计算机 ,即使在引入集成电路之后,这种电路及其晶体管版本在计算机中也很常见。早期的触发器被称为触发电路或多谐振荡器。

7f7ea8fb7c48d5ddf756287159917499.jpg

根据美国喷气推进实验室( Jet Propulsion Laboratory)的工程师 PL Lindley 的说法,下面详述的触发器类型(SR、D、T、JK)首先在 1954 年由 Montgomery Phister 的加州大学洛杉矶分校计算机设计课程中讨论,然后出现在他的《数字计算机的逻辑设计》一书。Lindley 当时在 Eldred Nelson 手下的 Hughes Aircraft 工作,他创造了术语 JK 来表示当两个输入都打开时会改变状态的触发器(逻辑上的“1”)。其他名字是菲斯特创造的。它们与下面给出的一些定义略有不同。在设计逻辑系统时,Nelson 将以下字母分配给触发器输入:#1:A & B,#2:C & D,#3:E & F,#4:G & H,#5:J & K. Nelson在 1953 年提交的专利申请中使用了符号“ j -input”和“ k -input”。

302cf0fb4001b7d826e88bc33e5029de.png

基于双极结型晶体管的传统(简单)触发器电路

触发器可以是简单的(透明的或异步的)或同步的。在硬件描述语言(HDL)的上下文中,简单的语言通常被描述为锁存器,而时钟控制的语言被描述为触发器。

简单的触发器可以围绕一对交叉耦合的反相元件构建:真空管、双极晶体管、场效应晶体管、反相器和反相逻辑门都已用于实际电路。

时钟设备是专门为同步系统设计的;此类设备会忽略其输入,除非在专用时钟信号(称为时钟、脉冲或选通)的转换中。时钟使触发器根据转换时输入信号的值改变或保持其输出信号。一些触发器在时钟的上升沿改变输出,另一些在下降沿改变输出。

由于初级放大级是反相的,因此可以将两个级连续连接(作为级联)以形成所需的同相放大器。在这种配置中,每个放大器可以被视为另一个反相放大器的有源反相反馈网络。因此,尽管电路图通常绘制为对称的交叉耦合对(这两幅图最初都在 Eccles-Jordan 专利中引入),但两个级在同相环路中连接。

f0c925a039571f62dec81aeffaada313.png

触发器类型

触发器可以分为常见的类型:SR(“set-reset”)、D(“data”或“delay”)、T(“toggle”)和JK。特定类型的行为可以通过所谓的特征方程来描述,该方程导出“next”(即,在下一个时钟脉冲之后)输出。

复位锁存器

当使用静态门作为构建块时,最基本的锁存器是简单的SR 锁存器,其中 S 和 R 代表 set 和 reset。它可以由一对交叉耦合的NOR或NAND 逻辑门构成。存储的位出现在标记为 Q 的输出上。

302cf0fb4001b7d826e88bc33e5029de.png

基于双极结型晶体管的传统(简单)触发器电路

SR NOR锁存器

c5635546adfe0f1a848225242cac64d7.jpg

SR 锁存器的动画,由一对交叉耦合的NOR 门构成。红色和黑色分别表示逻辑“1”和“0”。

当 R 和 S 输入均为低电平时,反馈将 Q 和 ~Q 输出保持在恒定状态, ~Q 是Q的补码。如果 S ( Set ) 脉冲高电平而 R ( Reset ) 保持低电平,则 Q 输出强制为高,当 S 回到低时保持高;同样,如果在 S 保持低电平时 R 脉冲为高电平,则 Q 输出被强制为低电平,并在 R 恢复为低电平时保持低电平。

SR 锁存操作真值表

b4aef478e7305142fda90562d52485dd.png

注意:X 表示don't care ,即 0 或 1 都是有效值。

R = S = 1 组合称为受限组合或禁止状态,因为两个 NOR 门随后输出零,它打破了逻辑方程 Q = not (~Q)。这种组合在两个输入可能同时变低的电路中也不合适(即从受限转换到保持)。根据门之间的传播时间关系(竞争条件),输出将锁定在 1 或 0。

SR NOR锁存器的工作原理。

5c8cc91dc0fec7f5cf6761049c8dfa54.jpg

SR 锁存器动画。黑色和白色分别表示逻辑“1”和“0”。

  •   S = 1,R = 0:设置   
  •   S = 0,R = 0:保持
  •   S = 0,R = 1:复位
  •   S = 1,R = 1:不允许
        

从受限组合 (D) 到 (A) 的转变会导致不稳定状态。

为了克服受限组合,可以将门添加到将转换(S, R) = (1, 1)为非受限组合之一的输入。那可以是:

Q = 1 (1, 0) – 称为S(主控)锁存器 Q = 0 (0, 1) – 称为R(主控)锁存器

这几乎在每个可编程逻辑控制器中都完成了。

保持状态 (0, 0) – 称为E-latch

或者,可以进行受限组合以切换输出。结果是JK 锁存器。

7a94fb135c622e48894782e3957c7335.png

SR NOR锁存器的工作原理

SR NOR锁存器的特征方程为:

e9f67024b07ad9d741463009d12c3f39.png

另一个表达式是:

0fba0b03b7d10b61bc66b33d61462923.png

SR NAND 锁存器

7259c96be0b3d0703713c0d32fc39cd7.png

由交叉耦合的NAND 门构成的SR锁存器。

下面显示的电路是一个基本的 NAND 锁存器。输入通常指定为 S 和 R,分别表示 set 和 reset。由于 NAND 输入通常必须为逻辑 1 以避免影响锁存动作,因此在该电路中输入被认为是反相的(或低电平有效)。

即使在控制输入信号发生变化后,电路也使用反馈来“记住”并保持其逻辑状态。当 S 和 R 输入都为高电平时,反馈将 Q 输出保持在之前的状态。

SR锁存器真值表

20cd9bb4645c79b3fa4e800395ea0a0a.png

36b41142d02c94f4c5eee793561bcb5d.png

SR NAND 锁存器的符号

SR AND-OR 锁存器

c3cceb8c17cb12ccc1e1413a925ad6be.png

一个 SR AND-OR 锁存器。浅绿色表示逻辑“1”,深绿色表示逻辑“0”。锁存器当前处于保持模式(无变化)。

从教学的角度来看,将 SR 锁存器绘制为一对交叉耦合组件(晶体管、门、管等)对于初学者来说通常很难理解。一种教学上更容易理解的方法是将锁存器绘制为单个反馈回路,而不是交叉耦合。下面是一个 SR 锁存器,它带有一个带有一个反相输入的AND门和一个OR门。请注意,锁存功能不需要反相器,而是使两个输入都处于高电平有效状态。

SR AND-OR 锁存器真值表

9bd63a213809add38e63791a4180902d.png

请注意,SR AND-OR 锁存器具有明确定义 S = 1、R = 1 的优点。在上述版本的 SR AND-OR 锁存器中,它优先于 R 信号而不是 S 信号。如果需要 S 优先于 R,这可以通过将输出 Q 连接到 OR 门的输出而不是 AND 门的输出来实现。

SR AND-OR 锁存器更容易理解,因为两个门都可以单独解释。当 S 或 R 均未设置时,或门和与门都处于“保持模式”,即它们的输出是来自反馈回路的输入。当输入 S = 1 时,或门的输出变为 1,而与来自反馈回路的其他输入无关(“set模式”)。当输入 R = 1 时,与门的输出变为 0,而与来自反馈回路的其他输入无关(“reset模式”)。由于输出 Q 直接连接到 AND 门的输出,因此 R 优先于 S。绘制为交叉耦合门的锁存器可能看起来不太直观,因为一个门的行为似乎与另一个门交织在一起。

请注意,SR AND-OR 锁存器可以使用逻辑转换转换为 SR NOR 锁存器:将 OR 门的输出和 AND 门的第二个输入反相,并在这两个添加的反相器之间连接反相 Q 输出;根据德摩根定律,两个输入反转的与门等效于或非门。

JK 锁存器

JK 锁存器的使用频率远低于 JK 触发器。JK 锁存器遵循以下状态表:

JK锁存器真值表

b42b919559df06a5ee3c972cbd5033e9.png

因此,JK 锁存器是一个 SR 锁存器,当通过 11 的输入组合时,它会触发其输出(在 0 和 1 之间振荡)。与 JK 触发器不同,JK 锁存器的 11 输入组合是不是很有用,因为没有指示切换的时钟。

门控锁存器(闩锁)和条件透明

闩锁设计为透明的。也就是说,输入信号的变化会导致输出的立即变化。当另一个输入(“enable”输入)未被断言时,可以将附加逻辑添加到简单的门控锁存器以使其不透明或不透明。当多个门控锁存器彼此跟随时,使用相同的使能信号,信号可以一次通过所有这些锁存器传播。然而,通过一个透明高锁存器和一个透明低(或不透明高)锁存器,实现了主从触发器。

门控 SR 锁存器

f27eeea563f84b88acff6189bff6ea70.png

与非门控 SR 锁存器(时钟 SR 触发器)。注意反相输入。

932c4eab62ae04dc179f088855689c24.png

由AND门(左侧)和NOR门(右侧)构成的门控 SR 锁存器电路图。

可以通过将第二级 NAND 门添加到反相SR 锁存器(或将第二级与门添加到直接SR 锁存器)来制作同步 SR 锁存器(有时是时钟 SR 触发器)。额外的 NAND 门进一步反转输入,因此SR锁存器变为门控 SR 锁存器(并且 SR 锁存器将转换为具有反转使 能的门控SR锁存器)。

当 E 高( enable 真)时,信号可以通过输入门到达封装锁存器;除了 (0, 0) = hold之外的所有信号组合,然后立即在 (Q, ~Q ) 输出上再现,即锁存器是透明的。

E 低(enable 假)时,锁存器关闭(不透明)并保持上次 E 为高时的状态。

使能输入有时是时钟信号,但更常见的是读或写选通信号。当使能输入是时钟信号时,锁存器被称为对电平敏感(对时钟信号的电平),而不是像下面的触发器那样 对边沿敏感。

门控 SR 锁存器真值表

201f80bcd6112fcfeb74f204712fcd7c.png

9b40d31dd3fd0d4d63a0355a007f4285.png

门控 SR 锁存器的符号

门控 D 锁存器

该锁存器利用了以下事实:在门控 SR 锁存器的两个有效输入组合(01 和 10)中,R 是 S 的补码。输入 NAND 级将两个 D 输入状态(0 和 1)转换为这两个输入通过反转数据输入信号来组合下一个SR锁存器。使能信号的低状态产生无效的“11”组合。因此,门控 D 锁存器可被视为单输入同步 SR 锁存器。此配置可防止应用受限输入组合。它也被称为透明锁存器、数据锁存器或简单的门控锁存器。它有一个数据输入和一个启用信号(有时称为时钟或控制)。透明这个词来自这样一个事实,即当使能输入打开时,信号直接通过电路传播,从输入 D 到输出 Q。门控 D 锁存器也对时钟电平敏感或使能信号。

D存器通常用作 I/O 端口或在异步系统中,或在同步两相系统(使用两相时钟的同步系统)中,其中两个在不同时钟相位上运行的锁存器会阻止数据透明性,就像在主机中一样——从触发器。

锁存器可用作集成电路,通常每个芯片具有多个锁存器。例如,74HC75是7400 系列中的四通D锁存器。

下面的真值表显示,当enable / c lock输入为0时,D输入对输出没有影响。当 E/C 为高时,输出等于 D。

门控 D 锁存器真值表

fa6634033fff8ed8c0ae4dc763379b05.png

1eabe34b771e03f34ea34f2395a0a62a.png

门控 D 锁存器的符号

90ca5f76801d5247853b3f77c25319e3.png

基于SR NAND 锁存器 的门控 D 锁存器

7c576d43fd8661ff6633475a1368543c.png

基于 SR NOR 锁存器的门控 D 锁存器

b5269ffe97182cb0ea3854dc008b13c8.jpgb5269ffe97182cb0ea3854dc008b13c8.jpg

动画门控 D 锁存器。黑色和白色分别表示逻辑“1”和“0”。

  •   D = 1,E = 1:设置   
  •   D = 1,E = 0:保持     
  •   D = 0,E = 0:保持     
  •   D = 0,E = 1:复位
        

e85abd8ac78a86d9bfebceb9060b505d.png

传输晶体管逻辑中的门控 D 锁存器,类似于 CD4042 或 CD74HC75 集成电路中的锁存器。

厄尔锁存器(厄尔闩锁)Earle latch

经典的门锁设计有一些不受欢迎的特性。它们需要双轨逻辑或逆变器。输入到输出的传播可能需要多达三个门延迟。输入到输出的传播不是恒定的——一些输出需要两个门延迟,而另一些需要三个。

一个成功的替代品是厄尔闩锁。它只需要一个数据输入,它的输出需要两个恒定的门延迟。此外,在某些情况下,Earle 锁存器的两个门级可以与驱动锁存器的电路的最后两个门级合并,因为许多常见的计算电路都有一个 OR 层,然后是 AND 层作为它们的最后两个级别. 合并锁存功能可以实现没有额外门延迟的锁存。这种合并通常用于流水线计算机的设计,事实上,它最初是由 John G. Earle 开发的。

厄尔闩锁没有危险。如果省略中间的与非门,则得到极性保持锁存器,这是常用的,因为它需要较少的逻辑。但是,它容易受到逻辑风险的影响。有意偏斜时钟信号可以避免这种危险。

7675ccc4318e77d796f1a2d60185a2bd.png

Earle 锁存器使用互补使能输入:使能低电平有效 (E_L) 和使能高电平有效 (E_H)

64c15ff652179ac69d01b3dacd92fc35.jpg

厄尔闩锁动画。黑色和白色分别表示逻辑“1”和“0”。

  •   D = 1,E_H = 1:设置     
  •   D = 0,E_H = 1:复位   
  •   D = 1,E_H = 0:保持
        

D 触发器

f7632b715b9e3297a9a13154379dc984.png
D 触发器符号

D触发器被广泛使用。它也被称为“data”或“delay”触发器。

D 触发器在时钟周期的特定部分(例如时钟的上升沿)捕获 D 输入的值。捕获的值成为 Q 输出。在其他时候,输出 Q 不会改变。D触发器可以看作是一个存储单元、一个零阶保持器或一条延迟线。

D 触发器真值表

2a1d78a353578782c03158563f1c3418.png
(X表示无关条件,表示信号无关)

IC 中的大多数 D 型触发器都具有强制 set 或者 reset状态(忽略 D 和时钟输入)的能力,就像 SR 触发器一样。通常,非法 S = R = 1 条件在 D 型触发器中得到解决。设置 S = R = 0 使触发器的行为如上所述。以下是其他可能的 S 和 R 配置的真值表:

f59c008d3094eaccc80e7c0639144708.png

a7ca1ed58b3bd2d331593eb42d0923a5.png

4 位串行输入并行输出 (SIPO) 移位寄存器

这些触发器非常有用,因为它们构成了移位寄存器的基础,而移位寄存器是许多电子设备的重要组成部分。D触发器相对于D型“透明锁存器”的优势在于D输入引脚上的信号在触发器被计时的那一刻被捕获,并且D输入上的后续变化将被忽略,直到下一个时钟事件。一个例外是一些触发器有一个“复位”信号输入,它会将 Q 复位(为零),并且可能与时钟异步或同步。

上述电路将寄存器的内容向右移动,在时钟的每个有效转换上移动一位。输入 X 被移到最左边的位位置。

经典的正边沿触发 D 触发器

几种不同类型的边沿触发 D 触发器

99c1fef3f348dc4b0a99f4a3081f7023.png

一个上升沿触发的 D 触发器

a14e9e43af8f862cd3000b89aafc7a86.png

一个上升沿触发的 D 触发器

主从边沿触发 D 触发器

c24b3d553c8e9eb859324568d5513374.png

主从 D 触发器。它在使能输入的下降沿响应(通常是时钟)

9feec90080e5b66fcc63771888f23177.png

在时钟上升沿触发的主从 D 触发器的实现

通过串联两个门控 D 锁存器并将使能输入反相到其中一个来创建主从 D 触发器。之所以称为主从锁存器,是因为主锁存器控制从锁存器的输出值 Q 并在从锁存器启用时强制从锁存器保持其值,因为从锁存器总是从主锁存器复制其新值并更改其值仅响应主锁存器和时钟信号值的变化。

对于上升沿触发的主从 D 触发器,当时钟信号为低电平(逻辑 0)时,第一个或“主”D 锁存器(反相时钟信号)看到的“使能”为高电平(逻辑 1) . 这允许“主”锁存器在时钟信号从低电平转换为高电平时存储输入值。随着时钟信号变高(0 到 1),第一个锁存器的反相“启用”变低(1 到 0),并且在主锁存器的输入处看到的值被“锁定”。几乎同时,第二个或“从”D 锁存器的两次反相“启用”随着时钟信号从低电平变为高电平(0 到 1)。这允许现在“锁定”的主锁存器在时钟上升沿捕获的信号通过“从属”锁存器。

移除电路中最左边的反相器会创建一个 D 型触发器,该触发器在时钟信号的下降沿触发。这有一个像这样的真值表:

d0fcb0659dd4ac1633beaa7dd135832d.png

双沿触发 D 触发器

cec54421bb3cd50ce1fab57e2f2ee7b8.png

双边沿触发 D 触发器的实现

在时钟的上升沿和下降沿读入新值的触发器称为双边沿触发触发器。如图所示,可以使用两个单边触发 D 型触发器和一个多路复用器来构建这种触发器。

11a065c3df88b17a7e855eaa09f6982a.png

双边沿触发 D 触发器的电路符号

边沿触发的动态 D 存储元件

f59ac2be501072a22d65c189196a7a76.png

具有复位功能的动态边沿触发触发器的 CMOS IC 实现

只要时钟足够频繁,就可以使用动态电路(其中信息存储在电容中)来制作 D 触发器的有效功能替代方案;虽然不是真正的触发器,但由于其功能作用,它仍然被称为触发器。虽然主从 D 元件在时钟边沿触发,但其组件均由时钟电平触发。所谓的“边沿触发 D 触发器”,尽管它不是真正的触发器,但它不具有主从属性。

边沿触发的 D 触发器通常在使用动态逻辑的集成高速操作中实现。这意味着数字输出存储在寄生器件电容上,而器件不转换。这种动态触发器的设计还可以实现简单的复位,因为复位操作可以通过简单地对一个或多个内部节点进行放电来执行。一种常见的动态触发器种类是真正的单相时钟 (TSPC) 类型,它以低功率和高速执行触发器操作。然而,动态触发器通常不会在静态或低时钟速度下工作:如果有足够的时间,泄漏路径可能会使寄生电容放电到足以导致触发器进入无效状态的程度。

T 触发器

20e306892f04856cd6f3aa4cd111608d.png
T型触发器的电路符号

如果 T 输入为高电平,则只要时钟输入被选通,T 触发器就会改变状态(“toggles”) 。如果 T 输入为低电平,则触发器保持先前的值。这种行为由特征方程描述:

62944e415f7cf6d1acf429431040c7a7.png

并且可以用真值表来描述:

T触发器真值表
502647ad7b464586aa836d98e7f8d747.png

当 T 保持高电平时,触发触发器将时钟频率除以 2;也就是说,如果时钟频率为 4 MHz,则从触发器获得的输出频率将为 2 MHz。这种“除法”功能适用于各种类型的数字计数器。AT 触发器也可以使用 JK 触发器(J 和 K 引脚连接在一起并充当 T)或 D 触发器(T 输入 XOR Q驱动 D 输入)构建。

JK 触发器

bfb7a343e36b99ec5862dcb5b1457fb7.png

正沿触发 JK 触发器的电路符号

c054dfe97c1b345709fac5dc7fb62976.png

JK触发器时序图

JK 触发器通过将 J = K = 1 条件解释为“翻转”或切换命令来增强 SR 触发器的行为(J: Set, K: Reset)。具体来说,J=1,K=0的组合是设置触发器的命令;J = 0,K = 1的组合是复位触发器的命令;J = K = 1 的组合是触发触发器的命令,即将其输出更改为其当前值的逻辑补码。设置 J = K = 0 保持当前状态。要合成 D 触发器,只需设置 K 等于 J 的补码(输入 J 将充当输入 D)。类似地,要合成一个 T 触发器,设置 K 等于 J。因此 JK 触发器是通用触发器,因为它可以配置为 SR 触发器、D 触发器或T触发器。

JK触发器的特征方程为:

8c402dec293f589902a949e02ccc8f55.png

对应的真值表为:

JK触发器真值表
7adfb53ff38826e433f8bb17c52a662f.png

时序

时序参数

acffb1db1d8485c41f00282c2cfed002.png

触发器设置、保持和时钟到输出时序参数

输入必须在时钟上升沿附近的一段时间内保持稳定,称为孔径。想象一下在睡莲上拍一张青蛙的照片。假设青蛙之后跳入水中。如果你拍青蛙跳入水中的照片,你会看到青蛙跳入水中的模糊照片——不清楚青蛙处于哪种状态。但如果你在青蛙稳稳地坐着的时候拍照在垫子上(或稳定地在水中),您将获得清晰的图像。同样,触发器的输入必须在触发器的孔径期间保持稳定。

建立时间是在时钟事件之前数据输入应保持稳定的最短时间,以便时钟可靠地采样数据。

保持时间是时钟事件后数据输入应保持稳定的最短时间,以便时钟可靠地采样数据。

孔径是建立时间和保持时间的总和。在此期间,数据输入应保持稳定。

恢复时间是在时钟事件之前异步置位或复位输入应处于非活动状态的最短时间,以便时钟可靠地采样数据。因此,异步置位或复位输入的恢复时间类似于数据输入的建立时间。

移除时间是在时钟事件之后异步置位或复位输入应处于非活动状态的最短时间,以便时钟可靠地采样数据。因此,异步置位或复位输入的移除时间类似于数据输入的保持时间。

应用于异步输入(设置、复位)的短脉冲不应在恢复移除期间完全应用,否则将完全无法确定触发器是否将转换到适当的状态。在另一种情况下,异步信号只是在恢复/移除时间之间进行一次转换,最终触发器将转换到适当的状态,但输出上可能会或可能不会出现非常短的毛刺,具体取决于在同步输入信号上。第二种情况可能对电路设计有重要意义,也可能没有意义。

设置和复位(和其他)信号可以是同步的或异步的,因此可以用建立/保持或恢复/移除时间来表征,并且同步性非常依赖于触发器的设计。

在验证较大电路的时序时,通常需要区分建立/保持时间和恢复/移除时间,因为可能会发现异步信号不如同步信号重要。这种差异化使电路设计人员能够独立定义这些类型的信号的验证条件。

亚稳态

触发器存在称为亚稳态的问题,当两个输入(例如数据和时钟或时钟和复位)几乎同时发生变化时,就会发生这种情况。当顺序不明确时,在适当的时序限制内,结果是输出可能会出现不可预测的行为,需要比正常时间长很多倍的时间才能稳定到一种状态或另一种状态,甚至在稳定之前振荡几次。理论上,安定下来的时间是没有限制的。在电脑里系统,如果在另一个电路使用它的值之前状态不稳定,这种亚稳态会导致数据损坏或程序崩溃;特别是,如果两条不同的逻辑路径使用触发器的输出,当它尚未解析为稳定状态时,一条路径可以将其解释为 0,而另一条路径可以将其解释为 1,从而使机器进入不一致的状态。

通过确保数据和控制输入在时钟脉冲之前和之后的指定时段(分别称为建立时间(t su ) 和保持时间(th h ))保持有效和恒定,可以避免触发器中的亚稳态。这些时间在设备的数据表中指定,现代设备通常在几纳秒到几百皮秒之间。根据触发器的内部组织,可以构建具有零(甚至负)设置或保持时间要求但不能同时具有两者的设备。

不幸的是,并不总是能够满足建立和保持标准,因为触发器可能连接到一个实时信号,该信号可能随时变化,不受设计人员的控制。在这种情况下,设计人员能做的最好的事情就是根据电路所需的可靠性将出错的概率降低到一定水平。抑制亚稳态的一种技术是将两个或多个触发器连接成一个链,以便每个触发器的输出馈入下一个触发器的数据输入,并且所有设备共享一个公共时钟。使用这种方法,亚稳态事件的概率可以降低到可以忽略不计的值,但绝不会为零。随着串联触发器数量的增加,亚稳态的概率越来越接近于零。级联的触发器数量称为“ranking”;“dual-ranked”触发器(两个触发器串联)是一种常见的情况。

所谓的metastable-hardened触发器是可用的,它通过尽可能减少建立和保持时间来工作,但即使这些也不能完全消除问题。这是因为亚稳态不仅仅是电路设计的问题。当时钟和数据中的转换在时间上接近时,触发器被迫决定哪个事件首先发生。无论设备制造得有多快,输入事件总是有可能靠得太近,以至于无法检测到哪个事件先发生。因此,从逻辑上讲,构建一个完美的亚稳态触发器是不可能的。触发器有时以最大稳定时间为特征(它们在指定条件下保持亚稳态的最长时间)。

传播延迟

触发器的另一个重要时序值是时钟到输出延迟(数据手册中的常用符号:t_CO)或传播延迟(t_P ),即触发器在时钟边沿。从高到低的转换时间(t_PHL)有时与从低到高的转换时间(t_PLH)不同。

当级联共享相同时钟的触发器时(如在移位寄存器中),重要的是要确保前一个触发器的 t_CO长于后一个触发器的保持时间 (t_h ),因此,出现在后续触发器输入端的数据会在时钟的有效沿之后正确“移入”。如果触发器物理上相同,则通常可以保证t_CO和 t_h之间的这种关系。此外,为了正确操作,很容易验证时钟周期必须大于总和 t_su  + t_h。

总结

触发器至少可以通过两种方式进行概括:使它们成为 1-of-N 而不是 1-of-2,以及使它们适应具有两个以上状态的逻辑。在 1-of-3 编码或多值三进制逻辑的特殊情况下,这种元件可以称为触发器。

在传统的触发器中,恰好两个互补输出中的一个为高电平。这可以推广到具有 N 个输出的存储元件,其中恰好一个为高(或者,恰好其中一个为低)。因此,输出始终是one-hot(分别是 one-cold)表示。结构类似于传统的交叉耦合触发器;每个输出,当高,抑制所有其他输出。或者,可以使用或多或少的传统触发器,每个输出一个,并带有额外的电路,以确保一次只有一个是真实的。

传统触发器的另一种概括是用于多值逻辑的存储元件。在这种情况下,存储元件恰好保留其中一种逻辑状态,直到控制输入引起变化。此外,还可以使用多值时钟,从而产生新的可能的时钟转换。

原文:OpenFPGA
作者:碎碎思

相关文章推荐

更多FPGA技术干货请关注FPGA 的逻辑技术专栏。
推荐阅读
关注数
10523
内容数
516
FPGA Logic 二三事
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息