觸發器(英語:Flip-flop, FF),中國大陸譯作「觸發器」、臺灣及香港譯作「正反器」,是一種具有兩種穩態的用於儲存的元件,可記錄二進制數字信號「1」和「0」。觸發器是一種雙穩態多諧振盪器bistable multivibrator)。該電路可以通過一個或多個施加在控制輸入端的信號來改變自身的狀態,並會有1個或2個輸出。觸發器是構成時序邏輯電路以及各種複雜數字系統的基本邏輯單元。觸發器和鎖存器是在計算機通訊和許多其他類型的系統中使用的數字電子系統的基本組成部分。

R1, R2 = 1 kΩ, R3, R4 = 10 kΩ
觸發器電路圖,取自Eccles與Jordan在1918年時申請專利的檔案。

觸發器的線路圖由邏輯門組合而成,其結構均由SR鎖存器衍生而來(廣義的觸發器包括鎖存器)。觸發器可以處理輸入、輸出信號和時序脈波(CK)之間的相互影響。這裡的觸發器特指flip-flop,flip-flop一詞主要是指具有兩個狀態相互翻轉,例如編程語言中使用flip-flop buffer(翻譯作雙緩衝)[來源請求]

觸發器的種類

正反器可以分成幾種常見的類型: SR (設置-重置,"set-reset"), D (數據或延遲,"data" or "delay"[1]), T(反轉,"toggle"),和JK。 以上類型的正反器皆可用特徵方程,以現有的輸入、輸出訊號(Q),導出下個(即下個時鐘脈衝的)輸出(Qnext)。

RS觸發器

 
或非所組成的RS觸發器

基本RS觸發器又稱SR鎖存器,是觸發器中最簡單的一種,也是各種其他類型觸發器的基本組成部分。兩個與非門或非門的輸入端輸出端進行交叉耦合或首尾相接,即可構成一個基本RS觸發器。

當R與S皆為低電位,回授會讓Q與Q(Q的反相)保持於一個固定的狀態。當S(Set)為高電位,R(Reset)為低電位時,輸出Q會被強制設定為高電位;相反的,當S為低電位,R為高電位時,輸出Q會被強制設定為低電位。

SR閂鎖運算[2]
狀態轉移表 激發表
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

特徵方程為 ,且RS=0。

D觸發器

 
D正反器符號。> 是時脈輸入,D是數據輸入,Q是暫存數據輸出,Q'則是Q的反相值,S為1時強迫Q值為1,R為1時強迫Q值為0,以下圖例同

D觸發器有一個輸入、一個輸出和一個時脈輸入,當時脈由0轉為1時,輸出的值會和輸入的值相等。此類觸發器可用於防止因為噪聲所帶來的錯誤,以及通過管線增加處理數據的數量。

 

真值表如下:

D CK Q Qnext
0 X 0
1 X 1
X 0(1) 0 0
X 0(1) 1 1

JK觸發器

 
JK正反器符號。J、K是數據輸入
 
JK正反器的時序圖

JK觸發器的名稱來源不明。

JK觸發器設有兩個輸入,其輸出的值由以下的算式來決定。

 [3]

JK觸發器和觸發器中最基本的RS觸發器結構相似,其區別在於,RS觸發器不允許R與S同時為1,而JK觸發器允許J與K同時為1。當J與K同時變為1的同時,輸出的值狀態會反轉。也就是說,原來是0的話,變成1;原來是1的話,變成0。

對應表如下:

JK正反器運算[4]
狀態轉移表 激發表
J K CK 動作 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
X X 0(1) 保持 Q

T觸發器

 
T正反器符號。T是數據輸入

T觸發器(Toggle Flip-Flop,or Trigger Flip-Flop)設有一個輸入和輸出,當時脈由0轉為1時:如果輸入端T為1,則輸出端的狀態Q發生反轉;如果輸入端T為0,則輸出端的狀態Q保持不變。把JK觸發器的J和K輸入點連接在一起,即構成一個T觸發器。

因此T觸發器的算式為:

 

T正反器運算[4]
狀態轉移表 激發表
      動作       動作
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觸發器

由於主從RS觸發器對輸入信號有所約束(R跟S不能同時為1),又開發出了主從JK觸發器。

時序考量

  • 建立時間(setup time)是指數據在被採樣時鐘邊沿採樣到之,需保持穩定的最小時間。
  • 維持時間(hold time)是指數據在被採樣時鐘邊沿採樣到之,需保持穩定的最小時間。

在正反器的數據手冊一般會標示元件的建立時間(tsu)及維持時間(th),一般會是以奈秒(ns)為單位,有些先進的正反器可以到數百皮秒(ps)。若數據及控制輸入從採樣時鐘邊沿之前就維持定值,且時間超過建立時間,在採樣時鐘邊沿之後就維持定值,且時間也超過維持時間,可以避免正反器的亞穩態英語metastability現象。

參見

參考資料

  1. ^ Shiva, Sajjan G. Computer design and architecture 3rd. CRC Press. 2000: 81. ISBN 978-0-8247-0368-4. 
  2. ^ Roth, Charles H. Jr. "Latches and Flip-Flops." Fundamentals of Logic Design. Boston: PWS, 1995. Print.
  3. ^ M Morris Mano, Michael D Ciletti. Digital design: With an Introduction to the Verilog HDL. 培生教育. 2013: 第216頁. ISBN 9780273764526. 
  4. ^ 4.0 4.1 Mano, M. Morris; Kime, Charles R. Logic and Computer Design Fundamentals, 3rd Edition. Upper Saddle River, NJ, USA: Pearson Education International. 2004: pg283. ISBN 0-13-191165-1. 

外部連結