我正在建模一个使用四位类型的系统:
现在,我有一个简单的逻辑门,它接收两个输入并给出一个输出(AND,OR,NOR,NAND,XOR等)。任何位值都可以在任何位置。
例如,我们可能会:
1: ZERO NAND ONE = UNKNOWN
2: DONTCARE XOR DONTCARE = UNKNOWN
3: ONE AND DONTCARE = ONE
4: ONE OR UNKNOWN = DONTCARE
5: DONTCARE XOR UNKNOWN = ONE
问题是试图尽可能地减少这样的表达,传播两个方向。例如,以上内容可以简化为:
1: ZERO NAND ONE = ONE (left to right)
2: DONTCARE XOR DONTCARE = DONTCARE (left to right)
3: ONE AND ONE = ONE (right to left)
4: ONE OR DONTCARE = ONE (both)
5: DONTCARE XOR UNKNOWN = ONE (can't do anything)
有很多门,每个门有64(= 4 ^ 3)种可能的输入组合。我已尝试过各种方法来单独处理每个门,但它容易出错且复杂。我需要的是一些减少所有门的统一方法。 我的问题:我应该怎么做?