正反器
正反器(英语:Flip-flop, FF)[1] ,中国大陆译作“触发器”、台湾及香港译作“正反器”,是一种具有两种稳态的用于储存的元件,可记录二进制数字信号“1”和“0”。触发器是一种双稳态多谐振荡器(bistable multivibrator)。该电路可以通过一个或多个施加在控制输入端的信号来改变自身的状态,并会有1个或2个输出。触发器是构成时序逻辑电路以及各种复杂数字系统的基本逻辑单元。触发器和锁存器是在计算机、通讯和许多其他类型的系统中使用的数字电子系统的基本组成部分。触发器的线路图由逻辑门组合而成,其结构均由SR锁存器衍生而来(广义的触发器包括锁存器)。触发器可以处理输入、输出信号和时脉之间的相互影响。这里的触发器特指flip-flop,flip-flop一词主要是指具有两个状态相互翻转,例如编程语言中使用双缓冲 (flip-flop buffer)。
无论是那一种正反器,其电路结构中都是用 R-S门栓做为位元 (bit)的记忆装置,这种电路在系统开机时难以预测它会是逻辑“ 0”或“ 1”,为了可以掌控正反器的启始状态,实际的正反器电路中都会加入预置 (preset)与清除 (clear)的接脚或是其中的一个。
目录
种类
正反器可以分成几种常见的类型: SR (设置-重置,"set-reset"), D (资料或延迟,"data" or "delay", T(反转,"toggle"),和JK。 以上类型的正反器皆可用特征方程,以现有的输入、输出讯号(,导出下个(即下个时钟脉冲的)输出。
RS正反器
基本RS正反器又称SR锁存器,是触发器中最简单的一种,也是各种其他类型触发器的基本组成部分。两个与非门或或非门的输入端输出端进行交叉耦合或首尾相接,即可构成一个基本RS触发器。
当R与S皆为低电位,回授会让Q与(Q的反相)保持于一个固定的状态。当S("Set")为高电位,R("Reset")为低电位时,输出Q会被强制设定为高电位;相反的,当S为低电位,R为高电位时,输出Q会被强制设定为低电位。
SR闩锁运算 | ||||||||
---|---|---|---|---|---|---|---|---|
状态转移表 | 激发表 | |||||||
S | R | Qnext | 动作 | Q | Qnext | S | R | |
0 | 0 | Q | 保持 | 0 | 0 | 0 | X | |
0 | 1 | 0 | 重置 | 0 | 1 | 1 | 0 | |
1 | 0 | 1 | 设置 | 1 | 0 | 0 | 1 | |
1 | 1 | X | 不允许的输入 | 1 | 1 | X | 0 |
特征方程为<math>Q_{next} = S + \overline{R}Q</math>,且RS=0。
D正反器
D正反器有一个输入、一个输出和一个时脉输入,当时脉由0转为1时,输出的值会和输入的值相等。此类正反器可用于防止因为噪声所带来的错误,以及通过管线增加处理资料的数量。
<math>Q_{next} = D</math>
真值表如下:
D | CK | Q | Qnext |
0 | 1 | X | 0 |
1 | 1 | X | 1 |
X | 0 | 0 | 0 |
X | 0 | 1 | 1 |
JK正反器
JK 正反器设有两个输入,其输出的值由以下的算式来决定。
<math>Q_{next} = \overline{K}Q + J\overline{Q}</math>
JK正反器和正反器中最基本的RS触发器结构相似,其区别在于,RS正反器不允许R与S同时为1,而JK正反器允许J与K同时为1。当J与K同时变为1的同时,输出的值状态会反转。也就是说,原来是0的话,变成1;原来是1的话,变成0。 对应表如下:
JK正反器运算 | ||||||||
---|---|---|---|---|---|---|---|---|
状态转移表 | 激发表 | |||||||
J | K | 动作 | Qnext | Q | Qnext | 动作 | J | K |
0 | 0 | 保持 | Q | 0 | 0 | 不变 | 0 | X |
0 | 1 | 重置 | 0 | 0 | 1 | 设置 | 1 | X |
1 | 0 | 设置 | 1 | 1 | 0 | 重置 | X | 1 |
1 | 1 | 反转 | Q | 1 | 1 | 不变 | X | 0 |
T正反器
T正反器(Toggle Flip-Flop,or Trigger Flip-Flop)设有一个输入和输出,当时脉由0转为1时,如果T和Q不相同时,其输出值会是1。输入端T为1的时候,输出端的状态Q发生反转;输入端T为0的时候,输出端的状态Q保持不变。把JK正反器的J和K输入点连接在一起,即构成一个T正反器。
因此T正反器的算式为:
<math>Q_{next} = \overline{T}Q + T\overline{Q} = Q \oplus T</math>
T正反器运算 | ||||||||
---|---|---|---|---|---|---|---|---|
状态转移表 | 激发表 | |||||||
<math>T</math> | <math>Q</math> | <math>Q_{\rm next}</math> | 动作 | <math>Q</math> | <math>Q_{\rm next}</math> | <math>T</math> | 动作 | |
0 | 0 | 0 | 保持(无上升沿) | 0 | 0 | 0 | 不变 | |
0 | 1 | 1 | 保持(无上升沿) | 1 | 1 | 0 | 不变 | |
1 | 0 | 1 | 反转 | 0 | 1 | 1 | 反相 | |
1 | 1 | 0 | 反转 | 1 | 0 | 1 | 反相 |
同步正反器
主从正反器
为了防止空翻现象对正反器实际工作的影响,主从结构触发器被研制出来。
主从RS正反器
它由两个同步RS正反器以及一个反相器所构成。
主从JK正反器
由于主从正反器对输入信号有所约束,又开发出了主从JK正反器。
时序规范
- 建立时间(setup time)是指数据在被采样时钟边沿采样到之前,需保持稳定的最小时间。
- 维持时间(hold time)是指数据在被采样时钟边沿采样到之后,需保持稳定的最小时间。
在正反器的数据手册一般会标示元件的建立时间(tsu)及维持时间(th),一般会是以奈秒(ns)为单位,有些先进的正反器可以到数百皮秒(ps)。若资料及控制输入从采样时钟边沿之前就维持定值,且时间超过建立时间,在采样时钟边沿之后就维持定值,且时间也超过维持时间,可以避免正反器的亚稳态 现象。