卡诺图

逻辑函数的图形表示

卡诺图是逻辑函数的一种图形表示。一个逻辑函数的卡诺图就是将此函数的最小项表达式中的各最小项相应地填入一个方格图内,此方格图称为卡诺图。

基本信息
卡诺图是逻辑函数的一种图形表示。卡诺图是一种平面方格图,每个小方格代表逻辑函数的一个最小项,故又称为最小项方格图。方格图中相邻两个方格的两组变量取值相比,只有一个变量的取值发生变化,按照这一原则得出的方格图(全部方格构成正方形或长方形)就称为卡诺方格图,简称卡诺图。
结构特点
卡诺图中最小项的排列方案不是唯一的,变量的坐标值0表示相应变量的反变量,1表示相应变量的原变量,变量的取值变化规律按“循环码”变化。各小方格依变量顺序取坐标值,所得二进制数对应的十进制数即相应最小项的下标i。
在五变量卡诺图中,为了方便省略了符号“m”,直接标出m的下标i 。
归纳起来,卡诺图在构造上具有以下两个特点:
☆ n个变量的卡诺图由2^n个小方格组成,每个小方格代表一个最小项;
☆ 卡诺图上处在相邻、相对、相重位置的小方格所代表的最小项为相邻最小项。
可以从图形上直观地找出相邻最小项。两个相邻最小项可以合并为一个与项并消去一个变量。
历史
组合电路逻辑关系的图形表示法可以追溯到英国逻辑学家约翰·维恩(John Venn)1881年发明的在集合论中处理集合间逻辑关系的文氏图(Venn diagram),赫尔姆·哈斯(Helmut Hasse)有效地利用Vogt在1895年用过的哈斯图(Hasse diagram)来表示序理论中的有限偏序集,爱德华·维奇(Edward W. Veitch)在1952年将维恩图中的圆形改画成矩形而发明了维奇图(Veitch diagram)。但这些图都不如美国贝尔实验室的电信工程师莫里斯·卡诺(Maurice Karnaugh)在1953年根据维奇图改进的卡诺图(Karnaugh map)或K图(K-map)在数字逻辑、故障诊断等许多领域中应用广泛。
性质
卡诺图的构造特点使卡诺图具有一个重要性质:可以从图形上直观地找出相邻最小项合并。合并的理论依据是并项定理AB+AB反=A。例如,
根据定理AB+AB反=A和相邻最小项的定义,两个相邻最小项可以合并为一个与项并消去一个互反变量。例如,4变量最小项ABCD和ABC反D相邻,可以合并为ABD;A反BCD和A反BC反D相邻,可以合并为A反BD;而与项A反BD和ABD又为相邻与项,故按同样道理可进一步将两个相邻与项合并为BD。
用卡诺图化简逻辑函数的基本原理就是把上述逻辑依据和图形特征结合起来,通过把卡诺图上表征相邻最小项的相邻小方格“圈”在一起进行合并,达到用一个简单“与”项代替若干最小项的目的。
通常把用来包围那些能由一个简单“与”项代替的若干最小项的“圈”称为卡诺圈。
函数
逻辑函数未用最小项表示照样可以化简。如果F采用与—或表达式,在填入卡诺图过程中就能把函数展开成最小项。
具有无关项的化简
无关项又叫任意项,是一种最小项,其值可以取0或1。利用无关项这一特点,可以使函数简化。
用卡诺图化简逻辑函数的步骤
如果表达式为最小项表达式,则可直接填入卡诺图
如果表达式不是最小项表达式,但是是“与—或表达式”,可将其先化成最小项表达式,再填入卡诺图。也可直接填入。
合并相邻的最小项,即根据下述原则画圈
尽量画大圈,但每个圈内只能含有2n(n=0,1,2,3……)个相邻项。要特别注意对边相邻性和四角相邻性。
圈的个数尽量少。
卡诺图中所有取值为1的方格均要被圈过,即不能漏下取值为1的最小项。
在新画的包围圈中至少要含有1个末被圈过的1方格,否则该包围圈是多余的。
写出化简后的表达式。每一个圈写一个最简与项,规则是,取值始终为1的变量用原变量表示,取值出现过0的变量用反变量表示,将这些变量相与。然后将所有与项进行逻辑加,即得最简与—或表达式。
在进行化简时,如果用图中真值为0的项更方便,可以用他们来处理,方法和真值取1时一样,只是结果要再做一次求反。
变量
表示各最小项的2^n(n-变量数)个小格,排列呈矩形。小格按“循环码” 排列,保证最小项间“几何相邻”与“逻辑相邻性”的统一。(几何相邻有“内相邻” “外相邻”和“中心对称”)
变量填入
把函数包含的所有最小项,以“1”填入变量卡诺图对应编号的小格内。
化简函数
1.几个定义
蕴涵项:在函数的“与-或”表达式中,每个“与”项被称为该函数的蕴涵项(Implicant)。
显然,在函数卡诺图中,任何一个1方格所对应的最小项或者卡诺圈中的2m个1方格所对应的“与”项都是函数的蕴涵项。
质蕴涵项:若函数的一个蕴涵项不是该函数中其他蕴涵项的子集,则此蕴涵项称为质蕴涵项(Prime Implicant),简称为质项。
显然,在函数卡诺图中,按照最小项合并规律,如果某个卡诺圈不可能被其他更大的卡诺圈包含,那么,该卡诺圈所对应的“与”项为质蕴涵项。
必要质蕴涵项:若函数的一个质蕴涵项包含有不被函数的其他任何质蕴涵项所包含的最小项,则此质蕴涵项被称为必要质蕴涵项(Essential Prime Implicant),简称为必要质项。
在函数卡诺图中,若某个卡诺圈包含了不可能被任何其他卡诺圈包含的1方格,那么,该卡诺圈所对应的“与”项为必要质蕴涵项。
2.求函数最简“与-或”表达式
(1)一般步骤: 第一步:作出函数的卡诺图。
第二步:在卡诺图上圈出函数的全部质蕴涵项。按照卡诺图上最小项的合并规律,对函数F卡诺图中的1方格画卡诺圈。为了圈出全部质蕴涵项,画卡诺圈时在满足合并规律的前提下应尽可能大,若卡诺圈不可能被更大的卡诺圈包围,则对应的“与”项为质蕴涵项。
第三步:从全部质蕴涵项中找出所有必要质蕴涵项。在卡诺图上只被一个卡诺圈包围的最小项被称为必要最小项,包含必要最小项的质蕴涵项即必要质蕴涵项。为了保证所得结果无一遗漏地覆盖函数的所有最小项,函数表达式中必须包含所有必要质蕴涵项。
第四步:求出函数的最简质蕴涵项集。若函数的所有必要质蕴涵项尚不能覆盖卡诺图上的所有1方格,则从剩余质蕴涵项中找出最简的所需质蕴涵项,使它和必要质蕴涵项一起构成函数的最小覆盖。
归纳起来,卡诺图化简的原则是:
☆ 在覆盖函数中的所有最小项的前提下,卡诺圈的个数达到最少。
☆ 在满足合并规律的前提下卡诺圈应尽可能大。
☆ 根据合并的需要,每个最小项可以被多个卡诺圈包围。
3.求函数的最简“或-与”表达式
当需要求一个函数的最简“或-与”表达式时,可采用“两次取反法”。
具体如下:
☆ 先求出函数F的反函数F的最简“与-或”表达(合并卡诺图上的0方格);
☆ 然后对F的最简“与-或”表达式取反,从而得到函数F的最简“或-与”表达式。
卡诺图化简逻辑函数具有方便、直观、容易掌握等优点。但依然带有试凑性。尤其当变量个数大于6时,画图以及对图形的识别都变得相当复杂。
表示
1.给定逻辑函数为标准“与-或”表达式
当逻辑函数为标准“与-或”表达式时,只需在卡诺图上找出和表达式中最小项对应的小方格填上1,其余小方格填上0,即可得到该函数的卡诺图。
2.逻辑函数为一般“与-或”表达式
当逻辑函数为一般“与-或”表达式时,可根据“与”的公共性和“或”的叠加性作出相应卡诺图。
填写该函数卡诺图时,只需在4变量卡诺图上依次找出和“与项”AB、CD、A·BC对应的小方格填上1,便可得到该函数的卡诺图。
当逻辑函数表达式为其他形式时,可将其变换成上述形式后再作卡诺图。
为了叙述的方便,通常将卡诺图上填1的小方格称为1方格,填0的小方格称为0方格。0方格有时用空格表示。
合并规律
卡诺图的一个重要特征是:从图形上直观、清晰地反映了最小项的相邻关系。四个小方格组成一个大方格、或组成一行(列)、或处于相邻两行(列)的两端、或处于四角时,所的表的最小项可以合并,合并后可消去两个变量。八个小方格组成一个大方格、或组成相邻的两行(列)、或处于两个边行(列)时,所代表的最小项可以合并,合并后可消去三个变量。至此,以3、4变量卡诺图为例,讨论了2,4,8个最小项的合并方法。依此类推,不难得出n个变量卡诺图中最小项的合并规律。
归纳起来,n个变量卡诺图中最小项的合并规律如下:
(1)卡诺圈中小方格的个数必须为2^m个,m为小于或等于n的整数。
(2)卡诺圈中的2^m个小方格有一定的排列规律,具体地说,它们含有m个不同变量,(n-m)个相同变量。
(3)卡诺圈中的2^m个小方格对应的最小项可用(n-m)个变量的“与”项表示,该“与”项由这些最小项中的相同变量构成。
(4)当m=n时,卡诺圈包围了整个卡诺图,可用1表示,即n个变量的全部最小项之和为1。
全国各地天气预报查询

上海市

  • 市辖区
  • 云南省

  • 临沧市
  • 云南省

  • 丽江市
  • 云南省

  • 保山市
  • 云南省

  • 大理白族自治州
  • 云南省

  • 德宏傣族景颇族自治州
  • 云南省

  • 怒江傈僳族自治州
  • 云南省

  • 文山壮族苗族自治州
  • 云南省

  • 昆明市
  • 云南省

  • 昭通市
  • 云南省

  • 普洱市
  • 云南省

  • 曲靖市
  • 云南省

  • 楚雄彝族自治州
  • 云南省

  • 玉溪市
  • 云南省

  • 红河哈尼族彝族自治州
  • 云南省

  • 西双版纳傣族自治州
  • 云南省

  • 迪庆藏族自治州
  • 内蒙古自治区

  • 乌兰察布市
  • 内蒙古自治区

  • 乌海市
  • 内蒙古自治区

  • 兴安盟
  • 内蒙古自治区

  • 包头市
  • 内蒙古自治区

  • 呼伦贝尔市
  • 内蒙古自治区

  • 呼和浩特市
  • 内蒙古自治区

  • 巴彦淖尔市
  • 内蒙古自治区

  • 赤峰市
  • 内蒙古自治区

  • 通辽市
  • 内蒙古自治区

  • 鄂尔多斯市
  • 内蒙古自治区

  • 锡林郭勒盟
  • 内蒙古自治区

  • 阿拉善盟
  • 北京市

  • 市辖区
  • 吉林省

  • 吉林市
  • 吉林省

  • 四平市
  • 吉林省

  • 延边朝鲜族自治州
  • 吉林省

  • 松原市
  • 吉林省

  • 白城市
  • 吉林省

  • 白山市
  • 吉林省

  • 辽源市
  • 吉林省

  • 通化市
  • 吉林省

  • 长春市
  • 四川省

  • 乐山市
  • 四川省

  • 内江市
  • 四川省

  • 凉山彝族自治州
  • 四川省

  • 南充市
  • 四川省

  • 宜宾市
  • 四川省

  • 巴中市
  • 四川省

  • 广元市
  • 四川省

  • 广安市
  • 四川省

  • 德阳市
  • 四川省

  • 成都市
  • 四川省

  • 攀枝花市
  • 四川省

  • 泸州市
  • 四川省

  • 甘孜藏族自治州
  • 四川省

  • 眉山市
  • 四川省

  • 绵阳市
  • 四川省

  • 自贡市
  • 四川省

  • 资阳市
  • 四川省

  • 达州市
  • 四川省

  • 遂宁市
  • 四川省

  • 阿坝藏族羌族自治州
  • 四川省

  • 雅安市
  • 天津市

  • 市辖区
  • 宁夏回族自治区

  • 中卫市
  • 宁夏回族自治区

  • 吴忠市
  • 宁夏回族自治区

  • 固原市
  • 宁夏回族自治区

  • 石嘴山市
  • 宁夏回族自治区

  • 银川市
  • 安徽省

  • 亳州市
  • 安徽省

  • 六安市
  • 安徽省

  • 合肥市
  • 安徽省

  • 安庆市
  • 安徽省

  • 宣城市
  • 安徽省

  • 宿州市
  • 安徽省

  • 池州市
  • 安徽省

  • 淮北市
  • 安徽省

  • 淮南市
  • 安徽省

  • 滁州市
  • 安徽省

  • 芜湖市
  • 安徽省

  • 蚌埠市
  • 安徽省

  • 铜陵市
  • 安徽省

  • 阜阳市
  • 安徽省

  • 马鞍山市
  • 安徽省

  • 黄山市
  • 山东省

  • 东营市
  • 山东省

  • 临沂市
  • 山东省

  • 威海市
  • 山东省

  • 德州市
  • 山东省

  • 日照市
  • 山东省

  • 枣庄市
  • 山东省

  • 泰安市
  • 山东省

  • 济南市
  • 山东省

  • 济宁市
  • 山东省

  • 淄博市
  • 山东省

  • 滨州市
  • 山东省

  • 潍坊市
  • 山东省

  • 烟台市
  • 山东省

  • 聊城市
  • 山东省

  • 菏泽市
  • 山东省

  • 青岛市
  • 山西省

  • 临汾市
  • 山西省

  • 吕梁市
  • 山西省

  • 大同市
  • 山西省

  • 太原市
  • 山西省

  • 忻州市
  • 山西省

  • 晋中市
  • 山西省

  • 晋城市
  • 山西省

  • 朔州市
  • 山西省

  • 运城市
  • 山西省

  • 长治市
  • 山西省

  • 阳泉市
  • 广东省

  • 东莞市
  • 广东省

  • 中山市
  • 广东省

  • 云浮市
  • 广东省

  • 佛山市
  • 广东省

  • 广州市
  • 广东省

  • 惠州市
  • 广东省

  • 揭阳市
  • 广东省

  • 梅州市
  • 广东省

  • 汕头市
  • 广东省

  • 汕尾市
  • 广东省

  • 江门市
  • 广东省

  • 河源市
  • 广东省

  • 深圳市
  • 广东省

  • 清远市
  • 广东省

  • 湛江市
  • 广东省

  • 潮州市
  • 广东省

  • 珠海市
  • 广东省

  • 肇庆市
  • 广东省

  • 茂名市
  • 广东省

  • 阳江市
  • 广东省

  • 韶关市
  • 广西壮族自治区

  • 北海市
  • 广西壮族自治区

  • 南宁市
  • 广西壮族自治区

  • 崇左市
  • 广西壮族自治区

  • 来宾市
  • 广西壮族自治区

  • 柳州市
  • 广西壮族自治区

  • 桂林市
  • 广西壮族自治区

  • 梧州市
  • 广西壮族自治区

  • 河池市
  • 广西壮族自治区

  • 玉林市
  • 广西壮族自治区

  • 百色市
  • 广西壮族自治区

  • 贵港市
  • 广西壮族自治区

  • 贺州市
  • 广西壮族自治区

  • 钦州市
  • 广西壮族自治区

  • 防城港市
  • 新疆维吾尔自治区

  • 乌鲁木齐市
  • 新疆维吾尔自治区

  • 伊犁哈萨克自治州
  • 新疆维吾尔自治区

  • 克孜勒苏柯尔克孜自治州
  • 新疆维吾尔自治区

  • 克拉玛依市
  • 新疆维吾尔自治区

  • 博尔塔拉蒙古自治州
  • 新疆维吾尔自治区

  • 吐鲁番市
  • 新疆维吾尔自治区

  • 和田地区
  • 新疆维吾尔自治区

  • 哈密市
  • 新疆维吾尔自治区

  • 喀什地区
  • 新疆维吾尔自治区

  • 塔城地区
  • 新疆维吾尔自治区

  • 巴音郭楞蒙古自治州
  • 新疆维吾尔自治区

  • 昌吉回族自治州
  • 新疆维吾尔自治区

  • 自治区直辖县级行政区划
  • 新疆维吾尔自治区

  • 阿克苏地区
  • 新疆维吾尔自治区

  • 阿勒泰地区
  • 江苏省

  • 南京市
  • 江苏省

  • 南通市
  • 江苏省

  • 宿迁市
  • 江苏省

  • 常州市
  • 江苏省

  • 徐州市
  • 江苏省

  • 扬州市
  • 江苏省

  • 无锡市
  • 江苏省

  • 泰州市
  • 江苏省

  • 淮安市
  • 江苏省

  • 盐城市
  • 江苏省

  • 苏州市
  • 江苏省

  • 连云港市
  • 江苏省

  • 镇江市
  • 江西省

  • 上饶市
  • 江西省

  • 九江市
  • 江西省

  • 南昌市
  • 江西省

  • 吉安市
  • 江西省

  • 宜春市
  • 江西省

  • 抚州市
  • 江西省

  • 新余市
  • 江西省

  • 景德镇市
  • 江西省

  • 萍乡市
  • 江西省

  • 赣州市
  • 江西省

  • 鹰潭市
  • 河北省

  • 保定市
  • 河北省

  • 唐山市
  • 河北省

  • 廊坊市
  • 河北省

  • 张家口市
  • 河北省

  • 承德市
  • 河北省

  • 沧州市
  • 河北省

  • 石家庄市
  • 河北省

  • 秦皇岛市
  • 河北省

  • 衡水市
  • 河北省

  • 邢台市
  • 河北省

  • 邯郸市
  • 河南省

  • 三门峡市
  • 河南省

  • 信阳市
  • 河南省

  • 南阳市
  • 河南省

  • 周口市
  • 河南省

  • 商丘市
  • 河南省

  • 安阳市
  • 河南省

  • 平顶山市
  • 河南省

  • 开封市
  • 河南省

  • 新乡市
  • 河南省

  • 洛阳市
  • 河南省

  • 漯河市
  • 河南省

  • 濮阳市
  • 河南省

  • 焦作市
  • 河南省

  • 省直辖县级行政区划
  • 河南省

  • 许昌市
  • 河南省

  • 郑州市
  • 河南省

  • 驻马店市
  • 河南省

  • 鹤壁市
  • 浙江省

  • 丽水市
  • 浙江省

  • 台州市
  • 浙江省

  • 嘉兴市
  • 浙江省

  • 宁波市
  • 浙江省

  • 杭州市
  • 浙江省

  • 温州市
  • 浙江省

  • 湖州市
  • 浙江省

  • 绍兴市
  • 浙江省

  • 舟山市
  • 浙江省

  • 衢州市
  • 浙江省

  • 金华市
  • 海南省

  • 三亚市
  • 海南省

  • 三沙市
  • 海南省

  • 儋州市
  • 海南省

  • 海口市
  • 海南省

  • 省直辖县级行政区划
  • 湖北省

  • 十堰市
  • 湖北省

  • 咸宁市
  • 湖北省

  • 孝感市
  • 湖北省

  • 宜昌市
  • 湖北省

  • 恩施土家族苗族自治州
  • 湖北省

  • 武汉市
  • 湖北省

  • 省直辖县级行政区划
  • 湖北省

  • 荆州市
  • 湖北省

  • 荆门市
  • 湖北省

  • 襄阳市
  • 湖北省

  • 鄂州市
  • 湖北省

  • 随州市
  • 湖北省

  • 黄冈市
  • 湖北省

  • 黄石市
  • 湖南省

  • 娄底市
  • 湖南省

  • 岳阳市
  • 湖南省

  • 常德市
  • 湖南省

  • 张家界市
  • 湖南省

  • 怀化市
  • 湖南省

  • 株洲市
  • 湖南省

  • 永州市
  • 湖南省

  • 湘潭市
  • 湖南省

  • 湘西土家族苗族自治州
  • 湖南省

  • 益阳市
  • 湖南省

  • 衡阳市
  • 湖南省

  • 邵阳市
  • 湖南省

  • 郴州市
  • 湖南省

  • 长沙市
  • 甘肃省

  • 临夏回族自治州
  • 甘肃省

  • 兰州市
  • 甘肃省

  • 嘉峪关市
  • 甘肃省

  • 天水市
  • 甘肃省

  • 定西市
  • 甘肃省

  • 平凉市
  • 甘肃省

  • 庆阳市
  • 甘肃省

  • 张掖市
  • 甘肃省

  • 武威市
  • 甘肃省

  • 甘南藏族自治州
  • 甘肃省

  • 白银市
  • 甘肃省

  • 酒泉市
  • 甘肃省

  • 金昌市
  • 甘肃省

  • 陇南市
  • 福建省

  • 三明市
  • 福建省

  • 南平市
  • 福建省

  • 厦门市
  • 福建省

  • 宁德市
  • 福建省

  • 泉州市
  • 福建省

  • 漳州市
  • 福建省

  • 福州市
  • 福建省

  • 莆田市
  • 福建省

  • 龙岩市
  • 西藏自治区

  • 山南市
  • 西藏自治区

  • 拉萨市
  • 西藏自治区

  • 日喀则市
  • 西藏自治区

  • 昌都市
  • 西藏自治区

  • 林芝市
  • 西藏自治区

  • 那曲市
  • 西藏自治区

  • 阿里地区
  • 贵州省

  • 六盘水市
  • 贵州省

  • 安顺市
  • 贵州省

  • 毕节市
  • 贵州省

  • 贵阳市
  • 贵州省

  • 遵义市
  • 贵州省

  • 铜仁市
  • 贵州省

  • 黔东南苗族侗族自治州
  • 贵州省

  • 黔南布依族苗族自治州
  • 贵州省

  • 黔西南布依族苗族自治州
  • 辽宁省

  • 丹东市
  • 辽宁省

  • 大连市
  • 辽宁省

  • 抚顺市
  • 辽宁省

  • 朝阳市
  • 辽宁省

  • 本溪市
  • 辽宁省

  • 沈阳市
  • 辽宁省

  • 盘锦市
  • 辽宁省

  • 营口市
  • 辽宁省

  • 葫芦岛市
  • 辽宁省

  • 辽阳市
  • 辽宁省

  • 铁岭市
  • 辽宁省

  • 锦州市
  • 辽宁省

  • 阜新市
  • 辽宁省

  • 鞍山市
  • 重庆市

  • 重庆市

  • 市辖区
  • 陕西省

  • 咸阳市
  • 陕西省

  • 商洛市
  • 陕西省

  • 安康市
  • 陕西省

  • 宝鸡市
  • 陕西省

  • 延安市
  • 陕西省

  • 榆林市
  • 陕西省

  • 汉中市
  • 陕西省

  • 渭南市
  • 陕西省

  • 西安市
  • 陕西省

  • 铜川市
  • 青海省

  • 果洛藏族自治州
  • 青海省

  • 海东市
  • 青海省

  • 海北藏族自治州
  • 青海省

  • 海南藏族自治州
  • 青海省

  • 海西蒙古族藏族自治州
  • 青海省

  • 玉树藏族自治州
  • 青海省

  • 西宁市
  • 青海省

  • 黄南藏族自治州
  • 黑龙江省

  • 七台河市
  • 黑龙江省

  • 伊春市
  • 黑龙江省

  • 佳木斯市
  • 黑龙江省

  • 双鸭山市
  • 黑龙江省

  • 哈尔滨市
  • 黑龙江省

  • 大兴安岭地区
  • 黑龙江省

  • 大庆市
  • 黑龙江省

  • 牡丹江市
  • 黑龙江省

  • 绥化市
  • 黑龙江省

  • 鸡西市
  • 黑龙江省

  • 鹤岗市
  • 黑龙江省

  • 黑河市
  • 黑龙江省

  • 齐齐哈尔市