優先編碼器(英語:priority encoder)是一種能將多個二進制輸入壓縮成更少數目輸出的電路算法。其輸出是序數0到輸入最高有效位的二進制表示。優先編碼器常用於在處理最高優先級請求時控制中斷請求

如果同時有兩個或以上的輸入作用於優先編碼器,優先級最高的輸入將會被優先輸出。[1] 下圖是一位4線-2線編碼器的例子,其中最高優先級的輸入在功能表的左側,而「x」代表無關項,即可是1也可是0,也就是說不論無關項的值是什麼,都不影響輸出,只有最高優先級的輸入有變化時,輸出才會改變。

I3 I2 I1 I0 O1 O0
0 0 0 x 0 0
0 0 1 x 0 1
0 1 x x 1 0
1 x x x 1 1
4線-2線優先編碼器

優先編碼器可以排列連接在一起,組成更大規模的編碼器,如6個4線-2線優先編碼器可以組成1個16線-4線編碼器,其中訊號源作為4個編碼器的輸入,前4個編碼器的輸入作為2個編碼器的輸入。

優先編碼器相比簡單編碼器電路有更強的處理能力,因為其能處理所有的輸入組合情況。

簡單編碼器

編輯

簡單編碼器電路可以接受2n中的一個有效輸入,並在n條並行輸出線上生成一個二進制碼。

例如,一位4線-2線編碼器輸入4位,輸出2位。當同時有超過一個輸入線有效時,下例的編碼器可能會錯誤地表現出優先編碼器的行為。

 
4線-2線編碼器的門級電路圖
I3 I2 I1 I0 O1 O0
0 0 0 1 0 0
0 0 1 0 0 1
0 1 0 0 1 0
1 0 0 0 1 1
4線-2線編碼器

如果一個輸入電路只允許一個有效輸入,簡單編碼器相對於優先編碼器是一個更好的選擇,因為需要比較少的邏輯閘來實現。

參考文獻

編輯
  1. ^ M. Morris Mano, Michael D. Ciletti, "Digital Design", 4th Edition, Prentice Hall, 2006, ISBN 978-0-13-198924-5.