内容依据:《组合逻辑函数》课件第1—140页。所引页码均指PDF页序。
0 · 本章内容与学习目标
逻辑电路设计首先需要准确描述输入条件与输出要求。例如“三人中至少两人同意才通过”,其中“至少两人”包含三人都同意;若遗漏这一情况,所得电路将不符合设计要求。逻辑设计的基本步骤是:定义状态与变量,列出完整输入组合,再采用代数或图形方法化简函数。
预备知识与分析模型
本章以二进制表示方法为基础,采用理想逻辑模型进行分析:信号取值为0或1,逻辑门的稳定输出由当前输入决定。分析过程暂不涉及晶体管结构;电压范围、传播延迟与毛刺等实际因素将在第三章讨论。
学习目标
能从题意列真值表,写标准与或式和标准或与式;能区分反函数与对偶式;能用代数或卡诺图化简;能把表达式画成与或门、与非门或或非门电路,并验证结果。
建议学习顺序:第1—7节介绍基本概念与标准表达式,第8—12节讨论电路表示与逻辑化简。其中五变量卡诺图是相同邻接原理在更高维输入空间中的应用。
1 · 逻辑变量与逻辑函数
对应课件第2—5页。
逻辑变量描述只有两种可能的状态。设A表示“开关接通”:接通时A=1,断开时A=0。设F表示“灯亮”:灯亮时F=1,灯灭时F=0。这里1不表示“比0大一单位”,而是按定义约定的一种状态。也可以用1表示报警、允许、检测到物体,但必须在列真值表前明确约定。
对于一个没有记忆的组合电路,只要当前输入相同,稳定后的输出就相同。数学上写成F=f(A,B,C,…),意思是F由这些输入决定。如果有多个输出,就分别写F₁=f₁(…)、F₂=f₂(…)。例如一位加法器既要输出和位,又要输出进位,因此要用两个函数描述,不能只写一列结果。
例:布防报警的逻辑描述
假设只有“布防并且门打开”才报警。输入A=1表示布防,B=1表示门打开,输出F=1表示报警。若只写“门打开就报警”,则遗漏了布防条件。正确的逻辑条件是A和B同时为1;撤防A=0时,无论B如何,F都应为0。
建立函数前,应区分“输入条件”与“输出结果”,并把可能出现的输入组合都保留。A=0、B=1虽然不会报警,仍是必须在真值表中写出的合法一行。
布尔代数的运算结果仍只有0或1。因此逻辑加法中的1+1=1,不产生二进制算术的进位;逻辑乘法中的A·A=A,不是幂次增长。本章用“+”表示或、用“·”或相邻书写表示与,含义必须由语境确定。
自测题:说明二进制算术加法与逻辑或在输入均为1时的结果差异。
算术加法计算数量,二进制1+1=10;逻辑或只判断“至少有一个条件成立”,1+1=1。两个符号外形相同,所定义的运算不同。计算前应明确所用符号表示数值运算还是布尔运算。
2 · 与、或、非基本运算
对应课件第6—12页。
与(AND)要求所有条件同时满足,F=A·B。与运算可由串联开关说明:其中任意一个断开,通路就断;只有全接通,灯才亮。或(OR)要求至少一个条件满足,F=A+B。在并联开关电路中,任一支路接通即可形成通路。这里的“或”包含“两者都成立”,不是日常有时说的“二选一”。非(NOT)把状态反过来,F=A:A=0时F=1,A=1时F=0。
| A | B | A·B | A+B | A |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 |
计算表达式时,应首先确定括号和取反范围,再进行与运算,最后做或运算。AB+CD表示“AB为1,或者CD为1”;(A+B)(C+D)表示“两组或条件都成立”。后者不能去掉括号写成A+BC+D,因为运算结构已经改变。遇到异或与或混写时,建议明确加括号,避免不同教材记号约定造成歧义。
例:F=A(B+C)
设A=1、B=0、C=0。先求C=1,再求B+C=0+1=1,最后F=1·1=1。如果A=0,最后一步必为0,括号内的取值不再影响结果。控制值可用于判断输出:与门存在0输入时输出必为0;或门存在1输入时输出必为1。
长反号覆盖的是一个整体。例如AB表示“先与再取反”,通常不等于AB。取A=0、B=1即可检验:前者是1,后者是0。
自测题:比较F=A+B与G=A⊕B在各输入组合下的函数值。
仅在A=B=1时不同:或为1,异或为0。其余00、01、10三行相同。因此,“至少一人同意”对应或逻辑;“恰好一人同意”对应异或逻辑。
3 · 逻辑代数定律与代数化简
对应课件第13—19页、第87—91页。
逻辑化简是在全部合法输入下保持函数值不变的前提下,减少表达式中的项数或文字数。下列基本定律可由真值表验证,并作为等价变换的依据。与普通代数最容易混淆的是重叠律和第二种分配律:A+A=A;A+BC=(A+B)(A+C)。逻辑表达式的变换应遵循布尔代数规则,不能直接套用实数代数的全部结论。
| 名称 | 常用等式 | 直观理解 |
|---|---|---|
| 0—1律 | A+0=A;A·1=A;A+1=1;A·0=0 | 与的0、或的1是控制值 |
| 重叠律 | A+A=A;AA=A | 重复同一条件不提供新信息 |
| 互补律 | A+A=1;AA=0 | 两种互补状态覆盖全部,不能同时成立 |
| 还原律 | ¬(¬A)=A | 连续取反两次回到原值 |
| 交换与结合律 | A+B=B+A;(AB)C=A(BC) | 同类运算可调整顺序与分组 |
| 分配律 | A(B+C)=AB+AC;A+BC=(A+B)(A+C) | 既可展开与,也可展开或 |
| 吸收律 | A+AB=A;A(A+B)=A | 更严格的条件被较宽的条件覆盖 |
| 消去形式 | A+AB=A+B;A(A+B)=AB | 按A的两种状态理解最清楚 |
| 一致项定理 | AB+AC+BC=AB+AC | BC成立时,前两项中必有一项成立 |
吸收律A+AB=A的证明
若A=1,第一项已经让输出为1;若A=0,AB也必然为0。因此AB没有改变任何输入下的结果。代数写法是A+AB=A·1+AB=A(1+B)=A。注意吸收关系有方向:A可以吸收AB,而AB通常不能吸收A,因为AB的成立条件更严格。
四种常用代数化简方法
- 并项:AB+ AB=A(B+B)=A。只差一个变量极性的两项合并后,消去该变量。
- 吸收:AB+ABC=AB。检查是否有一项的所有文字已包含于另一项。
- 消去:A+AB=A+B。可先用第二分配律变成(A+A)(A+B)。
- 配项:允许利用X=X+X重复已有项,以便分别与其他项合并;或利用X=X(Y+Y)补齐变量。配入的项必须保持函数不变。
例:F=AB+AC+BC
先把BC按A的两种情况拆开:BC=ABC+ABC。于是F=AB+ABC+AC+ABC。前两项吸收得AB,后两项吸收得AC,得到F=AB+AC。
也可直接推理:若BC=1,则B=C=1。A=1时AB=1;A=0时AC=1。因此BC从不独立贡献一个新的1。BC是该表达式的冗余项,不改变稳态逻辑功能;在考虑传播延迟时,冗余项仍可能用于消除某些静态险象,相关内容见第三章。
代入规则允许把定律中的同一个变量,处处换成同一个逻辑函数。例如X+XY=X中令X=A+B、Y=CD,就得到(A+B)+(A+B)CD=A+B。同一变量的全部出现位置必须一致替换。
配项法示例:多数函数的代数推导
将F=ABC+ABC+ABC+ABC化成最简单的形式时,最后的ABC可以分别参加三个合并。利用ABC=ABC+ABC+ABC,重新分组:
=BC(A+A)+AC(B+B)+AB(C+C)
=BC+AC+AB
根据逻辑或的重叠律,重复已有项不会改变函数值,因此同一项可以分别参与多个合并。这个动作对应卡诺图的“允许重复覆盖”:m₇可以同时与m₃、m₅、m₆形成三对。配项允许重复已有项,但不得引入原函数规定为0的输入组合。
自测题:化简AB+AB+AB,写出每步依据。
前两项并项得A,因此原式=A+AB=A+B。第二步用消去形式。可以用00、01、10、11四种输入检查,只有00输出0。
4 · 德摩根定律、反演规则与对偶规则
对应课件第16页、第20—24页。
德摩根定律给出复合逻辑表达式整体取反后的等价形式:
“并非A和B都成立”等于“至少有一个不成立”;“A或B都不成立”等于“A不成立并且B不成立”。因此反号向内推进时,运算符必须互换。对多个输入同样成立:ABC=A+B+C。
反演规则与反函数
求F时,把表达式中的与、或互换,0、1互换,并把每一个变量的极性翻转,同时保留原来的层次结构。可从表达式的最外层开始逐层应用德摩根定律,以保持运算层次。原表达式已有的整体反号应按其作用范围逐层处理。
若F=AB+C,则F=AB+C=AB·C=(A+B)C。若漏掉括号写成A+BC,输入A=0、B=0、C=1时就得到错误结果。
例如F=AB+CD,反演后为(A+B)(C+D)。原来反变量上的非被再取一次非后消掉,而两组乘积项之间的或变成与,结构因此必须用括号保留。
对偶规则:运算和常量互换,变量极性保持
对偶式记为FD,通常不等于反函数。它仅交换与、或以及0、1,不交换A与A。例如F=AB+C的对偶式是(A+B)C。取A=B=C=1时,F=1、FD=1,而F=0,足以说明对偶不等于反函数。
对偶原理说:一个成立的逻辑恒等式,对等号两边同时取对偶,仍成立。例如由A+AB=A,可立即得到A(A+B)=A。对偶原理可减少恒等式的证明工作,但不意味着任意函数都等于其对偶式。连续取两次对偶会回到原表达式;连续求反函数两次也会回到原函数,但这并不使两种操作相同。
| 操作 | 与/或 | 0/1 | 变量极性 | 所得对象 |
|---|---|---|---|---|
| 反演 | 互换 | 互换 | 翻转 | F,所有输出反向 |
| 对偶 | 互换 | 互换 | 保持 | FD,通常是另一个函数 |
自测题:F=A+B(C+0)的反函数和对偶式分别是什么?
保留括号层次,反函数为A(B+C·1),可化为A(B+C);对偶式为A(B+C·1)=A(B+C)。后者变量没有取反。
5 · 复合逻辑:与非、或非、异或、同或
对应课件第25—36页。
复合逻辑门由基本逻辑运算组合而成。与非F=AB只在全部输入为1时输出0;或非F=A+B只在全部输入为0时输出1;与或非先做若干与,再或,最后整体取反,例如F=AB+CD。
| A B | NAND 与非 | NOR 或非 | XOR 异或 | XNOR 同或 |
|---|---|---|---|---|
| 0 0 | 1 | 1 | 0 | 1 |
| 0 1 | 1 | 0 | 1 | 0 |
| 1 0 | 1 | 0 | 1 | 0 |
| 1 1 | 0 | 0 | 0 | 1 |
与非门和或非门的通用性
只要能实现与、或、非,就能实现任何有限变量的布尔函数。与非门把输入并接即可得到非:NAND(A,A)=A;先得到NAND(A,B),再对它取非,得到AB;先把A、B分别取非,再送入与非门,得到¬(A′·B′)=A+B。或非门也可用相同思路构造非、或、与。实际设计仍要计入产生反变量所需的门,不能假定反变量无代价地存在。
异或:相异为1;同或:相同为1
异或还可以看成不带进位的二进制加法。A⊕0=A,A⊕1=A,A⊕A=0,A⊕A=1。多个变量异或的结果等于1的个数的奇偶性:奇数个1输出1,偶数个1输出0。该性质是奇偶校验与格雷码转换的逻辑基础。
多输入同或的函数形式取决于其定义。若是二输入同或门依次级联,则A⊙B⊙C=A⊕B⊕C;四个变量级联同或又是四输入异或的反函数。原因是每进行一次同或就在异或基础上增加一次取反。器件资料中的“多输入XNOR”也可能直接定义为多输入XOR的反函数,因此,两种定义应加以区分。课件第35页讨论的是二输入同或的连续运算。
例:1011四位数据的异或为1⊕0⊕1⊕1=1;若加入偶校验位P,则要求数据各位与P总异或为0,所以P=1。再看二进制B=1011转格雷码:最高位保留1,其余相邻二进制位异或,得到G=1110。反向还原时使用已还原的高一位,不能仅对相邻格雷码位逐对异或。
实验1:逻辑门与真值表
多输入同或的函数形式取决于其定义。若是二输入同或门依次级联,则A⊙B⊙C=A⊕B⊕C;四个变量级联同或又是四输入异或的反函数。原因是每进行一次同或就在异或基础上增加一次取反。器件资料中的“多输入XNOR”也可能直接定义为多输入XOR的反函数,因此,两种定义应加以区分。课件第35页讨论的是二输入同或的连续运算。
自测题:化简A⊕B⊕A。
异或满足交换、结合律,因此A⊕B⊕A=(A⊕A)⊕B=0⊕B=B。同一变量异或两次可相互抵消。或运算则满足A+B+A=A+B,其结果与异或不同。
6 · 功能描述、真值表与表达式
对应课件第37—45页、第83—85页。
n个独立的二值输入共有2n种组合。真值表的左半部分最好按二进制升序排列;右半部分逐行按题意填写。同一变量顺序下,一个完全规定的逻辑函数只有一张真值表,但可以有许多等价表达式。判断两个式子是否相等,最直接的标准是它们在每一行上的输出是否相等,而不是外形是否相似。
例:三人多数表决函数
A、B、C分别表示三个人是否同意,同意记1;F表示议案是否通过,通过记1。题意“至少两人同意”使011、101、110、111四行输出1,其他行输出0。
| 编号 | A | B | C | 同意人数 | F |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 | 1 | 0 |
| 2 | 0 | 1 | 0 | 1 | 0 |
| 3 | 0 | 1 | 1 | 2 | 1 |
| 4 | 1 | 0 | 0 | 1 | 0 |
| 5 | 1 | 0 | 1 | 2 | 1 |
| 6 | 1 | 1 | 0 | 2 | 1 |
| 7 | 1 | 1 | 1 | 3 | 1 |
每一行的条件可写成仅在该行取值为1的乘积项。011对应ABC,101对应ABC,110对应ABC,111对应ABC。把这些项相或:
最后一个式子也可直接由题意得到:“A与B都同意”或“A与C都同意”或“B与C都同意”。三人都同意时三个乘积项都为1,但逻辑或仍为1。直接写式子通常更快,真值表则更便于检验有没有遗漏条件。
波形图与逻辑函数的关系
沿时间轴选取各信号已经稳定的区间,读出A、B、C,再按真值表求F,就能画出理想输出波形。反过来,给出的波形如果没有遍历全部输入组合,就只提供了函数的部分信息,通常不能唯一确定完整真值表。
语言描述也可以用硬件描述语言表达。对组合逻辑而言,类似“F = (A AND B) OR C”的语句只是另一种函数记法;关键仍是理解操作顺序与数据范围。硬件描述语言属于逻辑函数的一种表示方式,本章侧重其与真值表、表达式及逻辑图之间的对应关系。
自测题:“恰好两人同意”与“至少两人同意”的表达式差别是什么?
恰好两人同意只保留011、101、110,函数为ABC+ABC+ABC;111必须为0。至少两人同意还包括ABC,因此可化简为AB+AC+BC。
7 · 最小项、最大项与两种标准表达式
对应课件第46—72页。
最小项mᵢ:只在第i行等于1
n变量的最小项是一个包含全部n个变量、每个变量恰好出现一次的与项。变量可以取原变量或反变量。规定变量顺序ABC,输入101对应编号5;要让这个与项在101时为1,就写ABC,因此m₅=ABC。在其他任何一行,总有一个因子为0,所以m₅为0。
原变量对应该位1,反变量对应该位0,是为了使整个乘积在指定输入时等于1。不同最小项对应不同输入,彼此相与为0;把全部2n个最小项相或得到1。每一个最小项有n个逻辑相邻项,每次翻转其编号二进制的一位就得到一个邻居。
最大项Mᵢ:只在第i行等于0
最大项是包含全部变量且每个恰好出现一次的或项。同样输入101,要让整个或项为0,必须各文字都为0,所以M₅=A+B+C。因此最大项编号的写法与最小项相反:该位0写原变量,该位1写反变量。“最小、最大”不是在说某个表达式的数值大或小,而是约定的标准项名称。
| 输入ABC | 编号i | 使该行唯一为1的mᵢ | 使该行唯一为0的Mᵢ |
|---|---|---|---|
| 000 | 0 | ABC | A+B+C |
| 011 | 3 | ABC | A+B+C |
| 101 | 5 | ABC | A+B+C |
| 111 | 7 | ABC | A+B+C |
最小项与最大项的性质
最小项把输入的每一位都检查一遍,所以它像一个精确地址检测器。只要一位不符合,其中一个与因子就为0;全部符合才为1。两个不同地址不可能被同一个输入同时命中,因此i≠j时mᵢmⱼ=0。所有地址合起来覆盖完整输入空间,所以Σmᵢ=1。
最大项像一个“只排除某一地址”的约束。在指定行,每个或因子都为0,它才为0;任何一位偏离这一行,就有一个因子变成1,使该约束通过。因此不同最大项相或为1;全部最大项相与为0,因为每个输入都至少会被与自己同编号的最大项排除。上述性质说明了最小项与最大项采用相反极性编号规则的原因。
“标准式唯一”还带有前提:变量集合、变量顺序和全部输入下的输出已经固定。同一个函数如果在形式上多列入一个无影响变量D,真值表行数会从8变成16,标准项编号也要重写;这不表示函数行为改变,只是描述空间扩大了。
标准与或式选1行,标准或与式选0行
把输出为1各行的最小项相或,得到标准与或式,记作Σm(…)。把输出为0各行的最大项相与,得到标准或与式,记作ΠM(…)。这里Σ、Π分别表示逻辑或和逻辑与,不做整数求和、求积。
多数表决F(A,B,C)=Σm(3,5,6,7)=ΠM(0,1,2,4)。这两种标准形式描述同一个函数:左式列出通过的行,右式列出否决的行。应明确变量顺序ABC;如果改为CAB,同一个输入组合的编号就会变化。
任意与或式也能补成标准式。例如F=AB+C。AB缺C,乘(C+C);C缺A、B,乘(A+A)(B+B)。展开、去掉重复项后得F=Σm(1,3,5,6,7)。重复出现的m₇只需保留一次,因为m₇+m₇=m₇。
四种表达式之间的编号关系
令全集U={0,…,2n−1},F为1的编号集合为S。则F=Σm(S)=ΠM(U−S),F=Σm(U−S)=ΠM(S)。同编号的mᵢ与Mᵢ互为反函数,由德摩根定律直接可得。
同一函数由Σm形式转换为ΠM形式时,编号取补集;对函数取反并同时将Σm转换为ΠM时,编号保持不变。转换前应明确是否涉及函数取反。
把一般或与式补成标准或与式
最小项缺变量时乘(Y+Y);最大项缺变量时用第二分配律:X=(X+Y)(X+Y)。两种补法是对偶关系。若仅在和项上乘(Y+Y),则只是将函数乘以1,并未得到所需的标准和项之积。
以F=AB+C为例,先用第二分配律改写为(A+C)(B+C)。A+C缺B,展开成(A+B+C)(A+B+C),即M₀M₂;B+C缺A,展开成(A+B+C)(A+B+C),即M₀M₄。重复M₀只保留一次,最终F=M₀M₂M₄=ΠM(0,2,4)。它与前面Σm(1,3,5,6,7)的编号正好互补。
实验2:标准表达式、反演与对偶
最小项缺变量时乘(Y+Y);最大项缺变量时用第二分配律:X=(X+Y)(X+Y)。两种补法是对偶关系。若仅在和项上乘(Y+Y),则只是将函数乘以1,并未得到所需的标准和项之积。
自测题:F(A,B,C,D)=Σm(1,3,5,6,10,11,13),写出F的最大项式以及反函数两种标准式。
全集是0—15。F=ΠM(0,2,4,7,8,9,12,14,15);F=Σm(0,2,4,7,8,9,12,14,15)=ΠM(1,3,5,6,10,11,13)。
8 · 逻辑图的构造与功能分析
对应课件第73—81页。
逻辑图把抽象运算对应到门。画F=AB+AC时,先用非门产生A,两个与门分别算AB与AC,最后用或门合成。信号连线上的连接点表示电气连接;两条线交叉而无连接点时,不能擅自当作相接。一个信号分送多个门是扇出,在逻辑上没有问题,能驱动多少负载则要看第三章的电气指标。
基于中间节点的逐级分析方法
- 从输入一侧开始,按门的功能写中间量,例如P=AB、Q=AC。
- 继续写末级F=P+Q,再依次代回,得到完整函数。
- 用代数或真值表化简,最后用自然语言说明功能,不能只停在一个长式子上。
- 抽查边界组合。例如A=0、A=1时,函数是否分别退化成C、B?若满足,则该函数实现由A控制的B、C选择功能。
与或式的与非—与非实现
先用与非门产生P、Q,末级再与非,就得到原来的或关系。例如F=AB+CD,第一层两个与非门输出AB、CD,第二层输出¬(¬(AB)·¬(CD))=AB+CD。这是逻辑等价,不代表能忽略每个门的输入数限制或传播延迟。
同理,或与式F=(A+B)(C+D)适合变成或非—或非:第一层产生各和项的非,末级或非。门级实现前宜先确定与或式或或与式,使表达式层次与门电路结构对应。
四个与非门实现异或的分析
课件逻辑图分析中的一个典型网络可以按中间节点写成:P=NAND(A,B),Q=NAND(A,P),R=NAND(B,P),F=NAND(Q,R)。这里Q、R共同使用P,但不是把P当成新的独立输入;P始终由A、B决定。逐行计算如下:
| AB | P | Q | R | F |
|---|---|---|---|---|
| 00 | 1 | 1 | 1 | 0 |
| 01 | 1 | 1 | 0 | 1 |
| 10 | 1 | 0 | 1 | 1 |
| 11 | 0 | 1 | 1 | 0 |
结果与异或真值表完全一致。特别检查11:P先为0,使Q、R都为1,末级与非才为0。若分析时忘记把P的表达式代入,会把它误当作可独立变化的第三变量,得到不属于原电路的输入情况。门级分析需要遵守网络中的依赖关系。
例:半加器与全加器的逻辑函数
半加器有输入A、B,输出和S=A⊕B、进位Cout=AB。A=B=1时算术结果为10,因此S=0、Cout=1。它没有低位进位输入,所以不能直接用来处理多位加法的每一位。
全加器加入Cin:S=A⊕B⊕Cin;Cout=AB+ACin+BCin。和位表示三个输入中1的个数是奇数;进位表示至少两个输入为1。进位函数与第6节推导的三人多数表决函数相同。
取A=1、B=0、Cin=1,总和为2,即二进制10。异或算S=1⊕0⊕1=0,多数函数算Cout=0+1+0=1。把高位进位和低位和按权重组合,1×2+0=2,与算术结果一致。
自测题:仅使用与非门实现¬A与AB。
把与非门的两个输入都接A,输出NAND(A,A)=A。先算P=NAND(A,B),再把P接到另一与非门的两个输入,得到NAND(P,P)=AB。
9 · 卡诺图的构造与逻辑相邻
对应课件第92—113页。
代数化简较为灵活,但判断表达式是否达到最简形式通常需要进一步分析。卡诺图由真值表重新排列得到,在保留完整输入空间的同时,直观呈现逻辑相邻关系。
两个最小项若只有一个变量极性不同,其他相同,则可合并,消去变化的那个变量。例如ABC+ABC=AC(B+B)=AC。卡诺图的每一个圈,都是这种代数合并的图形记录。圈越大,允许变化的变量越多,保留下来的条件越少。
三变量与四变量卡诺图的坐标排列
三变量通常让A作为两行,BC作为四列;BC顺序必须是00、01、11、10。四变量通常让AB作为行、CD作为列,两边都用00、01、11、10。采用该顺序可使相邻编码仅有一位不同。若误排成00、01、10、11,中间01到10同时变化两位,画出的“相邻圈”就可能没有代数依据。
四变量卡诺图中的编号布局如下。注意编号并非每行连续递增,而是由行码与列码拼接后读作二进制。
| AB \ CD | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | m₀ | m₁ | m₃ | m₂ |
| 01 | m₄ | m₅ | m₇ | m₆ |
| 11 | m₁₂ | m₁₃ | m₁₅ | m₁₄ |
| 10 | m₈ | m₉ | m₁₁ | m₁₀ |
逻辑相邻与边界相邻
左右两边和上下两边首尾相接,所以最左列与最右列相邻,最上行与最下行相邻,四角能组成四格圈。对角线两格不相邻。例如m₅=0101的四个邻居是m₁=0001、m₄=0100、m₇=0111、m₁₃=1101,每次只翻转一个位;m₅与m₁₀=1010差四位,不满足逻辑相邻条件。
三种填图方式
- 真值表:把每行输出填到对应编号格子。
- Σm式:列出的编号填1,其他填0;ΠM式:列出的编号填0,其他填1。
- 一般乘积项:找符合这个项的所有输入。例如四变量AB不限制C、D,应在AB=11一整行填1,共24−2=4格。一般和项填0时也用同样思路寻找使它为0的所有组合。
自测题:四变量中ABD对应几个格子?编号是什么?
项中固定A=1、B=1、D=0,C可以取0或1,所以是2格:1100的m₁₂与1110的m₁₄。它们位于AB=11行的最左、最右两列,跨左右边界相邻。
10 · 卡诺图化简方法
对应课件第114—125页、第127—130页。
卡诺圈的构造规则
- 求与或式时圈1;每圈只能包含1,或者在允许时包含无关项X,不能混入规定为0的格子。
- 圈的格数是1、2、4、8、16等2的幂,组成按格雷相邻关系连续的矩形。可以跨边界,不能采用L形、六格区域或对角线组合。
- 圈尽量大以减少文字,整组圈尽量少以减少项数。所有规定为1的格子都必须至少覆盖一次,允许重复覆盖。
- 每个必要圈都应贡献别的圈没有覆盖的1。若去掉一个圈仍覆盖全部规定1,它就是冗余圈。仅通过删除已有冗余圈不能保证得到全局最少项,必要时还应比较不同覆盖方案。
- 读圈时只写圈内不变化的变量。圈1求积项:固定为1写原变量,固定为0写反变量,变化的消掉。
“两格消一变量、四格消两变量、八格消三变量”来自:一个自由二值变量产生两种组合,k个自由变量产生2k种组合。四变量中八格圈只剩一个固定变量,因此表达式只含一个文字。全16格都是1时,函数就是常量1,不必再写变量。
例题推导:F=Σm(0,2,3,4,6,7,10,11,13,14,15)
先按编号填图。所有C=1的8格都为1,形成绿色八格圈,读得C。剩下尚未覆盖的1是m₀、m₄、m₁₃。m₀、m₄可与已圈的m₂、m₆合成跨左右边界的四格圈,四格共同条件A=0、D=0,所以读得AD。m₁₃只能借助m₁₅构成两格圈,共同条件A=B=D=1,所以读得ABD。
检查覆盖:C覆盖2、3、6、7、10、11、14、15;AD覆盖0、2、4、6;ABD覆盖13、15。并集恰好是原题的11个编号,没有额外覆盖任何0。三个圈都不可去掉:m₀、m₁₃以及例如m₁₀分别需要对应的圈。
求或与式:圈0,再把每圈写成和项
圈0时,可以先理解为对反函数F圈1,再用德摩根求回F。因而读式规则反过来:圈内固定0写原变量,固定1写反变量,变化的变量省略。每圈读成一个和项,最后把全部和项相与。
例:F(A,B,C)=Σm(1,3,4,5,7),规定为0的编号是0、2、6。圈m₀与m₂,共同A=0、C=0,读得(A+C);圈m₂与m₆,共同B=1、C=0,读得(B+C)。所以F=(A+C)(B+C)。利用(X+Z)(Y+Z)=XY+Z,等价与或式为C+AB。因此,圈0与圈1时应采用不同的读式极性规则。
最简式不一定唯一。即便都达到最少乘积项和最少文字,也可能有多个等价覆盖方案。这里讨论的是两级与或/或与表达式的简化;真实芯片选择还会受门数、输入数、延迟、布线和毛刺影响,稳态最简表达式与工程指标最优实现的关系将在第三章讨论。
主蕴含项、必需项与覆盖选择
先找不能再扩大的合法圈,这些圈对应主蕴含项;它们都不能包含规定0。再检查每个规定1:如果它只落在一个候选大圈中,这个圈必须选择,称为必需项。选完必需项后,把已经覆盖的1标记出来,只对剩余1比较覆盖方案。覆盖方案应按新增项数及总文字数比较,不能仅依据几何排列选择。
某个候选圈不是必需项,并不表示它永远不能使用;它可能和其他圈搭配构成最优方案。相反,“每个圈已经足够大”也不保证整个方案项数最少,因为几个大圈之间仍可能有更好的组合。变量较少时可人工比较;也可枚举合法子立方体并求解精确覆盖;贪心选圈通常不能保证得到全局最简结果。
检验一个圈是否有效的代数方式是:写出圈内所有输入的二进制形式,找出共同固定的位;其余位应遍历全部组合。例如固定两位、放开两位,应该恰好有四格,而且这四格的自由位00、01、10、11都必须出现。仅仅有四个1,或者四个格子几何上看着接近,都不能替代这一步检查。
实验3:四变量卡诺图化简
检验一个圈是否有效的代数方式是:写出圈内所有输入的二进制形式,找出共同固定的位;其余位应遍历全部组合。例如固定两位、放开两位,应该恰好有四格,而且这四格的自由位00、01、10、11都必须出现。仅仅有四个1,或者四个格子几何上看着接近,都不能替代这一步检查。
自测题:说明八个1能够合并为一个八格圈所需的条件。
格数只是必要条件,还要这些组合组成一个布尔子立方体,也就是只固定同一组变量、其余变量自由变化。八个1若散落成不连续形状,或形成奇偶交错棋盘,就不能因数量是8而合并成一个积项。
11 · 五变量卡诺图及跨平面合并
对应课件第98—101页、第107—111页、第126页、第129—130页。
五变量有32个输入组合。课件把它画成4×8,利用格雷码的反射关系识别“相重”。初学时也可以把A作为层变量,画两张相同坐标的四变量图:A=0一张,A=1一张;两张图都用BC为行、DE为列。两种画法描述同一组32个输入,编号与邻接关系必须保持一致。
在一张平面内部,仍按四变量规则寻找邻接;跨平面时,只有坐标相同的格子才只改变A。例如m₃=00011与m₁₉=10011只差A,因此相邻。m₃的其余四个邻居是m₁、m₂、m₇、m₁₁。对一个n变量最小项来说,恰好有n个只差一位的邻居,该性质可用于检查几何排列中未直接显现的相邻关系。
例:两层相同位置合并后消去A
F(A,B,C,D,E)=Σm(3,7,19,23)。四个编号的二进制分别是00011、00111、10011、10111。共同条件B=0、D=1、E=1;A和C各自都出现0与1且组合完整,所以四格可合并,得到F=BDE。
若只在A=0平面合并m₃与m₇,得到ABDE;A=1平面对应的一圈是ABDE;两项再相或,就消去A。两层中不同位置的格子不能仅按数量合并,还需验证固定变量与自由变量的组合关系。
4×8画法中,某些“隔着几列但关于反射轴对称”的位置也只差一位,不能只凭格子是否紧挨来判断。邻接关系可通过编号的五位二进制表示验证:一位不同就是相邻;整个圈内应能找出一组固定变量,其余变量的全部组合齐全。此代数判据适用于不同的卡诺图排列方式。
自测题:m3和m27在五变量中是否相邻?m3和m19呢?
m₃=00011,m₂₇=11011,两位不同,不相邻。m₁₉=10011,只改最高位,因此与m₃相邻。十进制编号差值大小不能直接决定逻辑相邻。
12 · 无关项与未完全规定逻辑函数
对应课件第131—135页。
有些输入在系统约定下不会出现,或者它们出现时输出不受要求限制,于是这些行不必预先指定输出0还是1,记作X或d。它不是第三个逻辑电平;最终电路在这行仍会输出0或1,设计要求允许选择其中任一值。
典型场景是合法8421 BCD输入。4位只能输入0000到1001,也就是十进制0—9;1010到1111六个组合在题设保证下不会出现,可作为无关项。如果硬件输入实际上可能经过这些非法码,或要求对非法码报警,就不能擅自把它们当无关项。
例:一位BCD四舍五入判断
输入A、B、C、D按8421权重表示一位十进制数,输出F=1表示该位应“五入”。合法码0—4输出0,5—9输出1;10—15为X。因此F=Σm(5,6,7,8,9)+Σd(10,11,12,13,14,15)。
A=1的半幅卡诺图包含8、9两个规定1和10—15六个X,可合成八格圈,读得A。B=C=1包含6、7、14、15,读得BC;B=D=1包含5、7、13、15,读得BD。所以F=A+BC+BD=A+B(C+D)。在合法输入0—9中逐项验证:4是0100,输出0;5是0101,输出1;8、9由A保证输出1。非法码的输出由具体实现决定,本题不规定其显示或报警行为。
无关项的使用规则
- 圈1求与或式时,X可以帮助扩大圈;不帮助时不必圈。每一圈应覆盖至少一个规定1。
- 圈0求或与式时,X也可以帮助扩大0圈;规定1不能圈进去。每一圈应覆盖至少一个规定0。
- 必须保留所有规定输出的行;不能因为某个1难覆盖就把它改成X。
- 分别化简得到的SOP与POS可能在X行输出不同,这仍满足同一个未完全规定的设计任务。不能要求它们在全部2n行完全相等,只需在规定行一致。
课件含无关项例题的两种结果
课件第134页给F=Σm(1,2,3,7,8,11)+Σd(6,9,10,12,13)。按它的画圈方案可得SOP:
另一种圈0方案给出POS:
规定0的编号是0、4、5、14、15。此例两种式子在全部16行都相同,包括X行:m₆输出1,m₁₂输出0,说明并非每个X都必须被取为1。一般来说,不同有效实现可以在X行不同。例如三变量G=Σm(3,4)+Σd(0),SOP可取ABC+BC,POS可取(A+B)(A+C)(B+C);在无关项000上前者为1、后者为0,规定行却一致。实验3可用于比较该例题的与或式及或与式覆盖方案。
形式F=Σm(S)+Σd(D)分别声明两类集合:“必须为1的S”和“可自由指定的D”。两集合应互不重叠;d项不能视为恒等于1的已知最小项。
自测题:能否把BCD的10—15都直接填1,再要求最终电路都输出1?
若另行规定非法码输出1,则形成另一个完全规定的设计任务,可能限制化简。原题将这些输入指定为X时,可以选择对化简有利的值,不要求全部为1,也不要求全部被圈。实际电路会给出确定值。
13 · 综合自测与参考解析
以下自测题涵盖功能描述、代数变换、卡诺图化简及有效性验证。
训练1 · 从文字定义到表达式
设备有总使能E、自动请求A与手动请求M。仅在总使能有效,且A、M恰好有一个为1时启动。写出函数并列出输出为1的最小项编号,变量顺序EAM。
参考解析
“恰好一个”是异或,不是或:F=E(A⊕M)=EAM+EAM。符合条件的是101与110,即F=Σm(5,6)。若A=M=1应输出0;这一行最容易误判。
训练2 · 反演、对偶与代数验证
F=AB+AC。求反函数、对偶式,并判断F是否等于自己的对偶。
参考解析
F=(A+B)(A+C)。FD=(A+B)(A+C)。展开对偶式得AC+AB+BC,再去掉一致项BC,得AC+AB。一般不等于F;取A=1、B=1、C=0,F=1而FD=0。
训练3 · 三变量卡诺图
F(A,B,C)=Σm(0,2,4,6,7)。分别求一个最简与或式、一个最简或与式。
参考解析
0、2、4、6共同C=0,组成跨边界四格圈,读C;6、7组成一对,读AB。于是SOP为C+AB。0格为1、3、5;圈1、3得到(A+C),圈1、5得到(B+C)。POS为(A+C)(B+C)。第二分配律验证它等于C+AB。
训练4 · 四变量与跨边界合并
F(A,B,C,D)=Σm(0,2,8,10)。根据各编号的二进制表示确定固定变量。
参考解析
四个二进制编号0000、0010、1000、1010共同B=0、D=0,A、C自由,所以F=BD。在标准四变量图上恰为四角。根据对边首尾相邻的规则,四角共同构成一个四格圈。
训练5 · 无关项对结果的影响
F(A,B,C)=Σm(1,3)+Σd(5,7)。求最简与或式,并说明有效约束。
参考解析
1、3、5、7共同C=1,借助两个X合为四格圈,F=C。若不利用无关项,规定1只合成AC。两者在规定行0、1、2、3、4、6完全一致,在5、7可不同。题设必须保证这两行无需规定,才能接受更简单的C。
训练6 · 用全加器检验两种“加”
A=B=Cin=1时,全加器的S、Cout各是什么?为什么S不是1+1+1的直接逻辑或?
参考解析
三个输入数值相加为3=11₂,因此S=1、Cout=1。S由三输入异或得到,Cout由多数函数得到。在该输入下,逻辑或的结果同样为1,但在110时逻辑或为1,和位异或为0,所以不能用或门代替全加器和位。
验证要求:每个结果应给出相应输入行、代数定律或卡诺圈作为依据。对于不同形式的表达式,应先验证其在全部规定输入下的等价性,再比较项数与文字数。
14 · 逻辑函数分析与设计流程
- 定义变量:输入、输出、变量顺序、0/1含义、合法输入范围。
- 列出真值表:真值表不能漏行、重行;合法约束与无关项分清。
- 选择表示形式:根据设计要求选择与或式或或与式;Σm对应输出1,ΠM对应输出0。
- 化简函数:先找大圈与必需项,兼顾项数、文字数;代数每步写依据。
- 构造电路:从表达式层次到门级连接;需要反变量时补非门;NAND/NOR转换用德摩根。
- 验证结果:完全规定函数逐行相等;含X的只要求规定行一致。测试全0、全1、边界输入与特殊条件。
本章建立了逻辑函数的表示、化简与验证方法。第三章将在此基础上讨论译码器、数据选择器和加法器等模块的组合应用,并分析输入输出电气兼容性、传播延迟及险象。
本章笔记 · ← 第一章:数制与编码 · 第三章:组合逻辑电路设计 → · 返回学习首页
本章来源索引:2—12页逻辑基础;13—24页定律与规则;25—36页复合运算;37—45页函数描述;46—72页标准式;73—85页电路、波形与语言;86—91页代数化简;92—130页卡诺图;131—135页无关项;136—140页综合例题。