正反器檢視原始碼討論檢視歷史
正反器(英語: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)。若資料及控制輸入從採樣時鐘邊沿之前就維持定值,且時間超過建立時間,在採樣時鐘邊沿之後就維持定值,且時間也超過維持時間,可以避免正反器的亞穩態 現象。