我有一个逻辑示意图,从输入到输出有很多层次。我想为每个输出找到一个简化的布尔方程。为了避免错误并提高效率,我计划将大原理图分解为每个逻辑门的一个布尔方程,并找到一个工具来简化一组布尔方程并为我指定为输出的选定项输出一个方程.
任何数学程序都可以,请帮助。谢谢!
我有一个逻辑示意图,从输入到输出有很多层次。我想为每个输出找到一个简化的布尔方程。为了避免错误并提高效率,我计划将大原理图分解为每个逻辑门的一个布尔方程,并找到一个工具来简化一组布尔方程并为我指定为输出的选定项输出一个方程.
任何数学程序都可以,请帮助。谢谢!
对于这种情况,我建议Logic Friday 1
. 您可以输入您的电路作为门图。[Logic Friday 1][1] 然后会将您的输入转换为最小化的产品总和形式。它还可以将这种两级形式转换回多级门图。
多级电路的简化绝非易事。在大量输入的情况下,您最终可能会得到大量的最小项(= 产品总和)。就局部转换而言,简化电路可能更容易,您可以用实现相同功能的更简单的子电路替换给定数量的门。示例:AND(AND(x,y),z) 等价于 AND(x,y,z)。还要在您的电路中寻找实现相同功能的节点,因此可以将其消除。
可能是,您不应该寻找最小/最简单的电路,而是寻找最快的电路。这是输入和输出之间延迟最小的电路。同样,延迟最小化是一个非常微妙的目标,它取决于可用门类型的延迟属性。
另一种工具是bc2cnf。此命令行工具将门网表文件转换为和积CNF文件。然后可以使用SAT 求解器求解此 CNF 文件。每个解对应于乘积和形式的一个最小项。因此,这并不直接向您展示简化的多级形式,但它可以帮助验证您的电路的功能。