前導
解碼器(Decoder)是一種 數位邏輯電路,它的主要功能是將 二進制編碼輸入 轉換為 唯一的輸出信號。簡單來說,它可以根據輸入的 n 位數據,在 2ⁿ 個輸出 中選擇一個進行激活。
我們定義輸入與輸出:

解碼器的電路實現
以高態解碼器為例: 真值表如下所示。
從上圖中,我們可以看出輸入若為二進制的00,輸出為1的將會是對應的十進位數字,D0。
好,現在你有了基本的認識,不過我不打算畫出高態動作的解碼器,我們改畫低態動作的解碼器。
我們設計一個 低態輸出(Active Low Output) 並加上 閃控(Enable, EN) 的 3-to-8 解碼器。
解碼器的本質不變,但要注意一些事項:
功能特性:
- 輸入: 3 位二進制選擇線(A2, A1, A0)。
- 輸出: 8 條獨立輸出(D0 ~ D7),為 低態(Active Low,0 表示被選中)。
- 閃控(EN, Enable):
- EN = 1,解碼器關閉(所有輸出為 1)。
- EN = 0,解碼器正常運作,對應輸入的輸出變為 0,其餘保持 1。
好,此時畫出真值表:

接著我們可以很輕易地畫出組合邏輯電路:

好,3對8解碼器也是相同的道理,不過這邊我們就不畫出來了。

解碼器的應用
解碼器擴充設計
多個帶有 Enable 的解碼器可以一起使用來建構更大的解碼器。
我現在要示範: 使用 兩個 3-to-8 解碼器 來構建一個 4-to-16 解碼器的實現方法,架構如下:

- 輸入:4 個位元 → w, x, y, z
- 輸出:16 條線(D₀ ~ D₁₅)
- 使用兩個 3-to-8 解碼器(每個輸入 3 位元,輸出 8 條線)
- 當
w = 0
:上方的解碼器 Enable = 1,輸出 D₀ ~ D₇ 啟用 - 當
w = 1
:下方的解碼器 Enable = 1,輸出 D₈ ~ D₁₅ 啟用
使用解碼器實現組合邏輯:以全加法器為例
邏輯如下:
- n 位輸入 → 2ⁿ 輸出的 Decoder
- 解碼器的每個輸出都對應到一個 minterm(積項)
- 使用 OR gate 將對應 minterm 相加即可實現任意布林式
- 關於全加器的真值表:
- S(x, y, z):
S(1, 2, 4, 7)
- C(x, y, z):
S(3, 5, 6, 7)
- S(x, y, z):
現在請看下圖:

- 和(S):
- 接 D1、D2、D4、D7 到 OR gate → 輸出為 S
- 進位(C):
- 接 D3、D5、D6、D7 到 OR gate → 輸出為 C
本頻道持續更新中(內容涵蓋前端程式設計入門、大學必備程式設計入門、電子系專業課程入門、數學微積分題解)如果身旁有相關科系的學生,不妨推薦一下喔~
相信這裡會是家教或線上課程之外,高中、大學生系統性綜合學習的好選擇。
最後感謝您的觀看!