卡诺图化简就是用少数目的圈,大圈来把函数式化简。原变量圈1,反变量圈0.
常规的卡诺图化简方式是与或逻辑形式,借用B站的视频,可以很形象的说明。打算设计一个电路,想用1~8个数字按键控制中间LED的亮灭实现八卦图示。
LED灯理解成三行三列格式,用abc输入分别控制三行中间那颗led的亮灭,1为点亮,0为关闭。于是根据八卦图示,推导了图上的真值表。
因为8这个数字二进制表示是1000,所以就确定下来了用ABCD四个变量。根据数字1~8和ABCD的对应关系,以及Ya,Yb,Yc的关系,可以确定最终如下真值表。
YA,YB,YC分别看成3个函数,每个函数式都用卡诺图结果表示,最后再化简就可以了!化简的规则如下:
- 相邻的1最大范围的圈在一起
- 只能圈矩形结构,L型,品字形是不行的
- 圈里1的个数只能是
的个数,既2,4,8,16。。。
- 卡诺图上下左右,对角都是相邻项,可以圈在一起
- 所有1都可以同一位置可反复圈。
至此,这个视频基本就把这个电路做好了。视频讲的真好!
卡诺图结构:每相邻方格的变量组合之间只允许一个变量取值不同。变量标注采用循环码。注意下图的红色标注,这就是循环码。
00 | 01 | 11 | 10 | |
00 | m0 | m4 | m12 | m8 |
01 | m1 | m5 | m13 | m9 |
11 | m3 | m7 | m15 | m11 |
10 | m2 | m6 | m14 | m10 |
卡诺图结构中,上下左右对称后,四角之间的值,可以观察下。
00 | 01 | 11 | 10 | |
00 | 0000 | 0100 | 1100 | 1000 |
01 | 0001 | 0101 | 1101 | 1001 |
11 | 0011 | 0111 | 1111 | 1011 |
10 | 0010 | 0110 | 1110 | 1010 |
00 | 01 | 11 | 10 | |
00 | 0000 | 0100 | 1100 | 1000 |
01 | 0001 | 0101 | 1101 | 1001 |
11 | 0011 | 0111 | 1111 | 1011 |
10 | 0010 | 0110 | 1110 | 1010 |
左右对称
00 | 01 | 11 | 10 | |
00 | 0000 | 0100 | 1100 | 1000 |
01 | 0001 | 0101 | 1101 | 1001 |
11 | 0011 | 0111 | 1111 | 1011 |
10 | 0010 | 0110 | 1110 | 1010 |
上下对称:
00 | 01 | 11 | 10 | |
00 | 0000 | 0100 | 1100 | 1000 |
01 | 0001 | 0101 | 1101 | 1001 |
11 | 0011 | 0111 | 1111 | 1011 |
10 | 0010 | 0110 | 1110 | 1010 |
四个角线
多余圈:如果一个卡诺图的1方格均被别的卡诺圈圈过,那么此卡诺圈就是多余项,需要去除。
无关项: 对化简有利的时候,可以认为是1,反之,可以认为是0。就是一个函数表达式与一些最小项无关,
不同的化简方法:
与或逻辑化简:最常规的画法,
与非逻辑化简:与或式两次求反即得与非式。
或与逻辑化简:或与是圈0,得到的表达式是原函数的反函数,之后再对这个反函数做摩根定律取反即可得到或与式。
或非逻辑化简:将或与逻辑两次求反即得或非表达式。
与或非逻辑化简:
与或结果两次取反,不用摩根定律就是与或非;
另一种办法是取的反函数之后,再求一次反,不用摩根定律,就是与或非表达式。
只有原变量形式的上述几种形式化简: 此种化简涉及到一种阻塞法。这个阻塞法主要就是解决在保证功能的前提下尽可能地少用非门。 将全1方格用黑三角标示出来。先参与进圈圈,之后再从表达式中取反去除,去除时候可以考虑临近黑三角1最大化圈圈。它是三级电路,速度要慢一些。
多输出函数的化简:多输出函数的化简,不一定每个函数式都最简,因为这不一定能保证整个系统最简,为使整个系统最简,应该统一考虑,尽可能利用公共项。
参考文章:
【卡诺图基础】卡诺图原来是这样用!用数电做八卦图_哔哩哔哩_bilibili ,电子工程师华哥
《数字电子技术》-西安电子科技大学出版社,江晓安