🔄 Flip-Flop 基礎教學 - D、T、JK 完全解析

🎯 什麼是 Flip-Flop?

Flip-Flop 是數位電路中最基本的記憶元件,能夠儲存1個bit的資訊。

它們是構成 Register 和 Counter 的基本積木!

1. 基本概念

🔑 重要特性

🔍 Clock Edge 說明

2. D Flip-Flop (Data Flip-Flop)

D Flip-Flop - 資料型正反器

📋 基本符號

D CLK Q Q' R D

📊 真值表 (Truth Table)

CLK D Q(next) 說明
0 0 輸出變為 0
1 1 輸出變為 1
0 或 1 X Q 無 Clock edge 時保持不變
D Flip-Flop 特性方程式:
Q(next) = D

🔍 工作原理

  • D = Data: D 輸入決定下一個狀態
  • 簡單直接: 輸出就是輸入的延遲版本
  • 無競爭: 不會有不確定狀態
  • Clock 控制: 只有在 Clock edge 時才改變

時序圖 (Timing Diagram)

CLK D Q Clock edge Clock edge Q follows D Q follows D

🎯 主要應用

  • 資料儲存: 最基本的記憶體元件
  • Register 構建: 多個 D FF 組成 Register
  • 資料同步: 確保資料在正確時間點更新
  • Pipeline: 流水線設計中的延遲元件

3. T Flip-Flop (Toggle Flip-Flop)

T Flip-Flop - 切換型正反器

📋 基本符號

T CLK Q Q' R T

📊 真值表 (Truth Table)

CLK T Q(next) 說明
0 Q 保持不變
1 Q' 切換狀態 (Toggle)
0 或 1 X Q 無 Clock edge 時保持不變
T Flip-Flop 特性方程式:
Q(next) = T ⊕ Q = T·Q' + T'·Q

🔍 工作原理

  • T = Toggle: 控制是否切換狀態
  • T=0: 保持原狀態不變
  • T=1: 切換狀態 (0→1 或 1→0)
  • 計數功能: 很適合做計數器

時序圖 - T=1 的情況

CLK T Q Toggle Toggle Toggle Toggle

🎯 主要應用

  • 二進位計數器: 每個 clock 計數 +1
  • 頻率除法器: 輸出頻率 = 輸入頻率 ÷ 2
  • Ripple Counter: 串聯多個 T FF
  • 狀態切換: 需要交替狀態的場合

4. JK Flip-Flop (最通用的正反器)

JK Flip-Flop - 最強大的正反器

📋 基本符號

J CLK K Q Q' R J K

📊 真值表 (Truth Table)

CLK J K Q(next) 說明
0 0 Q 保持不變 (Hold)
0 1 0 重置為 0 (Reset)
1 0 1 設定為 1 (Set)
1 1 Q' 切換狀態 (Toggle)
0 或 1 X X Q 無 Clock edge 時保持不變
JK Flip-Flop 特性方程式:
Q(next) = J·Q' + K'·Q

🔍 工作原理

  • J=0, K=0: Hold (保持) - 狀態不變
  • J=0, K=1: Reset (重置) - 輸出變為 0
  • J=1, K=0: Set (設定) - 輸出變為 1
  • J=1, K=1: Toggle (切換) - 狀態反轉

🌟 JK Flip-Flop 的優點

  • 最通用: 可以實現所有其他 FF 的功能
  • 無禁止狀態: 所有輸入組合都有明確定義
  • 功能豐富: Hold, Set, Reset, Toggle 都可以
  • 設計靈活: 適合複雜的序向電路設計

時序圖 - 展示所有功能

CLK J K Q Hold Set Hold Reset Hold Toggle J=0,K=0 J=1,K=0 J=0,K=0 J=0,K=1 J=0,K=0 J=1,K=1

🎯 主要應用

  • 通用計數器: 可設計任意進制計數器
  • 序向電路設計: 狀態機的基本元件
  • 控制邏輯: 複雜的控制序列
  • 其他 FF 模擬: 可以模擬 D FF 和 T FF

5. Flip-Flop 之間的轉換

🔄 如何用 JK 實現其他 FF

JK → D Flip-Flop

J = D, K = D'
(D 接到 J,D 的反相接到 K)

JK → T Flip-Flop

J = T, K = T
(T 同時接到 J 和 K)

D → T Flip-Flop

D = T ⊕ Q
(需要額外的 XOR gate)

6. 總比較表

特性 D Flip-Flop T Flip-Flop JK Flip-Flop
輸入數量 1 個 (D) 1 個 (T) 2 個 (J, K)
主要功能 資料儲存 狀態切換 通用控制
特性方程式 Q+ = D Q+ = T ⊕ Q Q+ = J·Q' + K'·Q
最適合應用 Register, 資料同步 計數器, 分頻器 序向電路設計
設計複雜度 簡單 簡單 中等
功能多樣性

7. 在 Chapter 6 中的應用

🎯 Register 應用

⚡ Counter 應用

⚠️ 常見錯誤提醒

🧠 記憶口訣

D = Data (資料直通車) 🚗

T = Toggle (切換開關) 🔄

JK = Just Kool (萬能工具) 🛠️


應用記憶法:

📝 Register 用 D (Data storage)

🔢 Counter 用 T (Toggle counting)

🎛️ 複雜設計用 JK (Just Kool for everything)

📚 小考重點整理

🎯 必須會的:

⚡ 解題技巧: