2024年6月5日发(作者:那拉溪儿)
引言:
逻辑函数化简在数字电路中有着非常重要的作用。如果一个逻辑函数的表达式比较
简单,那么实现它的电路使用的元器件就少,设备就简单,运算速度就快。在本文中讨
论的逻辑函数化简,是将一个逻辑函数的表达式简化成最简或-与式。所谓最简或-与式,
是或-与表达式中乘积项(与项)的个数最少,而且力求每一个乘积项中包含的变量数
最少。
我们熟悉的逻辑函数化简方法是卡诺图法。卡诺图法具有简单、直观的优点,但当
变量数目达到或超过5个以后,卡诺图将变得很复杂,甚至无法使用。而列表法对于解
决多变量逻辑函数化简具有显著的优越性,并且这种方法有严格规则和步骤,便于计算
机操作。列表法最早由Quine和Mcluskey提出,因此该法又称为Q-M法。许多数字电
路课本上给出了便于手工计算的列表法,但并没有给出实际利用计算机语言实现的方
法。本文探讨利用C语言实现Q-M法。
一:制作内容:
利用Quine-McCluskey表格法原理,用c++语言实现一个简易的逻辑代数
化简程序,求出最简表达式,做到准确,迅速,方便人们进行逻辑化简。
二:实验原理:
算法简述:
1,列出函数的所有最小项
2,找出所有的质蕴涵项(第一步和第二步)
3,第一步:将最小项按重量(1的个数)分组。
4,第二步:穷尽地找出所有的质蕴涵项。
5,找出最小的质蕴涵项覆盖(第三步和第四步)
6,构造质蕴涵项表
7,选择最小数目的质蕴涵项覆盖(最小覆盖)
覆盖过程(Covering Procedure)
1,第一步:标示出所有只被某个PI覆盖的最小项,将这些PI加入覆盖中(实
质蕴含项)。
2,第二步:在质蕴涵项图中去掉所有在第一步中标示出的PI覆盖的行,同
时去掉被这些PI覆盖的最小项的列。
3,规则1:如果一行被其它行覆盖,去掉该行
4,规则2:如果一列覆盖其它列,去掉该列
5,第三步:如果第二步的结果是一个循环图表,进入第五步。否则再次执
行第一部和第二步。
6,第四步:如果第三步的结果是一个循环图表,进入第五步。否则进入第
一步。
7,第五步:重复执行第五步,任意选择一个质蕴涵项。直到产生一个空图
表或者非循环表。如果表中还有符号,进入第一步。
用图例可一次表示为:
2
2024年6月5日发(作者:那拉溪儿)
引言:
逻辑函数化简在数字电路中有着非常重要的作用。如果一个逻辑函数的表达式比较
简单,那么实现它的电路使用的元器件就少,设备就简单,运算速度就快。在本文中讨
论的逻辑函数化简,是将一个逻辑函数的表达式简化成最简或-与式。所谓最简或-与式,
是或-与表达式中乘积项(与项)的个数最少,而且力求每一个乘积项中包含的变量数
最少。
我们熟悉的逻辑函数化简方法是卡诺图法。卡诺图法具有简单、直观的优点,但当
变量数目达到或超过5个以后,卡诺图将变得很复杂,甚至无法使用。而列表法对于解
决多变量逻辑函数化简具有显著的优越性,并且这种方法有严格规则和步骤,便于计算
机操作。列表法最早由Quine和Mcluskey提出,因此该法又称为Q-M法。许多数字电
路课本上给出了便于手工计算的列表法,但并没有给出实际利用计算机语言实现的方
法。本文探讨利用C语言实现Q-M法。
一:制作内容:
利用Quine-McCluskey表格法原理,用c++语言实现一个简易的逻辑代数
化简程序,求出最简表达式,做到准确,迅速,方便人们进行逻辑化简。
二:实验原理:
算法简述:
1,列出函数的所有最小项
2,找出所有的质蕴涵项(第一步和第二步)
3,第一步:将最小项按重量(1的个数)分组。
4,第二步:穷尽地找出所有的质蕴涵项。
5,找出最小的质蕴涵项覆盖(第三步和第四步)
6,构造质蕴涵项表
7,选择最小数目的质蕴涵项覆盖(最小覆盖)
覆盖过程(Covering Procedure)
1,第一步:标示出所有只被某个PI覆盖的最小项,将这些PI加入覆盖中(实
质蕴含项)。
2,第二步:在质蕴涵项图中去掉所有在第一步中标示出的PI覆盖的行,同
时去掉被这些PI覆盖的最小项的列。
3,规则1:如果一行被其它行覆盖,去掉该行
4,规则2:如果一列覆盖其它列,去掉该列
5,第三步:如果第二步的结果是一个循环图表,进入第五步。否则再次执
行第一部和第二步。
6,第四步:如果第三步的结果是一个循环图表,进入第五步。否则进入第
一步。
7,第五步:重复执行第五步,任意选择一个质蕴涵项。直到产生一个空图
表或者非循环表。如果表中还有符号,进入第一步。
用图例可一次表示为:
2