《计算机组成与体系结构(原书第4版)》 —3.2.5 表示布尔函数

举报
华章计算机 发表于 2019/11/19 17:34:08 2019/11/19
【摘要】 本节书摘来自华章计算机《计算机组成与体系结构(原书第4版)》一书中第3章,第3.2.5节,作者是[美] 琳达·纳尔(Linda Null)朱莉娅·洛博(Julia Lobur)宾夕法尼亚州立大学,张 钢 魏继增 李雪威天津大学 李春阁 何 颖天津大学仁爱学院 译。

3.2.5 表示布尔函数

在前面已经看到,可以有许多不同的方式来表示给定的布尔函数。例如,可以用一个真值表,或者使用许多不同类型的布尔表达式。事实上,有无限多个布尔表达式在逻辑上等同。可以由同一个真值表来表示的两个表达式被认为逻辑上是等同的(见例3.8)。

例3.8假设F(x,y,z)=x+xy′。可以表示F为F(x,y,z)=x+x+xy′,因为按照幂等律这两个表达式是一样的。也可以用分配律表示F为F(x,y,z)=x(1+y′)。

为了消除潜在的混乱,数字逻辑设计师指定布尔函数应使用规范或标准化的格式。对于任何给定的布尔函数,存在唯一的标准格式。不过,设计者也使用不同的“标准”。两种最常见的是和的乘积和乘积的和这两种形式。

乘积的和形式要求表达式是一些项与变量(或乘积项)的集合,然后进行求和运算。函数F1(x,y,z)=xy+yz′+xyz就是乘积的和的形式。函数F2(x,y,z)=xy′+x(y+z′)不是乘积的和的形式。在F2函数中对于x应用分配律使其变成表达式xy′+xy+xz′,这是乘积的和形式。

和的乘积表示的布尔表达式是或运算变量(求和项),然后进行与运算。函数F1(x,y,z)=(x+y)(x+z′)(y+z′)(y+z)为和的乘积形式,在很多情况下,当判断布尔表达式为真而不是假时,首选和的乘积形式。这是与函数F1不一样的情况,乘积的和的形式适合这种情况。而且乘积的和的形式通常比较容易使用,因此,在后面的章节只使用这种形式。

任何布尔表达式都可以用乘积的和形式来表示。因为任何布尔表达式都可以表示为一个真值表,结论是任何真值表也可以表示为乘积的和形式。从例3.9中可以看到将真值表转换成乘积的和形式是很简单的。

例3.9考虑一个简单的择多函数。


image.png

对于这个函数来说,当给出3个输入时,如果输入为1的变量不到一半时,输出为0;如果输入变量至少有一半为1时,输出为1。表3-8描述了这个具有3个变量的择多函数的真值表。

下面将乘积和的形式转换为真值表,并通过结果来分析问题。如果希望表达式x+y等于1,则x或y(或两者)等于1。如果xy+yz=1,则xy=1或yz=1或两者均等于1。

反向使用这个逻辑,并把它应用到择多函数,可以看到当x=0、y=1、z=1时该函数必须输出1,满足这个条件的乘积项是x′yz(显然,此项等于1时,因为x=0、y=1、z=1)。当x=1、y=0、z=1时,输出值为1第二次出现,满足这个条件的乘积项是xy′z。需要的第三个乘积项是xyz′,最后是xyz。总之,要使用真值表产生一个乘积和的形式的布尔表达式,必须生成对应于各行的输入变量的乘积项,其中每一行输出变量的值是1。在每一个乘积项中,我们必须对那一行中每一个为0的变量进行求反。

择多函数可以表达为乘积和的形式,如F(x,y,z)=x′yz+xy′z+xyz′+xyz。

请注意,对于例3.9所示的择多函数的表达式可能不是最简单的形式,而只是一个标准形式。该乘积的和形式以及和的乘积的形式是等价的布尔函数表示方式。通过布尔定律,一种形式可以转换为另一种形式。无论使用乘积的和形式或和的乘积形式,表达式最终必须转化成最简形式,这意味着使表达式的项减少到了最小。为什么一定要简化表达式?在表达式中不必要的项会在物理电路中产生不需要的组件,这会产生一个次优电路。我们将在下一节讲述布尔表达式与对应电路。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。