《逻辑与计算机设计基础(原书第5版)》——3.4 基本逻辑函数

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

3.4 基本逻辑函数

定值、传递、取反及使能是最基本的组合逻辑函数。前两种运算,即定值和传递不用任何布尔运算符,它们只用变量和常数表示。因此不能使用逻辑门来实现这些运算。对一个变量取反只涉及一个逻辑门,而一个变量的使能则涉及一个或两个逻辑门。
3.4.1 定值、传递和取反
如果1位函数只有单个变量X,则存在4个不同的1位函数。表3-1给出了这些函数的真值表。表的第二列和最后一列指定函数的值分别为常数0或常数1,即实现定值(value fixing)。在第三列,函数就是输入变量X,即从输入到输出传递(transferring)X。在第四列,函数为X,即将输入X取反(inverting)成为输出X。
image

实现这4个函数的方式如图3-7所示。定值可以通过在输出端F连接常数0或常数1来实现,如图3-7a所示。图3-7b给出了逻辑示意图中的另一种表示方法。对于正逻辑,习惯用电气接地符号来表示常数0,用电源电压符号来表示常数1,后者一般用VCC或VDD标记。传递用连接X和F的一条简单的线来表示,如图3-7c所示。最后,取反用一个反相器来表示,输入为X,输出为F=X,如图3-7d所示。

image

3.4.2 多位函数
前面定义的函数可以按位应用于多位数的场合。我们可以认为这些多位函数是1位函数的向量。例如,假设有4个函数F3、F2、F1、F0,它们组成一个4位函数F。我们可以定义F3是4个函数的最高位,F0是4个函数的最低位,组成向量F=(F3,F2,F1,F0)。假设F由4个基本函数F3=0、F2=1、F1=A、F0=A组成,可以将F写成向量(0,1,A,A)。当A=0时,F=(0,1,0,1);而当A=1时,F=(0,1,1,0)。这个多位函数可以写成F(3:0)或者更简单地写成F,其实现方式如图3-8a所示。为了使图形更加简洁,我们经常使用一条加粗的线,并用一条斜杠穿过这条线来表示一组相关的多条线,斜杠旁边的数字表示这些线的条数,如图3-8b所示。为了使0、1、X和X与F中对应的位数相连接,我们将F拆分成4条线,每条线表示为F的一位。而且,在传送过程中,我们只希望能使用F中位的一个子集,例如F2和F1,那么图3-8c表示F中位的方法就可以用来解决这个问题了。图3-8d说明了使用F3、F1和F0这种更为复杂的情况。注意,由于F3、F1和F0没有完全在一起,所以我们就不能用范围标识F(3:0)来标注这个子向量,只能用两个子向量F(3)和F(1:0)的组合来标注,用下标标注时可以写成3,1:0。在不同的原理图绘制工具或HDL工具中,向量和子向量的实际表示方法存在很大差异,图3-8给出的只是其中的一种方法。对于某个特定的工具,具体表示方法需要参考此工具的使用文档。

image

定值、传递和取反在逻辑设计中有许多应用。定值就是将一个或多个变量用常量1和0来取代。定值可以是永久的,也可以是临时的。永久性定值不可以改变,而临时性定值可通过某些途径来改变,其方法与普通逻辑电路中采用的有所不同。永久性与临时性的定值主要应用于可编程逻辑器件中。在可编程器件中,任何能够实现的逻辑函数都是通过设定一组值来实现的,如例3-4所示。
例3-4 用定值控制演讲厅的照明
问题:设计一个控制演讲厅灯光照明的装置,要求控制开关是可编程的。两个开关有三种不同的工作方式。开关P在演讲厅前面的墩墙上,开关R在演讲厅的后门附近。H(房间照明)为1时,照明开启;H为0时,照明关闭。房间照明控制方式可以编程为以下三种中的任意一种,M0、M1或M2定义如下。
M0:开关P或开关R控制房间灯光的开和关。
M1:只有开关P控制房间灯光的开和关。
M2:只有开关R控制房间灯光的开和关。
解决方法:H(P,R)的真值表作为可编程模式M0、M1和M2的函数形式,如表3-2所示。M1和M2的函数形式都是直截了当的,但M0的函数形式却需要多加考虑。这个函数必须使开关P和开关R都能改变输出结果。奇偶函数具有这样的特性,两个输入的奇偶函数就是异或。因此表3-2中的M0用该函数来表示。我们的目的就是要找到这样一个电路来实现这三种编程模式,并产生输出H(P,R)。
image

用定值方式实现该电路的一种形式如图3-9a所示。在本章的后面,这个标准电路被称作4选1多路复用器。图3-9b给出了该电路紧凑形式的真值表。对应于I0到I3,P和R是输入变量,I0到I3的值可以为0或1,这取决于每一种模式所希望的函数形式。注意,H事实上是一个6变量的函数,可以给出一个完全展开的、有64行7列的真值表。但是,将I0到I3放到输出列中,我们可以缩减真值表的大小。真值表中输出H的方程为:
H(P, R, I0, I1, I2, I3)=PRI0 + PRI1 + PRI2 + PRI3
通过固定I0至I3的值,我们可以实现任何函数H(P,R)。如表3-2所示,通过使I0=0、I1=1、I2=1和I3=0,我们可以实现函数M0,H=PR+PR;通过使I0=0、I1=0、I2=1和I3=1,我们还可以实现函数M1,H=P;通过使I0=0、I1=1、I2=0和I3=1,我们还可以实现函数M2,H=R。这些函数中的任何一个都可以永久地实现,或者通过将I0=0固定,将I1、I2和I3作为变量,并根据以上三种模式来临时分配它们的值这种方式来实现。图3-9c所示的最终电路中I0=0,图3-9d给出了I0固定为0后的模式编程表。 ■
3.4.3 使能
通常情况下,使能允许信号从输入传播到输出。非使能除了可以用高阻态(将在6.8节介绍)来代替输入信号之外,还可以用固定输出值0或1来代替输入信号。这个附加的输入信号通常称为ENABLE或者EN,它用来决定输出是否被使能。例如,如果EN=1,则输入X就可以到达输出(使能),但如果EN=0,输出则被固定为0(非使能)。在这种情况下,非使能值为0,输入信号与EN信号相与得到输出,如图3-10a所示。若非使能值为1,则输入信号X与EN信号取反后相或得到输出,如图3-10b所示。在这种情况下,如果EN=1,则或门的一端输入为0,另一端输入为X,输入到达输出。但如果EN=0,则或门的一端输入为1,这会阻止输入X到达输出。也可以将图3-10中每个电路的EN取反。这样,EN=0将使X到达输出,EN=1则阻止输入X到达输出。

image

例3-5 用使能进行汽车电气控制
问题:几乎所有的汽车中,只要打开点火开关,车内照明、收音机和电动车窗都开始工作。在这种情况下,点火开关就相当于“使能”信号。假设我们使用下面的变量和定义来模型化这个汽车子系统:
点火开关IS:值为0时关,为1时开;
照明开关LS:值为0时关,为1时开;
收音机开关RS:值为0时关,为1时开;
电动车窗开关WS:值为0时关,为1时开;
照明灯L:值为0时关,为1时开;
收音机R:值为0时关,为1时开;
电动车窗W:值为0时关,为1时开。
解决方法:表3-3给出了这个汽车子系统的紧凑形式的真值表。注意,当点火开关IS关闭时(0),所有被控制的辅助设备都关闭(0),无论它们的开关是否开启,真值表的第一行表示这种情况。通过使用×,这个紧凑的只有9行的真值表所表示的信息与一般的有16行的真值表完全相同。与×在输出列表示无关项不同,×在输入列表示不是最小项的乘积项。例如,0×××表示乘积项IS。与最小项一样,如果真值表中输入组合某一位的值为0,则对应的变量取反;如果值为1,则无需取反;如果值为×,则变量不出现在乘积项中。当点火开关IS打开时(1),所有辅助设备都由它们各自的开关控制。当点火开关IS关闭时(0),所有辅助设备都关闭,所以IS用固定值0取代了输出L、R和W的值,它满足使能信号的定义。最终的电路如图3-11所示。 ■
image

相关文章
|
7月前
|
弹性计算 人工智能 缓存
2026年阿里云新用户云产品优惠政策与服务器租赁价格指南
2026 年阿里云针对新用户推出差异化服务器优惠政策,覆盖轻量应用服务器、ECS 云服务器及 GPU 服务器三大品类,提供从 2 核 2G 到 8 核 32G 的多档配置,通过限时秒杀、固定低价套餐等形式降低新用户上云门槛。不同实例适配从个人开发到企业级轻量业务的多元需求,同时支持灵活的月租与年租模式,核心围绕 “低门槛入门、长期成本可控” 设计。本文结合实例特性、价格体系及适用场景,为新用户提供客观选型参考。
|
10月前
|
人工智能 运维 Cloud Native
直播|均降 40% 的 GPU 成本,大规模 Agent 部署和运维的捷径是什么?
10月28日19:30,阿里云云原生AgentRun与你《极客有约》。
445 29
|
5月前
|
存储 安全 Linux
Linux高阶知识总览:从内核源码到生产实战的深度探索
教程来源 https://app-a87ujc988w01.appmiaoda.com/ 本文系统梳理Linux高阶知识图谱,涵盖内核架构(EEVDF调度、Folios内存管理、io_uring I/O)、系统编程、性能调优(eBPF、perf)、容器基石(cgroups v2、命名空间)及前沿趋势(ARM/RISC-V支持、安全增强),助工程师深入理解现代技术基础设施本质。
Linux高阶知识总览:从内核源码到生产实战的深度探索
|
5月前
|
存储 缓存 监控
微服务越拆越乱?8 大致命反模式拆解与架构重构全实战
本文剖析微服务常见八大反模式(如分布式单体、数据库共享、过度拆分等),揭示其违背的核心设计原则,并提供可落地的重构方案、代码实现与治理方法论,助团队走出架构乱象,回归微服务本质价值。
364 1
|
5月前
|
数据采集 运维 网络协议
IPv4 和 IPv6 归属地查询有差异?运维必看的高效查询技巧
作为运维工程师,IPv4/IPv6归属地查询日益关键。本文剖析二者在类型识别、格式规范、字段维度及数据库覆盖率等核心差异,提供标准化IP处理代码与高可用查询方案,助您提升查询准确率与效率。(239字)
473 1
|
5月前
|
人工智能 搜索推荐 数据挖掘
企业级Agent解决方案(2026年3月)
阿里云瓴羊推出企业级Agent解决方案,以“全域协同”为核心,打造“感知-决策-执行-反馈”全链路智能闭环。依托AgentOne智能中枢,融合Dataphin数据治理与Quick系列工具,赋能客服、营销、分析三大场景,助力企业从“数字化”迈向“数智化”。
|
5月前
|
机器学习/深度学习 BI
数据智能体目前能做到多少准确率?
本文客观分析字节、帆软、京东、Palantir、UINO等主流数据智能体的准确率表现,揭示NL2SQL、宽表、本体+智能体等技术路线的真实水平(单表最高98%+,多表本体路线达95%+),指出语义深度、知识积累、测试集差异等核心影响因素,并提供可落地的POC评估框架。(239字)
|
7月前
|
人工智能 前端开发 机器人
阿里云百炼 AI 聊天机器人 | Aliyun Bailian ChatBot for WordPress
一款强大的WordPress插件,集成阿里云百炼(Model Studio)AI聊天机器人,支持模型直连与应用API双模式,适用于客服、知识库等场景,具备流式输出、多轮对话、推理显示等功能,轻松通过短代码嵌入网站。
|
8月前
|
缓存 自然语言处理 API
油管 item_get_video - 视频详情接口对接全攻略:从入门到精通
本文详解YouTube Data API v3的videos.list接口(item_get_video),通过视频ID获取标题、播放量、互动数据、创作者信息等全量字段,支持批量查询与多语言返回。涵盖接口功能、认证方式、配额规则、Python实操代码、调试排错及生产级优化策略,适用于内容聚合、舆情监测、版权保护等场景,兼顾合规性与企业级稳定性需求。
|
8月前
|
弹性计算
阿里云免费服务器领取:全新升级ECS和轻量应用服务器,最长3个月免费
阿里云提供新用户免费服务器,ECS享300-660元额度(约3个月),轻量应用服务器免费1个月。需为未购买过云服务器的新用户,通过实名认证后,在阿里云免费中心申请
650 5