Упрощение единого логического элемента с неизвестными значениями

Я моделирую систему, которая использует четыре типа битов:

  • Ноль: это буквальное значение 0
  • ОДИН: Это буквальное значение 1
  • DONTCARE: это означает, что 0 или 1 является приемлемым
  • НЕИЗВЕСТНО: Ничего не известно о том, каким должен быть этот бит.

Теперь у меня есть простой логический вентиль, который принимает два входа и дает один выход (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) возможных комбинации входов. Я пробовал различные способы решения каждой проблемы в отдельности, но она подвержена ошибкам и является сложной. Что мне нужно, так это какой-то унифицированный метод сокращения всех ворот. Мой вопрос: как мне это сделать?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]