写在前面
- “与或”表达式的最简式的定义 在该表达式中同时满足:
- 该式的乘积项最少;
- 该式不能用变量更少的乘积项代替。
- “或与”表达式的最简式的定义与上述类似。
公式化简法
虽然公式化简法不受变量个数的限制,但化简过程没有固定的规律可循,直观性差,带有一定的试探性,并且难以判断结果是否最简。为了寻找更简单的方法,人们研究出了卡诺图化简法。
卡诺图化简法
卡诺图的构成
由$2^{n}$个小方格构成,n表示变量的个数。
每个小方格都对应一个最小项。
在逻辑上相邻的最小项在几何位置上也相邻(包括首位相邻)。
五变量卡诺图具有重叠相邻性。
用卡诺图表示逻辑函数
- 用卡诺图表示最小项表达式:
如果逻辑函数以最小项的形式给出,则在构成函数的每个最小项相应的卡诺图小方格中填1,其余的小方格中填0。 - 用卡诺图表示非最小项表达式: 用互补律$A+\bar{A}=1$变换成最小项表达式,然后用上述方法。
- 直接用卡诺图表示非最小项的与或表达式。
用卡诺图化简逻辑函数
- 用卡诺图化简逻辑函数的原理 卡诺图形象地表达了最小项之间的相邻性。如相邻的两小方格均填1,则可用相邻性消去一个变量,使函数得以简化。
- 合并最小项的规则 消去卡诺圈取值改变的变量,保留取值不变的变量的逻辑与就是合并的结果。
- 合并最小项的规律:
- 卡诺圈中小方格的个数必须是$2^{i}$个。
- 卡诺圈中的$2^{i}$个最小项合并,将消去i个变量。
- 用卡诺图化简逻辑函数的具体实践步骤:
- 用卡诺图表示所要化简的逻辑函数;
- 把卡诺图中所有填1的小方格用卡诺圈圈起来。画圈时必须遵守如下原则:
- 每个圈内1的个数必须是$2^{i}$个;
- 每个圈中某些小方格可以多次被圈,但必须保证每个圈内至少有一个小方格仅被圈一次;
- 卡诺圈的个数最少;
- 每个圈应尽量大;
- 任意一个填1的小方格都会被圈。
- 将合并的与项进行逻辑加;
- 如果卡诺图中填0的小方格比填1的少,也可以圈0先求得简化的反函数,然后再求反得到最简与或式。
- 无关项:在小方格中填“d”,d可以看作1也可以看作0. 一个卡诺圈里不能全是d.
用卡诺图化简最大项表达式
以上我们用化简最小项表达式来介绍卡诺图法,化简最大项表达式的方法与之类似。
- 在最大项对应的小方格中填“0”.
- 一个逻辑函数表达式对应一个卡诺图。
- 共享项:对于多输出函数,为了节省逻辑门的个数,我们尽可能使化简后的不同逻辑函数表达式有共有的项。
事实上,卡诺图、真值表、逻辑表达式之间是可以相互转换的。 从真值表向逻辑函数的转换:将真值表中函数F=1所对应的最小项求逻辑和。从真值表得到卡诺图:将真值表的函数值1或0,按顺序直接填入卡诺图相对应的小方格内。