我正在尝试简化一个布尔表达式,其中包含39个输入,以及大约5亿 - 8亿个术语(如许多和/或/或语句中所示)。
不需要完美的简化,但是好的简化会很好。
我了解K-maps,Quine–McCluskey,Espresso算法。但是我也知道这些机制会花费太长时间来根据我读过的内容简化这种尺寸的电路
我需要在24小时内尽可能简化这个表达式。
谷歌搜索后,我发现很难找到任何资源来试图简化这么大的机器!那里的任何资源或那里的图书馆都可以尝试在24个时间段内至少简化这一点吗?
答案 0 :(得分:3)
贪婪的启发式简化在有些过时的书中有描述
Robert K. Brayton,Gary D. Hachtel,C。McMullen,Alberto Sangiovanni-Vincentelli VLSI合成的逻辑最小化算法
您可以找到章节online。
简化基于 unate范例。在分而治之的风格中,它递归地应用 Shannon的 expansion theorem来将函数分成更小的子函数。启发式规则是首先用最大的二元变量进行分割,即分隔最大数量的项的变量。
第二种方法可能是使用像METIS这样的图分区工具将术语拆分为独立(或至少松散相关)的子集。但我不知道这已经成功地用于逻辑综合任务。我最喜欢的搜索引擎是持怀疑态度,不会返回任何点击。
基于Binary Decision Diagrams的更新算法在
中为publishedOlivier Coudert:将两级逻辑最小化速度提高100倍
本文列出了与您手头的任务类似的大量术语的例子。
A Study of Sweeping Algorithms in the Context of Model Checking中描述的一种有点相关的简化技术 BDD Sweeping 。
答案 1 :(得分:0)
这是一个重复的问题。有关逻辑优化或布尔表达式简化的资源,请参见https://stackoverflow.com/a/60535990/1531728。