优先编码器

优先编码器（）是一种能将多个二进制输入压缩成更少数目输出的电路或算法。其输出是序数0到输入最高有效位的二进制表示。优先编码器常用於在处理最高优先级请求时控制中断请求。

如果同时有两个或以上的输入作用於优先编码器，优先级最高的输入将会被优先输出。M. Morris Mano, Michael D. Ciletti, "Digital Design", 4th Edition, Prentice Hall, 2006, ISBN 978-0-13-198924-5.下图是一位4线－2线编码器的例子，其中最高优先级的输入在功能表的左侧，而“x”代表无关项，即可是1也可是0，也就是说不论无关项的值是什么，都不影响输出，只有最高优先级的输入有变化时，输出才会改变。

I3I2I1I0 O1O0 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位。当同时有超过一个输入线有效时，下例的编码器可能会错误地表现出优先编码器的行为。

I3I2I1I0 O1O0 0  0  0  1  0  0 0  0  1  0  0  1 0  1  0  0  1  0 1  0  0  0  1  1

如果一个输入电路只允许一个有效输入，简单编码器相对于优先编码器是一个更好的选择，因为需要比较少的逻辑门来实现。

 参考文献 

Category:信息论
Category:算法
Category:数字电子