化简逻辑函数的方法

之前从未听说过启发式逻辑压缩器(Espresso heuristic logic minimizer)这种东西,今天在寻找测试使用的Benchmark的时候突然遇到了这方面的东西,所以记录一下学习过程。

维基百科上对于启发式逻辑压缩器的定义为:这是一种用启发式和特定算法来高效缩减数字门电路复杂性的程序,是在1986年由IBM公司的Robert Brayton先生创造的,并且写了篇论文名为“Multiple-Valued Logic Minimization for PLA Synthesis”(针对PLA综合的多值逻辑压缩)。(这里的PLA目前我还不知道是什么意思,是否是可编程逻辑阵列PLA?)

几种经典的逻辑化简方法

卡诺图:这种方法应该是最经典的方法,每个学过数电的小伙伴应该都是牢牢掌握的,但是最大的缺点在于当输入数目大于4时,卡诺图法就会变得十分繁琐。要是输入数目更多,手工操作的难度以及算错的风险可以说是超级大,并且用计算机程序实现起来并不方便。

奎因-麦克拉斯基算法(Quinine-McCluskey Algorithm):这种方法实际上是与卡诺图法是功能等价的,但是这种方法是表格形式的,这就方便了计算编程,并且对于是否达到了布尔函数的最简形式给出了确定性验证方法。

这个方法分为两步:

1)找到这个函数的所有质蕴涵项(prime implicant)。这里对于蕴含项,质蕴涵项的概念做出解释。

蕴含项:在函数的“与-或”表达式中,每个“与”项被称为该函数的蕴涵项,这里说的可能有些笼统,其实还是有一种抽象一点点但是准确的描述即为:乘积项P是布尔函数F(包含有n个变量)的蕴含项意味着,对于n个变量的使P值为1的所有组合,F也等于1。称为P蕴含F。举例而言:f(x,y,z,w)=xy+yz+w,那么xy这个乘积项就是f(x,y,z,w)的蕴含项,因为让xy=1的四个变量x,y,z,w的组合共4个:1100,1101,1110,1111。这四个组合都可以让f(x,y,z,w)=1,所以xy这个乘积项是f的蕴含项,同理,xyz,xyzw,w等等都是f的蕴含项。

质蕴涵项:若函数的一个蕴含项不是该函数中其他蕴含项的子集,则称这个蕴含项为质蕴涵项。在函数卡诺图中,按照最小项合并规律,如果某个卡诺圈不可能被其他更大的卡诺圈包含,那么该卡诺圈所对应的项为质蕴涵项。

 

2) 用这些表中的质蕴涵项来找到函数的必要质蕴涵项(essential prime implicant),对覆盖这个函数是必须的其他素蕴涵项也同样要使用。

 

转载于:https://www.cnblogs.com/wojiaozhangtao/p/7922320.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值