《逻辑与计算机设计基础(原书第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时,由于门扇入限制,必须采用多级电路设计以便进行工艺映射。设计有共享门的多级电路,在工艺映射后可以减少编码器的成本。

相关文章
|
4月前
|
人工智能 JavaScript 前端开发
MCP协议2025年大爆发,2026年反而相对平静——是真的走向成熟期,还是走向衰退?
MCP曾以“AI时代USB-C”引爆2025年中文技术圈,大厂纷纷跟进;2026年热度退潮,却悄然走向务实落地:认证标准化、流式HTTP升级,生态持续建设。它未必最优,但正经历协议成熟的必经之路——从喧嚣到沉淀,从泡沫到真实价值验证。
797 3
|
6月前
|
人工智能 自然语言处理 API
AI Agent 职业路线全解析:从入门到专家的能力图谱与进阶路径
大模型正从文本生成迈向AI Agent时代,核心范式由“预测下一个词”升级为“预测下一个动作”。AI Agent工程师聚焦自主闭环系统构建,需掌握推理框架、记忆设计、API集成与多智能体协作四大能力,职业路径覆盖应用层、系统层到专家层,是认知自动化与下一代软件工程的核心赛道。(239字)
703 2
|
4月前
|
存储 人工智能 弹性计算
2026年阿里云有哪些优惠活动?优惠券、云服务器特惠及云产品免费试用活动简介
2026年阿里云的优惠活动,涵盖优惠券、云服务器特惠及免费试用。学生可领300元无门槛券及算礼包,企业享迁云与出海补贴。云服务器方面,提供轻量应用服务器低价抢购、经典长效云服务器特惠及企业级实例折扣。同时,阿里云推出普惠免费试用,覆盖云产品、AI产品及解决方案,助力用户零成本体验。此外,云产品组合购活动以更优价格、优化配置及便捷管理,满足用户多样化需求,构建了从入门到高性能生产的完整优惠体系。
|
4月前
|
SQL 存储 关系型数据库
MySQL 生产级备份与恢复全攻略:全量 / 增量 / 逻辑 / 物理备份深度拆解 + 误删数据秒级恢复实战
本文系统讲解MySQL备份与恢复体系,涵盖全量/增量、逻辑/物理备份的底层原理与核心差异;详解mysqldump、mydumper、XtraBackup等工具的生产级实战;提供误删数据的多场景快速恢复方案(闪回、延迟从库、回收站);并附Java备份管理模块完整实现。
654 2
|
人工智能 语音技术 API
破解大模型语音交互延迟痛点!MaixinVoiceAI 3.0 流式TTS适配阿里百炼落地实践
阿里百炼大模型语音交互落地中,传统TTS“先推理、再合成、后播放”的模式导致延迟过高,影响服务效率与体验。MaixinVoiceAI 3.0流式TTS打破这一逻辑,采用“边推理、边合成、边播放”的并行流水线机制,深度适配阿里百炼大模型。其首包响应≤300ms,可将总延迟压缩至用户无感知范围,原生兼容阿里百炼API,零开发适配企业级部署,同时兼顾高保真音质与拟人化韵律,解决传统TTS痛点,为智能呼叫中心等场景提供高效落地支撑。
破解大模型语音交互延迟痛点!MaixinVoiceAI 3.0 流式TTS适配阿里百炼落地实践
|
7月前
|
存储 运维 Kubernetes
容器很爽,但 VM 还活着——聊聊 K8s 上的混合工作负载:KubeVirt 到底是不是救命稻草?
容器很爽,但 VM 还活着——聊聊 K8s 上的混合工作负载:KubeVirt 到底是不是救命稻草?
672 9
|
数据采集 人工智能 监控
《数据质量:人工智能模型的成败关键》
在人工智能快速发展的时代,数据质量对模型的性能、准确性和可靠性至关重要。准确、完整、多样且具代表性的数据能提升模型泛化能力;一致、及时的数据有助于提高训练效率;避免偏差和噪声可防止模型产生不公平结果或错误学习。因此,确保数据质量是构建高效、可靠AI模型的关键。
1686 12
|
Ubuntu 网络安全 虚拟化
VMware虚拟机ping不通原因排查及分析
下面以 VMware 虚拟机为例进行介绍。
6923 3
|
API 监控 双11
淘宝/天猫获取商品历史价格信息 API 返回值的应用
本内容介绍了一款基于API的工具的核心功能,涵盖消费者决策支持、商家运营优化、市场趋势分析及数据服务拓展四大方面。消费者可借助历史价格曲线判断价格合理性、选择最佳购买时机;商家可通过竞品数据分析优化定价策略与促销活动;第三方平台能监测价格波动、跟踪竞品动态以洞察市场趋势。此外,工具还支持比价工具开发与价格预警服务,为用户和企业带来全方位的价格智能解决方案。