编码器是执行解码器反向操作的组合电路。它最多有 2^n 条输入线和“n”条输出线,因此它将来自 2^n 条输入的信息编码为 n 位代码。它将产生与输入等效的二进制代码,该代码为高电平有效。因此,编码器用“n”位对 2^n 输入行进行编码。
4 : 2 编码器 –
4 到 2 编码器由四个输入 Y3、Y2、Y1 和 Y0 和两个输出 A1 和 A0 组成。在任何时候,这 4 个输入中只有一个可以为“1”,以便在输出处获得相应的二进制代码。下图为4转2编码器的逻辑符号:
4对2编码器真值表如下:
A1 和 A0 的逻辑表达式:
A1 = Y3 + Y2
A0 = Y3 + Y1
上述两个布尔函数 A1 和 A0 可以使用两个输入或门来实现:
8 : 3 编码器(八进制到二进制) –
8 到 3 编码器或八进制到二进制编码器由8 个输入组成:Y7 到 Y0 和3 个输出:A2、A1 和 A0。每条输入线对应每一个八进制数字,三个输出产生相应的二进制代码。
下图为八进制转二进制编码器的逻辑符号:
8~3编码器真值表如下:
A2、A1 和 A0 的逻辑表达式:
A2 = Y7 + Y6 + Y5 + Y4
A1 = Y7 + Y6 + Y3 + Y2
A0 = Y7 + Y5 + Y3 + Y1
上述两个布尔函数 A2、A1 和 A0 可以使用四个输入或门来实现:
十进制到 BCD 编码器 –
十进制转二进制编码器通常由10 条输入线和4 条输出线组成。每条输入线对应每个十进制数字,4 路输出对应 BCD 码。该编码器接受解码的十进制数据作为输入,并将其编码为 BCD 输出,该输出可在输出线上使用。下图为十进制转BCD编码器的逻辑符号:
十进制转BCD编码器真值表如下:
A3、A2、A1 和 A0 的逻辑表达式:
A3 = Y9 + Y8
A2 = Y7 + Y6 + Y5 +Y4
A1 = Y7 + Y6 + Y3 +Y2
A0 = Y9 + Y7 +Y5 +Y3 + Y1
以上两个布尔函数可以使用或门来实现:
优先编码器 –
4 到 2 优先级编码器有4 个输入:Y3、Y2、Y1 和 Y0 和2 个输出:A1 和 A0。这里,输入 Y3 具有最高优先级,而输入 Y0 具有最低优先级。在这种情况下,即使多个输入同时为“1”,输出也将是该输入对应的(二进制)代码,优先级更高。
优先编码器真值表如下:
以上两个布尔函数可以实现为:
普通编码器的缺点 –
- 当编码器的所有输出都为零时,存在歧义。
- 如果多个输入处于活动高电平,则编码器会产生一个输出,该输出可能不是正确的代码。
因此,为了克服这些困难,我们应该为编码器的每个输入分配优先级。然后,编码器的输出将是 ( 代码对应于活动的高输入,具有更高的优先级。
编码器的用途 –
- 编码器是所有数字系统中使用的非常常见的电子电路。
- 编码器用于将十进制值转换为二进制以执行二进制函数,例如加法、减法、乘法等。
- 其他特别适用于优先编码器的应用程序可能包括检测微处理器应用程序中的中断。
GATE CS 角问题
练习以下问题将帮助您测试您的知识。所有问题都在前几年的 GATE 或 GATE 模拟测试中提出。强烈建议您练习它们。
- GATE CS 2013,问题 65
- GATE CS 2014(第 3 组),问题 65
参考 –
编码器 – 维基百科
优先编码器 – 维基百科