求输出用卡诺图化简逻辑函数数化简并画出逻辑图

用卡诺图化简逻辑函数
我的图书馆
用卡诺图化简逻辑函数
一、卡诺图
&&& 逻辑函数可以用卡诺图表示。所谓卡诺图,就是逻辑函数的一种图形表示。对n个变量的卡诺图来说,有2 个小方格组成,每一小方格代表一个最小项。在卡诺图中,几何位置相邻(包括边缘、四角)的小方格在逻辑上也是相邻的。
二、最小项的定义及基本性质:
&&& nm10 0000 m
&&& 1.4.10001111000011011m0, m,m,
&&&&&&&&&&&&&&&&&&&&&&&&&& 图1.4.1 卡诺图
二、应用卡诺图表示逻辑函数
&&& 应用卡诺图化简逻辑函数时,先将逻辑式中的最小项(或逻辑状态表中取值为1的最小项)分别用1填入相应的小方格内,其它的则填0或空着不填。如果逻辑式不是由最小项构成,一般应先化为最小项或将其列出逻辑状态表后填写。
三、应用卡诺图化简逻辑函数
&&& 112 m0
&&&&&&&&&&
&& 用“×”(或“d” )表示
&&& 利用无关项化简原则:
&& 无关项即可看作“1”也可看作“0”。卡诺图中,圈组内的“×”视为“1”,
组外的视为“0”。
&&& 例1 为8421BCD码,当其代表的十进制数≥5时,输出为“1”,求Y的最简表达式。(用于间断输入是否大于5)
&&& 解:先列真值表,再画卡诺图
&&& Y= && n&&& 12mmn?&&& 22mm(n-m)?&&& 32m(n-m)“”“”?&&& 4m=n1n1
TA的最新馆藏
喜欢该文的人也喜欢下载费用:6 元 &
数字逻辑第四章课后答案.doc 盛建伦:《数字逻辑与 VHDL 逻辑设计》习题解答4 - 1习题 4 解答4-1试用与非门设计实现函数 F(A,B,C,D)=Σm(0,2,5,8,11,13,15)的组合逻辑电路。解:首先用卡诺图对函数进行化简,然后变换成与非-与非表达式。化简后的函数4-2试用逻辑门设计三变量的奇数判别电路。若输入变量中 1 的个数为奇数时,输出为 1,否则输出为 0。解:本题的函数不能化简,但可以变换成异或表达式,使电路实现最简。真值表: 逻辑函数表达式:A B C Y0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 CBABAC????????)(=1=1A B CYAB1 00 1CD 00
011 100 11 01 01 01110 ACDBDCBF????????逻辑图&&B&&&&&&&AF盛建伦:《数字逻辑与 VHDL 逻辑设计》习题解答4 - 24-3用与非门设计四变量多数表决电路。当输入变量 A、B 、C、D 有三个或三个以上为 1 时输出为 1,输入为其他状态时输出为 0。解:真值表: 先用卡诺图化简,然后变换成与非-与非表达式:A B C D Y0 0 0 00 0 0 1 0 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 1 1 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 10111逻辑函数表达式: 4-4 用门电路设计一个代码转换电路,输入为 4 位二进制代码,输出为 4 位循环码。解:首先根据所给问题列出真值表,然后用卡诺图化简逻辑函数,按照化AB0 00 0CD 00
011 100 10 01 11 01110ACDBAY????&B&&&&ACDY逻辑图盛建伦:《数字逻辑与 VHDL 逻辑设计》习题解答4 - 3简后的逻辑函数画逻辑图。真值表: 卡诺图化简:A B C D Y1 Y2 Y3 Y40 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 11 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 10 0 0 00 0 0 10 0 1 10 0 1 00 1 1 00 1 1 10 1 0 10 1 0 01 1 0 01 1 0 11 1 1 11 1 1 01 0 1 01 0 1 11 0 0 11 0 0 0化简后的逻辑函数:Y1 的卡诺图Y2 的卡诺图Y3 的卡诺图 Y4 的卡诺图AB0 00 0CD 00
011 101 11 11 11 1 1CD 00
111 100 01 10 01 1 1CD 00
011 101 10 00 01 1 1CD 00
111 100 10 10 10 11110A?1BY??2C3=1 =1 =1ABCD1234逻辑图盛建伦:《数字逻辑与 VHDL 逻辑设计》习题解答4 - 44-5 图 4.48 所示是一个由两台水泵向水池供水的系统。水池中安置了 A、B、C 三个水位传感器。当水池水位低于 C 点时,两台水泵同时供水。当水池水位低于 B 点且高于 C 点时,由水泵 M1 单独供水。当水池水位低于 A 点且高于 B 点时,由水泵 M2 单独供水。当水池水位高于 A 点时,两台水泵都停止供水。试设计一个水泵控制电路。要求电路尽可能简单。图 4.48 习题 4-5 的示意图解:设水位低于传感器时,水位传感器的输出为 1,水位高于传感器时,水位传感器的输出为 0。首先根据所给问题列出真值表。其中有几种情况是不可能出现的,用约束项表示。A B C M1 M20 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 10 0× ×× ×× ×0 1× ×1 01 1如果利用约束项化简 如果不利用约束项化简C2M1MDY???4A0 ×0 ×BC 00 0101× ×1 111 10M1 的卡诺图A0 ×1 ×BC 00 0101× ×1 011 10M2 的卡诺图BM?1AC?2 AB?1CM??2≥1&ABC121)(?=ABC12M& &逻辑图盛建伦:《数字逻辑与 VHDL 逻辑设计》习题解答4 - 5(a) 用约束项化简 (b) 不用约束项化简习题 4-5 的逻辑图4-6 试用 3 线-8 线译码器 74HC138 和门电路实现如下多输出逻辑函数并画出逻辑图。解:先将逻辑函数变换成最小项之和的形式再变换成与 74HC138 一致的形式令 74HC138 的 A2= A,A 1=B,A 0= C,4-7 试用 3 线-8 线译码器 74HC138 和逻辑门设计一组合电路。该电路输入 X,输出 Y 均为 3 位二进制数。二者之间关系如下:当 2≤X1001 时,判别电路输出为 1,否则输出为 0。解:从 CC14585 的一个端口输入数据 D3D2D1D0,另一个端口输入 1001。CC14585 的扩展输入端 IA>B 和 IA=B 必须接高电平,I A<B 必须接低电平。4-19 试根据表 4.24 的功能表,用逻辑门设计一个数据分配器(Demultiplexer) 。A 1、A 0 为地址输入,D 为数据输入, W3、W 2、W 1、W 0 为数据输出。数据分配器的功能正好与数据选择器相反,是按照所给的地址把一个输入数据从 N 个输出通路中选择一个输出,如图 4.51 所示。FBAI?AY?????B0D0D1D2D311001iiiiiii CBACBAS?????iiiiiO7421mCBACBASiiiiiiii???????7321CiiiiiiO?? 1CiBiAiSiA2A1A02SY7Y8& CO&逻辑图逻辑图盛建伦:《数字逻辑与 VHDL 逻辑设计》习题解答4 - 14表 4.24 习题 4-19 的功能表A1 A0 D W3 W2 W1 W00 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 10 0 0 00 0 0 10 0 0 00 0 1 00 0 0 00 1 0 00 0 0 01 0 0 0图 4.51 数据分配器解:表 4.24 的功能表可以简化为A1 A0 W3 W2 W1 W00 00 11 01 10 0 0 D0 0 D 00 D 0 0D 0 0 0逻辑函数4-20 试比较图 4.52 所示两个逻辑电路的功能。DeMUX1A03W120D0A12Y译 码 器-410Y21345 & 1FBCD2FA0 D0 D1 D2 D3 D4 D5 D6 D7 A1 8 选 1 数据选择器A2 Y 1BCAW??010D?012A?3 21W1& & &&103AD0逻辑图盛建伦:《数字逻辑与 VHDL 逻辑设计》习题解答4 - 15图 4.52 习题 4-20 的电路解:根据图 4.52 写出逻辑函数式。8 选 1 数据选择器的连接关系是:D6= D7= D,D 1=0,D 2= 1,D 5= D4= D3= D0= ,A 2=A,A 1= B,A 0= C ,所以,比较 FI 和 F2 的,可看出,两个电路的逻辑函数相同,所以逻辑功能也相同。4-21 用 VHDL 设计一个代码转换电路,输入为 4 位循环码,输出为 4 位二进制代码。解:首先画出代码转换电路的系统框图,如根据所给问题列出真值表。G3 G2 G1 G0 B3 B2 B1 B00 0 0 00 0 0 10 0 1 10 0 1 00 1 1 00 0 0 00 0 0 10 0 1 00 0 1 10 1 0 0DCBCBACABAmmF ???????? ????? ? DCBACBACBACAB ???????? ???????
B3代码转换电路G0 B0… …… …盛建伦:《数字逻辑与 VHDL 逻辑设计》习题解答4 - 160 1 1 10 1 0 10 1 0 01 1 0 01 1 0 11 1 1 11 1 1 01 0 1 01 0 1 11 0 0 11 0 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 11 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 1根据系统框图写 VHDL 程序的 Entity,用行为描述的方法,根据真值表写VHDL 程序的 Architecture。VHDL 程序如下:--Gray code to Binuse ieee.std_logic_1164.entity gray2binary isport( grayin : in std_logic_vector(3 downto 0);binaryout : out std_logic_vector(3 downto 0));end gray2architecture behave of gray2binary isbeginwith grayin selectbinaryout <= "0000" when "0000", "0001" when "0001", "0010" when "0011","0011" when "0010","0100" when "0110", "0101" when "0111","0110" when "0101","0111" when "0100", "1000" when "1100","1001" when "1101", "1010" when "1111", "1011" when "1110", "1100" when "1010", "1101" when "1011", "1110" when "1001", 盛建伦:《数字逻辑与 VHDL 逻辑设计》习题解答4 - 17"1111" when " 用 VHDL 设计一个代码转换逻辑电路。把 4 位二进制代码转换成 7 段字符显示代码。能显示数字 0~9 和字母 A,b,C,d,E,F。解:电路的输入是 4 位代码,输出是 7 位代码。用 D3~D0 作为输入信号名,用 Ya~Yg 作为输出信号名,分别对应 a、b、c、d、e 、f、g 这 7 个段。系统框图列出代码转换逻辑的真值表。表 4.12 代码转换逻辑电路的真值表D3 D2 D1 D0 Ya Yb Yc Yd Ye Yf Yg 显示字符 字形0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 11 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 11 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 10 0 1 1 1 1 11 0 0 1 1 1 00 1 1 1 1 0 11 0 0 1 1 1 11 0 0 0 1 1 AbCdEF… ……Ya Yb Yc Yd Ye Yf Yg代码转换电路 D3 D2 D1 D0 盛建伦:《数字逻辑与 VHDL 逻辑设计》习题解答4 - 18根据系统框图设计 VHDL 程序的 entity,用行为描述的方法,根据真值表设计 VHDL 程序的 architecture。use ieee.std_logic_1164.entity bcd2seg7 isport( bcdin : in std_logic_vector(3 downto 0);segout : out std_logic_vector(6 downto 0));end bcd2seg7;architecture behav of bcd2seg7 isbeginwith bcdin selectsegout <= "1111110" when "0000", --display"0""0110000" when "0001", --display"1";"1101101" when "0010","1111001" when "0011","0110011" when "0100", --display"4";"1011011" when "0101","1011111" when "0110","1110000" when "0111", --display"7";"1111111" when "1000","1110011" when "1001", --display"9";"1110111" when "1010", --display"A";"0011111" when "1011", --display"b";"1001110" when "1100", --display"C";"0111101" when "1101", --display"d";"1001111" when "1110", --display"E";"1000111" when "1111", --display"F";"-22 (有没有简单方法呢?)用 VHDL 设计一个代码转换逻辑电路。把 7 位的 ASCII 码转换成 7 段字符显示代码。能显示数字 0~9,字母 A,b,C,d, E,F ,H ,L,o,P,U,等。解:盛建伦:《数字逻辑与 VHDL 逻辑设计》习题解答4 - 19ASCII 码 7 段字符显示代码字符 A6 A5 A4 A3 A2 A1 A0 Ya Yb Yc Yd Ye Yf Yg 字形0 0 1 1 0 0 0 0 1 1 1 1 1 1 01 0 1 1 0 0 0 1 0 1 1 0 0 0 02 0 1 1 0 0 1 0 1 1 0 1 1 0 13 0 1 1 0 0 1 1 1 1 1 1 0 0 14 0 1 1 0 1 0 0 0 1 1 0 0 1 15 0 1 1 0 1 0 1 1 0 1 1 0 1 16 0 1 1 0 1 1 0 1 0 1 1 1 1 17 0 1 1 0 1 1 1 1 1 1 0 0 0 08 0 1 1 1 0 0 0 1 1 1 1 1 1 19 0 1 1 1 0 0 1 1 1 1 0 0 1 1A 1 0 0 0 0 0 1 1 1 1 0 1 1 1b 1 1 0 0 0 1 0 0 0 1 1 1 1 1C 1 0 0 0 0 1 1 1 0 0 1 1 1 0d 1 1 0 0 1 0 0 0 1 1 1 1 0 1E 1 0 0 0 1 0 1 1 0 0 1 1 1 1F 1 0 0 0 1 1 0 1 0 0 0 1 1 1H 1 0 0 1 0 0 0 0 1 1 0 1 1 1 L 1 0 0 1 1 0 0 0 0 0 1 1 1 0 o 1 1 0 1 1 1 1 0 0 1 1 1 0 1 P 1 0 1 0 0 0 0 1 1 0 0 1 1 1 U 1 0 1 0 1 0 1 0 1 1 1 1 1 0 4-23 用 VHDL 设计一个 16 位全加器。解:4-24 用 VHDL 设计一个 8 位数值比较器。解:盛建伦:《数字逻辑与 VHDL 逻辑设计》习题解答4 - 204-25 用 VHDL 设计一个四位超前进位加法器。解:-- 4-Bit carry-look-ahead Full Ause ieee.std_logic_1164.entity FULL_ADDER1 isport ( A, B : in bit_vector(3 downto 0);Cin :S : out bit_vector(3 downto 0);Cout : out BIT);end FULL_ADDER1;--architecture FULL_ADDERp of FULL_ADDER1 issignal sA,sB,sS : bit_vector(3 downto 0);signal sCin , sCout :signal sC : bit_vector(3 downto 0) ;signal sT : bit_vector(3 downto 0) ;signal sG : bit_vector(3 downto 0) ;beginsA <= A ;sB <= B ;sCin <= CsT(0) <= sA(0) xor sB(0) ; --P0sG(0) <= sA(0) and sB(0) ; --G0 sT(1) <= sA(1) xor sB(1) ; --P1sG(1) <= sA(1) and sB(1) ; --G1 sT(2) <= sA(2) xor sB(2) ; --P2sG(2) <= sA(2) and sB(2) ; --G2 sT(3) <= sA(3) xor sB(3) ; --P3sG(3) <= sA(3) and sB(3) ; --G3 --sC(0)<=sG(0) or (sT(0) And sCin) ;--C0sC(1)<=sG(1) or (sT(1) and (sG(0) or (sT(0) and sCin))); --C1sC(2)<=sG(2) or (sT(2) and (sG(1) or (sT(1) and (sG(0) or (sT(0) and sCin))))); --C2sC(3)<=sG(3) or (sT(3) and (sG(2) or (sT(2) and (sG(1) or (sT(1) and (sG(0) or (sT(0) and sCin))))))); --C3--盛建伦:《数字逻辑与 VHDL 逻辑设计》习题解答4 - 21sS(0) <= sT(0) xor sC --S0sS(1) <= sT(1) xor sC(0) ; --S1sS(2) <= sT(2) xor sC(1) ; --S2sS(3) <= sT(3) xor sC(2) ; --S3--S <= sS ;Cout <= sC(3) ;4-26 试用两片 74HC138 实现 8421 BCD 码的译码。解:输入的 8421 BCD 码的 D0~D2 位直接与 74HC138 的代码输入端连接,8421 BCD 码的 D3 分别与 74HC138 的一个使能端连接。当 D3=0 时, Z0~Z7 中的某个输出有效;D 3=1 时, Z8 或 Z9 输出有效。逻辑图:D3A2A1A02SY7Y81A2A1A02SY8D2D1D07Z0Z89盛建伦:《数字逻辑与 VHDL 逻辑设计》习题解答4 - 22
下载文档到电脑,查找使用更方便
6 元 &&0人已下载
还剩页未读,继续阅读
<a href="UserManage/CopyrightAppeal.aspx?bid=59844" title="版权申诉" class="fLeft works-manage-item works-manage-report" target="_blank"
关&键&词: 数字 逻辑 第四 课后 答案 主编 大学 免费 下载
& 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
本文标题:数字逻辑第四章课后答案.doc 链接地址:
当前资源信息
编号: 14115
类型: 共享资源
格式: DOC
大小: 1.10MB
上传时间:
&& 广告或垃圾信息
&& 色情、淫秽、低俗信息
&& 反政府、反人类、反社会等反动信息
&& 散布赌博、暴力、凶杀、恐怖或者教唆犯罪等信息
&& 侮辱、诽谤等人身攻击信息
&& 散布谣言、扰乱社会秩序,破坏社会稳定等信息当前位置: >
> 第2章 逻辑函数及其化简
第3节 逻辑函数的化简
2.3.1逻辑函数的标准形式
逻辑函数表达式有与-或表达式和或-与表达式两种基本形式。
所谓与-或表达式是指一个逻辑表达式中包含着若干个与项,每个与项中有一个或多个以原变量或反变量形式出现的变量名,所有这些与项相或就表示了一个逻辑函数。如,、、等均为与项,用这些与项就可以构成逻辑函数的与-或表达式。即:
这个表达式有3个与项,有时我们也将与称之为&乘积&项。于是,上述表达式可看成是由3个&乘积&项通过求&和&形成的,这样的表达式又称为&积之和&表达式。
所谓或-与表达式是指一个逻辑表达式中包含着若干个或项,每个或项中有任意个以原变量或反变量形式出现的变量名,所有这些或项相与就表示一个逻辑函数。如,、、等均为或项,用这些或项就可以构成或-与表达式。即:
这个表达式中有3个或项,有时我们也将或项称之为&和&项。于是,上述表达式可看成是由3个&和&项通过求&积&形成的,这样的表达式又称为&和之积&表达式。
任意的一个逻辑表达式,例如:
这种表示形式既不是与-或表达式,也不是或-与表达式,但可以通过&配项&然后应用分配律转换成与-或表达式或者或-与表达式。
一、最小项标准式
最小项标准式也称为与-或标准式。
对于一个任意的逻辑函数表达式,例如:
&&&&&&&&&&&&&&& (2.3.1)
其表达式并不是唯一的。根据上面介绍的分配律以及基本公式等概念,可以将表达式写成与-或表达式:
&&&&&&&&&&&&&&&&&&&&&&& (2.3.2)
&&& 利用公式,(2.3.2)式又可以变换为:
& &&&(2.3.3)
&&& 式(2.3.3)所表示的与-或表达式称为最小项标准式,(2.3.3)式中的与项称为三个变量A、B、C的最小项。
&&& 可以看出,所谓的最小项是一种与项,这种与项包含了所有的输入变量。每个输入变量或以原变量或以反变量的形式出现在与项中,且在每个与项中仅出现一次。
三个输入变量为A、B、C最多可组成八个最小项:、、、、、、、。变量的其它不同的组合,如:、、等都不满足最小项的条件,所以均不是最小项。
为了叙述和书写方便,通常用表示最小项。如果最小项(即:与项)中的原变量记为1,反变量记为0,且当变量顺序确定后,1和0按顺序排列成一个二进数,则与这二进数相对应的十进数就是最小项的下标i。表2.3.1列出了A、B、C三个变量函数可能存在的全部最小项。
表2.3.1& 三个变量函数中的最小项和最大项
变量取值组合
对应最小项及编号
对应最大项及编号
&&& 因此,(2.3.1)式表示的逻辑函数可写成:
&&&&&&&&& (2.3.4)
&&& 若借数学中常用的符号&&表示累计的逻辑&加&,则逻辑函数可写成如下形式:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&& (2.3.5)
其中,符号&&表示各项求或,后面括号内的数字表示函数的各最小项。等式左边括号内的字母表所有的变量名和它的排列顺序,变量的顺序是很重要的,一旦确定后,就不能随意改变,否则会造成表达式的错误。
&&& 上述例子说明,一个任意的逻辑函数均可表示为若干最小项之&和&。逻辑函数的与-或标准式就是函数的最小项标准式。
&&& 当逻辑函数用最小项标准式表示时,就能方便地列出逻辑函数及其反函数的真值表,上述例子的真值表如表2.3.2所示。
表2.3.2& 函数及其反函数的真值表
&&& 由表2.3.2所示真值表很容易写出其反函数的表达式
&&& 可以看出,对于A、B、C三个变量来说,可以形成个最小项。并且,若这些最小项不包含在的与-或标准式中,则必然包含在的与-或标准式中。这个结论可以推广到个输入变量的情况,个输入变量有个输入组合,即有个最小项。对于个输入变量的逻辑函数Y,根据逻辑代数基本定律,有
&&&&&&&&&&&&&&&&&&& (2.3.6)
&&&&&&&&&&&&&&& (2.3.7)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& (2.3.8)
&&& 上式表明:个输入变量所有最小项的&和&恒等于1
二、最大项标准式
&&& 最大项标准式也称为或-与标准式。
对于一个任意的逻辑函数表达式,例如:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& (2.3.9)
其表达式并不是唯一的。根据上面介绍的分配律以及基本公式等概念,可以将表达式写成或-与表达式:
&&&&&&&&&&&&& &&&&&&&&&&&&(2.3.10)
&&& 利用公式,(2.3.10)式又可改写为:
&&&&&&&&&&&&&&&&&&&& (2.3.11)
式(2.3.11)所表示的或-与表达式称为最大项标准式,(2.3.11)式中的或项称为三个变量A、B、C的最大项。
& & & & 可以看出,所谓的最大项是一种或项,这种或项包含了所有的输入变量。每个输入变量或以原变量或以反变量的形式出现在或项中,且在每个或项中仅出现一次。
三个输入变量为A、B、C最多可组成八个最大项:,,,,,,。变量的其它不同的组合,如:,,等都不满足最大项的条件,所以均不是最大项。
为了叙述和书写方便,通常用表示最大项。如果最大项(即:或项)中的原变量记为0,反变量记为1,且当变量顺序确定后,1和0按顺序排列成一个二进数,则与这二进数相对应的十进数就是最大项的下标i。表2.3.1列出了A、B、C三个变量函数可能存在的全部最大项。
因此,(2.3.11)式表示的逻辑函数可写成:
&&&& (2.3.12)
若借数学中常用的符号&&表示累计的逻辑&乘&,则(2.3.12)式可写成如下形式:
&&&&&&&&&&&&&&&&&&&&&&&&&&& (2.3.13)
其中,符号&&表示各项求与,后面括号内的数字表示函数的各最大项。等式左边括号内的字母表所有的变量名和它的排列顺序,变量的顺序是很重要的,一旦确定后,就不能随意改变,否则会造成表达式的错误。
&&& 上述例子说明,一个任意的逻辑函数均可表示为若干最大项之&乘积&。逻辑函数的或-与标准式就是函数的最大项标准式。
&&& 当逻辑函数用最大项标准式表示时,对于组成函数的所有最大项,只要有一项最大项为0,则该函数的值就为0,否则就为1。这样,我们就能方便地列出逻辑函数及其反函数的真值表,(2.3.13)式所表示的逻辑函数的真值表如表2.3.3所示。
表2.3.3 函数及其反函数的真值表
由表2.3.3所示真值表很容易写出其反函数的表达式
&&& 可以看出,对于A、B、C三个变量来说,可以形成个最大项。并且,若这些最大项不包含在的或-与标准式中,则必然包含在的或-与标准式中。
上述结论可以推广到个输入变量的情况,个输入变量有个最大项。对于个输入变量的逻辑函数Y,根据逻辑代数基本定律,有
&& &&&&&&&&&&&&&&&&&(2.3.14)
&&&&&&&&&&&&& &&(2.3.15)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& (2.3.16)
&&& 上式表明:个输入变量所有最大项的&积&恒等于0
&&& 根据上述对最小项和最大项的讨论,在同一个逻辑问题中,下标相同的最小项和最大项之间存在着互补的关系。即有:
或者&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&(2.3.17)
三、逻辑函数表达式的转换
&&& 任意一个逻辑函数,其表达式的形式可以多种多样,但是各种形式的表达式是可以转换的。并且,不论其表达式处于何种形式,总可以转换成最小项标准式和最大项标准式的形式。求一个逻辑函数表达式的标准形式有两种方法,一种是代数转换法,另一种是真值表转换法。
&&& 代数转换法
&&& 所谓代数转换法,就是利用逻辑代数的公式、定律和规则,将逻辑函数表达式从一种形式变换为另一种形式。下面通过例子说明之。
例2.3.1 将逻辑函数转换成最小项标准式
解:第一步:将逻辑函数表达式变换成与-或表达式。
&&&&&&&&&& &&&&
第二步:利用,将与-或表达式中不是最小项的与项展开成最小项,写出逻辑函数的最小项标准式。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& (2.3.18)
由例题可归纳求逻辑函数最小项标准式的步骤:
①将逻辑函数表达式变换成一般的与-或表达式。
②利用,将与-或表达式中不是最小项的与项展开成最小项,写出逻辑函数的最小项标准式。
例2.3.2 将例2.3.1中的逻辑函数化成最大项标准式。
解:第一步:将逻辑函数表达式变换成或-与表达式。
&&& 第二步:利用,将或-与表达式中不是最大项的或项展开成最大项,写出逻辑函数的最大项标准式。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& (2.3.19)
由例题可归纳求逻辑函数最大项标准式的步骤:
①将逻辑函数表达式变换成一般的或-与表达式。
②利用,将或-与表达式中不是最大项的或项展开成最大项,写出逻辑函数的最大项标准式。
根据上述两个例题的结果(2.3.18)式 和(2.3.19)式,对于同一个逻辑函数最小项标准式中的编号与最大项标准式中的编号具有&互补&关系。因此,只要求出了逻辑函数两种标准式中的任意一种,另一种标准式可按其编号的&互补&规律得出。
上述逻辑函数的真值表如表2.3.4所示。由真值表可知,逻辑函数Y的值为1对应的最小项出现在最小项标准式中,逻辑函数Y的值为0对应的最大项出现在最大项标准式中。
表2.3.4 例2.3.1和例2.3.2逻辑函数的真值表
由此可见,利用逻辑函数的真值表可方便地写出逻辑函数的两种标准式。
真值表转换法
真值表转换法就是首先作出逻辑函数的真值表,利用真值表与最小项和最大项的关系,直接写出逻辑函数的两种标准式。当代数转换法非常复杂时,真值表转换法就显得十分方便。
例2.3.3 将逻辑函数表达式表示成最小项标准式和最大项标准式。
解:首先作出该逻辑函数的真值表如表2.3.5所示。
表2.3.5 例2.3.3逻辑函数的真值表
&&& 由真值表2.3.5可知使逻辑函数Y的值为1的情况有四种取值组合,这些组合对应的最小项必定出现最小项标准式中。所以逻辑函数表达式的两种标准式如下:
&&& 由于逻辑函数的真值表与逻辑函数的两种标准式存在一一对应的关系,而任何一个逻辑函数的真值表是唯一的,所以任何一个逻辑函数的两种标准式也是唯一的,这样就给我们分析和研究逻辑函数带来了很大的方便。
2.3.2& 逻辑函数的代数化简法
一、逻辑函数的最简形式
同一个逻辑函数,其表达形式多种多样,但是表达式越简单,它所表示的逻辑关系也就越明确,实际应用中便能用越少的电子器件来实现它。因此对于比较繁复的逻辑表达式,往往要通过化简的方法来找出其最简的表达式。如下列两个逻辑函数表达式
列出它们的真值表后发现,其真值表完全相同,根据逻辑函数相等的定义,它们是同一个逻辑函数。但是很明显,比简单得多。
&&& 同一个逻辑函数,其最简表达式的形式也是多种多样,如最简的与-或表达式;最简的或-与表达式;最简的与非-与非表达式;最简的或非-或非表达式;最简的与-或-非表达式等等。在众多的最简表达式中大都可以通过最简的与-或表达式或者最简的或-与表达式转换得出,因此,一般只需研究最简的与-或表达式和最简的或-与表达式。
&&& 一个最简的与-或表达式应满足下述两个条件:
(1)表达式中所含与项的数目应该最少。
(2)在满足上述条件的前提下,每一个与项中所含变量的数目应该最少。
&同样,最简的或-与表达式也必须满足两个条件:
(1)表达式中所含或项的数目应该最少。
(2)在满足上述条件的前提下,每一个或项中所含变量的数目应该最少。
在数字逻辑电路中,逻辑函数表达式满足上述最简条件的前提下,设计的逻辑电路结构最简单从而使电路最经济。
由于习惯上人们把最简与-或表达式认为是逻辑函数的最简表达式,所以本书若无特别申明时,最简表达式就是指最简与-或表达式。
二、逻辑函数的代数化简法
所谓代数化简法就是利用逻辑代数中的公律、定理、基本公式等将一个逻辑函数表达式化简为最简形式,即消去逻辑函数中多余的与项和每个与项中多余的变量因子。代数化简法没有固定的步骤,只要熟练地运用逻辑代数中常用的公式、定律和规则,便能求出最简表达式。常用的方法有:合并项法、吸收法、消去法及配项法。
1.合并项法
利用公式将两项合并为一项,同时消去这一对互补因子。其中既可以是变量,也可以是复杂的逻辑式。
例 2.3.4& 化简
常利用公式消去多余项。其中既可以是变量,也可以是复杂的逻辑式。
例 2.3.5& 化简
例 2.3.6& 化简
常利用公式消去多余因子,其中既可以是变量,也可以是复杂的逻辑式。
例2.3.7& 化简
根据基本公式可以在逻辑函数表达式中重复写入某一项,或将某一乘积项乘以,从而将这一项展开为两项,再与其它的项重新进行合并,消去更多的项和变量,最终得到最简表达式。
例2.3.8& 化简
例2.3.9& 化简
对于化简较为复杂的逻辑函数表达式时,往往需要综合运用上述几种化简方法,才能得到最后的化简结果。
例2.3.10& 化简
&&& 用代数化简法求最简的或-与表达式时,可以直接运用前述介绍化简与-或表达式中提出的各种方法的对偶公式和定律来进行;也可以采用两次对偶法,首先对用或-与表达式表示的函数Y求出对偶式,得到与-或表达式,按与-或表达式的化简方法求出的最简表达式,然后,对再次求对偶,即可得到Y的最简或-与表达式。
&&& 代数化简法的优点是不受变量数目的约束,当对公式、定律和规则十分熟练时化简就比较方便。其缺点是没有一定的规律和固定的步骤,技巧性很强,而且在很多情况下难以判断化简结果是否最简。所以这种方法有很大的局限性。
2.3.3& 卡诺图化简法
卡诺图是上世纪五十年代美国工程师卡诺(M.Karnaugh)提出的。它逻辑关系的一种图表示法,形象且直观,并能说逻辑函数中的许多概念。卡诺图是数字逻辑设计中常用的一种数工具。下面将介绍卡诺图的构成、性质以及应用卡诺图化简逻辑函数的方法。
一、卡诺图
卡诺图实际上是真值表的一种变形,它与真值表具有一一对应的关系。真值表中的一行对应于卡诺图中的一个点(亦称一个单元),卡诺图的图形结构具有一定的规律,直观图形可方便地进行逻辑运算。
例如,某逻辑函数的真值表表示形式如表2.3.6所示。用卡诺图表示则如图2.3.1所示。可以看出真值表中的一行对应于卡诺图的一个方格单元,方格单元内所填的值为该行逻辑函数的值。
表2.3.6 某逻辑函数的真值表
将真值表变换为卡诺图一般可以分两步进行
1、将输入变量分为两组。如果是三变量,则分为一组,为另一组;如果是四变量,则为一组,为另一组。每组变量的取值组合必须按照循环码的规律排序。所谓循环码,指的是相邻两组变量的取值组合中,只能有一个变量的取值不同。如两变量输入时,取值组合有四种,列真值表时可以按照00,01,10,11的顺序排列,在卡诺图中不能按照这种顺序,因为它不符合循环码相邻两组之间只有一个变量取值不同的规则,强调相邻性还包括头尾两组。因此按照循环码的规则正确排列两变量的取值组合时,应为00&01&11&10。这样把输入变量分两组并按循环码的规则排列后,将真值表转化成方格图的形式。
2、从方格图中可以看出,有多少个变量的取值组合,便对应有多少个方格单元,且每个方格单元实际上就相当于真值表中的一个行,对应于逻辑函数的一个最小项,因此,为方便逻辑运算可以在每个方格单元中填入对应的最小项的代号。如图2.3.2与图2.3.3所示为三变量和四变量卡诺图的形式。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&& 分析图2.3.2和图2.3.3中最小项分布规律可以看出,几何位置相邻的最小项在逻辑上也具有相邻性,任何两个相邻的最小项仅有一个变量是不同,包括任意一行或一列头尾的最小项也仅有一个变量不同。因此,可以把卡诺图的上下、左右看成一个闭合图形。
&&& 在变量数大于、等于五以后,仅仅用几何图形在两维空间的相邻性来表示逻辑相邻性已经不够了。例如图2.3.4所示的五变量最小项卡诺图中,除了几何位置相邻的最小具有相邻性以外,以图中双竖线为轴线左右对称位置上的两个最小项也具有逻辑上的对称性。
二、用卡诺图表示逻辑函数
如果逻辑函数表达式是最小项之和的标准式,则只要在卡诺图上找出那些同给定逻辑函数包含的最小项相对应方格,然后在这些方格单元中填入1,其余方格单元中填入0,便得到了该逻辑函数的卡诺图。为了叙述方便,我们把填入1的方格单元叫1方格,填入0的方格单元叫0方格。
例如三变量逻辑函数
编号为3、5、6、7的最小项出现在逻辑函数表达式中,卡诺图中相应编号的方格单元填入1,其余方格单元中填入0,便得到该逻辑函数的卡诺图,如图2.3.5所示。
例2.3.11& 用卡诺图表示逻辑函数
解:首先将化为最小项之和的形式
然后,画出四变量卡诺图,在编号为5、7、10、11、12、13、14、15的方格内填1,其余方格填0,得该逻辑函数的卡诺图,如图2.3.6所示。
三、卡诺图的性质
由于卡诺图中变量的取值组合都是按照循环码的规则进行排列,每两个相邻的组合只有一个变量取值不同,因此卡诺图中具有逻辑相邻性的最小项可以进行合并。根据公式,当一个变量分别以原变量与反变量的形式出现在两个与项中,且这两个与项的其余部分相同,那么这两个与项可以合并为一项。
相邻的两个最小项,可以合并为一项并消去一个变量。合并后只剩下公共因子。
图2.3.7所示为两个相邻项进行合并的例子。图2.3.7(a)中,两个相邻项为 ,只有变量在这两个相邻项中分别以原变量和反变量的形式出现,剩余因子相同,故有,即消去合并项中发生了0、1变化的变量,而将没有发生变化的变量保留下来。同理可得图(b)和图(c)的结果。
相邻四个最小项,可以合并为一项并消去两个变量。合并后只包含公共因子。
图2.3.8所示为四个相邻项进行合并的例子。必须注意的是,四个1方格进行合并时,首尾相邻的1方格以及四角相邻的1方格不要遗漏。如图 2.3.9所示。
相邻八个最小项,可以合并为一项并消去三个变量。合并后只包含公共因子。
图 2.3.10 列出了八个相邻项进行合并的例子。同必须注意不要遗漏首尾相邻的1方格。
根据上述最小项的性质,可以归纳出合并最小项的一般规则:在一个输入变量的卡诺图中,若一个合并圈中存在个具有相邻性的最小项,则这些相邻的最小项可以合并为一项,并消去个变量,只留下由()个没有发生0、1变化的变量所构成的乘积项。
四、利用卡诺图化简逻辑函数
为了更好的理解利用卡诺图化简逻辑函数的方法,首先简要的介绍几个基本概念:
(1)主要项:卡诺图中,包含个相邻1方格的合并圈且合并圈不能再扩大(即再扩大将把0方格也包含进去)所得到的合并乘积项,称为主要项,或本原蕴含项。如图2.3.11所示的,即为主要项。
(2)必要项:如果一个主要项圈中至少有一个&特定&的1方格没有被其他的主要项圈覆盖,那么这个主要项圈所圈得的合并乘积项就称为必要项或实质本原蕴含项。如图2.3.11(a) 所示的和图2.3.11(b)所示的即为必要项。实际上,最终化简结果中所含的乘积项个数即为必要项的个数。
(3)多余项:如果一个主要项圈中的1方格全部被其它的几个主要项圈包含,那么这个主要项圈所圈得的合并乘积项就称为多余项。如图 2.3.12(b)所示的即为多余项。
利用卡诺图化简逻辑函数的步骤如下:
第一步:将逻辑函数变换为最小项之和的形式
第二步:画出表示该逻辑函数的卡诺图
第三步:找出可以合并的最小项并画出合并圈
第四步:写出最简的与-或表达式
例2.3.12& 化简逻辑函数
解:(1)由于逻辑函数已给出最小项之和的标准形式,故第一步可省略。
(2)画出表示该逻辑函数的卡诺图,如图2.3.13(a)所示。
(3)找出可以合并的最小项(1方格),并画出合并圈,如图2.3.13(b)& 所示。
(4)合并最小项,并把每个合并圈对应的与项加起来,得出最简与-或表达式。
可以看出,在利用卡诺图化简逻辑函数时,关键在于画合并圈。合并圈画得不同,逻辑函数的表达式也不相同。因此画合并圈时应注意以下几点:
①首先要找出孤立的1方格并画圈。
②合并圈的范围越大越好,但必须包含(i=0,1,2,3&)个1方格,这样能消去的变量就越多。
③合并圈的个数越少越好,因为合并圈的个数与化简结果中乘积项的个数相对应,圈数越少意味着与-或表达式中与项越少。
④每个合并圈中至少要包含一个其它合并圈中没有包含的1方格,这样才能保证这个合并圈不是多余的。
⑤卡诺图中所有的1方格至少要被圈一次,不能有漏画的1方格。
这样,把每个合并圈相对应的与项&加&起来,就得到最简的与-或表达式。
同理的方法,只要合并圈改为针对卡诺图中的0方格进行,找出可合并的最大项,就可得到逻辑函数的最简或-与表达式。
合并最大项的规律与合并最小项的规律基本一致。不同之处在于,合并最大项时必须找出0方格的相邻性。每个合并圈可由(i=0,1,2,3&)个0方格构成,每个合并圈对应于一个或项,该或项由圈内取值不变的变量相或来构成,其中取值为0的对应原变量,取值为1的对应反变量。然后将每个合并圈对应的或项进行相与,便得到最简的或-与表达式。
例2.3.13& 求函数的最简或-与表达式
(1)逻辑函数已给出最小项之和的标准形式。
(2)画出表示该逻辑函数的卡诺图,如图2.3.14 (a)所示。
(3)找出可以合并的0方格(最大项),并画出合并圈,如图2.3.14 (b)所示
(4)合并最大项,把每个合并圈对应的或项相乘,得到最简或-与表达式
五、具有无关项的逻辑函数及其化简
(1)约束项、任意项及无关项
在某些实际应用中,逻辑函数的输入变量取值不是任意的,如用三个输入逻辑变量分别表示一台电动机的正转、反转、停止,表示电机正转,表示电机反转,表示电机停止。而实际应用中,电机只能执行其中的一个命令,不可能允许两个以上的变量同时为1。故的取值只能为001,010,100当中的一种,不可能是000,011,101,110,111中的任何一种,也就是说对这三个输入变量的取值加上了限制条件。这种对输入变量所加的限制就称为约束。通常可以用约束条件来描述约束的内容。如上述所举实例,其约束条件可以表示为
同时把这些恒等于0的最小项称为约束项。
任意项是指逻辑函数在输入变量的某些取值组合时其输出值不确定,可能为1,可能为0,但是对电路的功能并不影响,若用最小项表示这些取值组合,那么这些最小项便称为任意项。
一般来说,任意项与约束项又统称为无关项,在卡诺图中用&表示,化简逻辑函数时既可以认为它为1,也可以认为它为0。
(2)无关项在化简逻辑函数中的应用
在化简具有无关项的逻辑函数时,无关项作为0方格还是作为1方格处理,前提是有利于逻辑函数的化简及得到最简结果。为了达到这个目的,应使加入的无关项能与逻辑函数表达式中尽可能多的最小项具有逻辑相邻性,同时使最小项合并圈的数目最少,而合并圈中包含的相邻最小项的数目最多。
例2.3.14&& 化简
解:这是一个具有无关项的逻辑函数表达式,其中表示所包含的无关项,在卡诺图中可用&表示,则表示该逻辑函数表达式的卡诺图如图2.3.15(a)& 所示。
按照无关项的使用原则,其值为1,还是为0,应看是否有利于逻辑函数的化简。如不使用这些无关项,即将它们作为0格处理,,所得化简结果为
若合理使用这些无关项,即将有利于化简的无关项作1格处理,如,并与逻辑相邻的1格构成足够大的合并圈,而不利于化简的无关项如,作0格处理,如图2.3.15(b)& 所示,可得化简结果为
由此可见,无关项的应用应以有利于化简为前提。
2.3.4逻辑函数的列表化简法
列表化简法又称为奎恩-麦克洛斯基法,简称Q-M法。从前面介绍的卡诺图化简法中可以看出,卡诺图化简的一个重要步骤是能从原逻辑函数表达式中较快的画出表示该逻辑函数的卡诺图。但是对于多变量逻辑函数的卡诺图来说,不仅难画,且其中相邻最小项也不容易较快的找出,因为多变量逻辑函数的卡诺图中,具有逻辑相邻性的最小项有时在几何位置上并不相邻,不易观察寻找,且多变量逻辑函数的卡诺图化简也较为繁杂,因此在计算机技术飞速发展的过程中,有着严格算法的Q-M法在任意多变量逻辑函数的化简中脱颖而出。Q-M法虽然计算过程比较复杂,但它可以将函数化简的问题编成程序,从而借助于计算机的高速运算处理能力很快实现,故Q-M法适合任意多变量的逻辑函数化简。
这种化简方法和卡诺图化简法的基本思想大致相同。它也是通过找出函数Y的全部主要项、实质主要项以及最简主要项集来求得最简表达式。所不同的是,在列表化简法中上述结果都是通过约定形式的表格,按照一定规则求得的。
用列表法化简逻辑函数一般可以概括为以下四个步骤:
第一步:将函数表示成&最小项之和&形式,并用二进制码表示每一个最小项。
第二步:找出函数的全部主要项。
寻找函数全部主要项的方法是先将个变量函数中的相邻最小项合并,消去相异的一个变量,得到个变量的与项;再将相邻的个变量的与项合并,消去相异的变量,得到个变量的与项;&。依此类推,直到不能再合并为止。所得到的全部不能再合并的与项(包括不能合并的最小项),即所要求的全部主要项。
第三步:选出函数的实质主要项。
第四步:选择主要项,使之能够包含给定函数的全部最小项,从而建立函数的最简与-或式。
以上各个步骤均是通过表格进行的,下面通过一个例子说明。
例2.3.15& 用列表法化简逻辑函数
第一步:用二进制代码表示函数中的每一个最小项,如表2.3.7所示
第二步:求函数的全部主要项。
考虑到相邻最小项的二进制码中的1个数只能相差1,因此,将表2.3.7中的最小项按二进制编码中1的个数进行分组,且按1的个数的递增顺序排列在表2.3.8(Ⅰ)栏中。这样,可以合并的最小项便只能处于相邻的两组内。因此,可将 (Ⅰ) 栏中相邻两组的二进制码逐个进行比较,找出那些只有一个变量不同的最小项合并,消去不同变量,组成个变量的与项列于表2.3.8的(Ⅱ)& 栏中。例如,首先将0组的最小项与1组的进行比较、合并,即消去相异的A变量,这里用&-&表示消去的变量,然后将合并后的与项列入表2.3.8的(Ⅱ)栏中。由于该与项是由和合并产生的,故在(Ⅰ)栏中和的右边打上&&&标记,表示它们已经包含在(Ⅱ)栏的与项中了,并在(Ⅱ)栏中的第二列指出相应与项是由哪几个最小项合并产生的。第0组的最小项与第1组的最小项比较完后,顺序比较第0组与第2,3,4组,发现没有可以合并的最小项,然后接着比较第1组和第2组的最小项。即将
表 2.3.7& 函数的部分真值表
与,分别进行比较,显然与不能合并,因为它们之间有多个变量不同,而与可以合并消去变量D,与可以合并消去变量C,将合并后得到的与项同样列入(Ⅱ)栏中。依次类推,将(Ⅰ)栏中全部最小项逐一进行比较、合并,得到表的(Ⅱ)栏。在(Ⅱ)栏中的&与&项均由个变量组成,此例(Ⅱ)栏的&与&项由三个变量组成。
按上述同样的方法,再对表2.3.8中的全部与项进行比较、合并,可形成表的第(Ⅲ)栏。如第(Ⅱ)栏中的(8,9)和(10,11),(8,10)和(9,11)可以合并为&10――&。由于第(Ⅲ)栏的与项不再相邻,故合并到此结束。
表2.3.8 中凡是没有打&&&标记的与项,就是不能再合并的乘积项,即该函数的全部主要项,用表示,该函数的全部主要项为
第三步:选取函数的实质主要项。
通过建立实质主要项表,可以选出函数的全部实质主要项。
函数的实质主要项是指包含实质最小项的主要项。而实质最小项又是指仅仅属于一个主要项的最小项。本例的函数实质主要项产生表如表2.3.9 所示。表中第一行为Y的全部最小项,第一列为上一步求得的全部主要项。实质主要项可按下述步骤求得:
1、逐行标上各主要项覆盖最小项的情况。例如,表中主要项可覆盖最小项和,故在这一行与上述最小项相应列的交叉处打上&&标记,其它各行依此类推。
2、逐列检查标有&&的情况,凡只有一个&&号的列的相应最小项即为实质最小项,在&&外面打上一个圈(即&&)。例如,表中最小项各列均只有一个&&,故都在&&号外加上圈。
表2.3.8& 主要项的产生表
(Ⅰ)最小项
(Ⅱ)个变量的&与&项
(Ⅲ)个变量的&与&项
8,9,10,11
10,11,14,15
3、& 找出包含&&号的各行,这些行对应的主要项即为实质主要项,在这些实质主要项右上角加上&*&标记。例如,表中的和均为实质主要项。
4、& 在表的最后一行(覆盖情况一栏)中,标上实质主要项覆盖最小项的情况。凡能被实质主要项覆盖的最小项,在最后一行的该列上打上&&&标记,供下一步选择主要项,使之能够包含给定函数的全部最小项,从而建立函数的最简与-或式。
第四步:选择主要项,使之能够包含给定函数的全部最小项,从而建立函数的最简与-或式。
函数的最简与-或式必须覆盖全部最小项,而实质主要项是首先必须选用的主要项。因为如果不选实质主要项,就找不到其它主要项来包含那些实质最小项。本例从表2.3.9 的覆盖情况一行可知,选取实质主要项和后即可包含函数的全部最小项。因此,该函数化简的最终结果为
当给定函数的实质主要项集不能覆盖该函数的全部最小项时,还需进一步从剩余主要项集中找出所需主要项,以构成函数的最小主要项集,这样才能使得最终化简结果既能包含全部最小项,同时所需乘积项又最少,即获得最简的与或式。
进一步找出剩余所需主要项的途径是首先建立一个&所需主要项产生表&,该表是将&实质主要项产生表&中的实质主要项及其所覆盖的最小项去掉后形成的。然后按照一定的方法从&所需主要项产生表&中找出所需主要项。通常采用的方法是行列消去法,其规则如下:
行消去规则:对于所需主要项产生表中的任意主要项和,若行中的&&号完全包含在行中,即,则可消去行。这是因为选取了主要项后不仅可以覆盖主要项所能覆盖的最小项,而且还可覆盖其它最小项。
表2.3.9& 实质主要项产生表
列消去规则:对于所需主要项产生表中的任意最小项和,若列中的&&号完全包含在列中,即,则可消去列。这是因为选取了覆盖的主要项后一定能覆盖,反之则不一定。
按照上述规则消去多余的行和多余的列,可再次选出实质主要项。该规则可重复使用,直至找出能覆盖函数全部最小项的最小主要项集为止。下面举例说明选取剩余主要项的方法。
例& 2.3.16 已知函数的实质主要项产生表如表2.3.10所示,求出该函数的剩余主要项并写出函数最简与或式。
表2.3.11 剩余主要项产生表
表 2.3.10 函数实质主要项产生表
解:由表2.3.10可知为实质主要项,可覆盖最小项。在选取作为函数Y的一个与项后,还剩下最小项未被覆盖,因此必须从剩余的主要项&&&&& 中选取所需的主要项。为此,从表2.3.10中先消去和它所覆盖的最小项,得到如表2.3.11所示的剩余主要项产生表。
在表2.3.11中,行中的&&&完全包含在行中,行中的&&&完全包含在&& 行中,根据行消去规则,可消去和两行。得到表2.3.12,它由剩余的主要项&&&&&& 和最小项 组成。从表2.3.12中还可看出,列中的&&&完全包含在&& 列中,列中的&&& 完全包含在列中,根据列消去规则,可消去和所对应的列,得到表2.3.13.
从表2.3.13中可见,和所对应的列均只有一个&&&,故 和是必须选取的实质主要项。通常称为二次实质主要项,并标以&**&。选取,作为实质主要项后,还剩下最小项未被覆盖,因此可任选或来覆盖。故最终所得函数Y的最简与-或表达式为:
表2.3.13消去多余行及多余列后的剩余生要项表
表2.3.12消去多余行的剩余主要项表
Copyright &
.All Rights Reserved}

我要回帖

更多关于 卡诺图化简逻辑函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信