優先編碼器
優先編碼器(英語: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 |
優先編碼器可以排列連接在一起,組成更大規模的編碼器,如6個4線-2線優先編碼器可以組成1個16線-4線編碼器,其中訊號源作為4個編碼器的輸入,前4個編碼器的輸入作為2個編碼器的輸入。
優先編碼器相比簡單編碼器電路有更強的處理能力,因為其能處理所有的輸入組合情況。
簡單編碼器
編輯簡單編碼器電路可以接受2n中的一個有效輸入,並在n條並行輸出線上生成一個二進制碼。
例如,一位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 |
如果一個輸入電路只允許一個有效輸入,簡單編碼器相對於優先編碼器是一個更好的選擇,因為需要比較少的邏輯閘來實現。
參考文獻
編輯- ^ M. Morris Mano, Michael D. Ciletti, "Digital Design", 4th Edition, Prentice Hall, 2006, ISBN 978-0-13-198924-5.