數位邏輯與基本元件

解碼器(decoder)

解碼器把一個精簡的數字變成「多選一」的選擇。想像一排編號的信箱,和一位職員,他讀出一個 3 位數的信箱號碼,就點亮恰好對應的那一個信箱。解碼器就是這位職員的矽版本:它接收一個指名某選擇的 n 位元輸入,並啟動它 2^n 條輸出線中恰好一條——號碼與輸入相符的那條——其餘全部維持關閉。它把以二進位數字表達的「哪一個?」轉成以單一條啟用電線表達的「就是這一個!」。

一個 2 對 4 解碼器有 2 個輸入(A1、A0)和 4 個輸出(Y0..Y3)。輸入 00 時拉高 Y0;01 拉高 Y1;10 拉高 Y2;11 拉高 Y3——永遠恰好一條輸出為高。每條輸出只是輸入以正確的「正/反」樣式做 AND:例如 Y2 就是 A1 AND(not A0)。一般而言一個 n 對 2^n 解碼器在輸入等於 k 時點亮第 k 號輸出。許多解碼器還有一個致能(enable)輸入,當它關閉時,不論位址為何都強制所有輸出為低——這對把小解碼器拼成大解碼器很有用。

它為何重要:解碼器正是把一個二進位位址轉成「在眾多之中實體地選出一個」的方法。在記憶體陣列裡,列位址被送進一個解碼器,啟動恰好一條字線,選出要讀或寫的那一列。指令的運算碼也會被部分解碼,以選出要執行哪個運算。連多工器的選擇都能看成一個解碼器在驅動一組開關。它的搭檔裝置編碼器則反向運作:給定眾多線中一條為啟用,它輸出那條線的二進位號碼——例如在回報多個中斷中哪一個被觸發的優先權邏輯裡很有用。

一個選出八顆記憶體晶片之一的 3 對 8 解碼器:把位址最高的 3 個位元送進去。位址位元 101 拉高第 5 號輸出線,那是第 5 號晶片的晶片選擇線;其餘七顆晶片維持未選取、忽略這次存取。一個小小的二進位數字,悄悄地從八顆裡剛好挑出一顆晶片。

n 條位址位元進、2^n 條線中一條出:解碼器就是一個數字變成單一條被選中電線的方式。

解碼器和解多工器幾乎是同一個電路;差別在於用意。解碼器依位址啟動一條輸出,而解多工器用同樣的選擇把一個真實的資料輸入導向某一條輸出——骨架相同,框架不同。

又称
address decoder解碼電路位址解碼器