正反器查看源代码讨论查看历史
正反器(英语: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)。若資料及控制輸入從採樣時鐘邊沿之前就維持定值,且時間超過建立時間,在採樣時鐘邊沿之後就維持定值,且時間也超過維持時間,可以避免正反器的亞穩態 現象。