优先编码器是一种能将多个二进制输入压缩成更少数目输出的电路或算法。其输出是序数0到输入最高有效位的二进制表示。优先编码器常用于在处理最高优先级请求时控制中断请求。
如果同时有两个或以上的输入作用于优先编码器,优先级最高的输入将会被优先输出。 下图是一位4线-2线编码器的例子,其中最高优先级的输入在功能表的左侧,而“x”代表无关项,即可是1也可是0,也就是说不论无关项的值是什么,都不影响输出,只有最高优先级的输入有变化时,输出才会改变。
优先编码器可以排列连接在一起,组成更大规模的编码器,如6个4线-2线优先编码器可以组成1个16线-4线编码器,其中信号源作为4个编码器的输入,前4个编码器的输入作为2个编码器的输入。
优先编码器相比简单编码器电路有更强的处理能力,因为其能处理所有的输入组合情况。
简单编码器电路可以接受2中的一个有效输入,并在条并行输出线上生成一个二进制码。
例如,一位4线-2线编码器输入4位,输出2位。当同时有超过一个输入线有效时,下例的编码器可能会错误地表现出优先编码器的行为。
如果一个输入电路只允许一个有效输入,简单编码器相对于优先编码器是一个更好的选择,因为需要比较少的逻辑门来实现。