《逻辑与计算机设计基础(原书第5版)》——3.6 编码

简介: 本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第3章,第3.6节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.6 编码

一个编码器是一个数字函数,它的作用与译码器的作用相反。一个编码器有2n(或少于2n)个输入和n个输出,输出产生与输入值相对应的二进制码。表3-5所示的真值表是一个八-二进制编码器的例子。该编码器有8个输入,每一个输入都是一个八进制数字,3个输出产生对应的二进制数字。假设任何时候只有一个输入的值为1,所以表格中只有8行有特定的输出值。其他剩余56行的所有输出都为无关项。
image

从真值表中我们可以看到,当某行的Dj为1且j的二进制表示在i位置的值为1时,该行中的Ai则为1。例如,如果输入为1或3或5或7,则输出A0=1。因为所有这些值都是奇数,所以它们二进制形式的0位置的值为1。这个方法可以用来建立真值表。从真值表得知,编码器可以通过n个或门来实现,每一个输出变量Ai用一个或门。每个或门将Dj为1,并且所在行的Ai也为1的输入变量合并起来。对于8-3线编码器,输出方程式为
A0=D1+D3+D5+D7
A1=D2+D3+D6+D7
A2=D4+D5+D6+D7
这些方程式可以用3个四输入或门来实现。
以上定义的编码器有一个限制条件,那就是任何时候只允许一个输入是活动的:如果同时有两个输入是活动的,输出将产生错误的结果。例如,如果D3和D6同时为1,编码器的输出就会为111,因为3个输出都等于1,这既不表示二进制数3,也不表示二进制数6。为了消除这种不确定性,有些编码器电路必须增加一个输入优先级来确保只有一个输入被编码。如果我们定义输入下标的数值越大,则输入的优先级就越高,那么当D3和D6同时为1时,输出为110,因为D6的优先级比D3的高。八-二进制编码器中另一个不确定的情况是,当所有的输入都为0时,输出为0值,但这与D0等于1时的输出是一样的。这一矛盾可以通过增加一个单独的输出以表示至少有一个输入等于1而得到解决。
3.6.1 优先编码器
优先编码器是一个可以实现优先级函数的组合电路。正如前段所提到的那样,优先编码器的作用是:当两个或多个输入同时等于1时,优先级最高的输入被优先处理。表3-6所示的是一个四输入优先级编码器的真值表。由于使用了×,原来需要16行才能表达出所有信息的真值表,现在只需要5行就可以了。与×在输出列中表示无关情况不同,×在输入列中表示不是最小项的乘积项。例如,001×表示乘积项D3 D2 D1。如同最小项一样,如果真值表中输入组合的某位为0,则对应的变量要取反;如果某位为1,则对应的变量不取反;如果某位为×,则对应变量不出现在乘积项中。这样,对于001×,与变量D0对应的位×,所以D0不出现在D3 D2 D1中。
image

紧凑真值表中的一行可以代替原真值表中的2p行,p表示的是行中×的个数。例如,在表3-6中,1×××表示原真值表的23=8行,这些行的输出值相同。在生成紧凑真值表的过程中,每一个最小项必须出现在某一行中,只有这样每一个最小项才能够通过对×赋值为1和0来获得。而且,一个最小项不能够出现在几行中,因为这些行的某些指定输出值会有冲突。
我们按如下方法得到表3-6:输入D3的优先级最高,所以当此输入为1时,可以忽略其他输入值,输出A1A0为11(二进制数3),这样我们可以得到表的最后一行。D2的优先级次之,因此如果D2=1且D3=0,则输出为10,无论其他较低优先级输入值是多少,这样,我们可以得到真值表的第四行。只有当所有较高优先级输入值为0时,才会产生D1的输出。用这种办法,从高优先级到低优先级我们可以得到真值表中剩余的行。当一个或多个输入值为1时,有效输出指示V为1;如果所有的输入都为0,则V等于0,电路中其他两个输出没有使用,并且被指定为无关项。
化简输出A1和A0的卡诺图如图3-22所示,两个函数的最小项都源自表3-6。表中的输出值,可以通过将它们放到由表中给出的对应乘积项所覆盖的方格中,直接传送到卡诺图中。每个函数化简后的表达式在该函数的卡诺图下方给出。输出V的方程是所有输入变量的或函数。图3-23所示的是根据下面的布尔函数来实现的优先级编码器:

image

image

3.6.2 编码器的扩展
迄今为止,我们只讨论了小型的编码器。编码器可以通过扩展或门的方法来扩展输入的数量。在编码器的实现中,除了在输出级共享以便在输出编码中有更多的有效位之外,采用带或门的多级电路可以减少当n≥5时的门输入成本。当n≥3时,由于门扇入限制,必须采用多级电路设计以便进行工艺映射。设计有共享门的多级电路,在工艺映射后可以减少编码器的成本。

相关文章
|
异构计算
《逻辑与计算机设计基础(原书第5版)》——导读
本书的目的是为广大读者提供学习逻辑设计、数字系统设计和计算机设计的基础知识。本书第5版突出了课程内容方面的最新发展。从1997年的第1版开始,作者就不断对其进行修改,提供一种独一无二的将逻辑设计与计算机设计原理结合在一起的方法,并特别强调硬件。
2722 0
|
存储 容器
《逻辑与计算机设计基础(原书第5版)》——3.11 二进制加减法器
本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第3章,第3.11节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2159 0
《逻辑与计算机设计基础(原书第5版)》——1.6 字符编码
本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第1章,第1.6节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1369 0
《逻辑与计算机设计基础(原书第5版)》——2.3 标准形式
本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第2章,第2.3节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1513 0
《逻辑与计算机设计基础(原书第5版)》——1.5 十进制编码
本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第1章,第1.5节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
973 0
|
传感器 安全
《逻辑与计算机设计基础(原书第5版)》——3.7 选择
本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第3章,第3.7节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2506 0
《逻辑与计算机设计基础(原书第5版)》——2.2 布尔代数
本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第2章,第2.2节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3664 0
《逻辑与计算机设计基础(原书第5版)》——1.8 本章小结
本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第1章,第1.8节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1364 0
《逻辑与计算机设计基础(原书第5版)》——2.11 本章小结
本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第2章,第2.11节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
972 0
《逻辑与计算机设计基础(原书第5版)》——3.13 本章小结
本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第3章,第3.13节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
990 0