2016-06-30 2 views
0

У меня есть схема логики и от входов к выходу есть много уровней. Я хотел бы найти упрощенное булево уравнение для каждого вывода. Чтобы избежать ошибок и сделать это эффективно, я планирую разбить большую схему на одно логическое уравнение на логический логический элемент и найти инструмент, который может упростить набор булевых уравнений и вывести одно уравнение для выбранного термина, который я обозначаю как выход ,Объединить набор булевых уравнений

Любая математическая программа в порядке, пожалуйста, помогите. Благодаря!

ответ

0

Для таких случаев я рекомендую Logic Friday 1. Вы можете ввести свою схему в качестве схемы затвора. Logic Friday 1 затем преобразует вашу запись в минимизированную форму суммирования. Он также может преобразовать эту двухуровневую форму обратно в многоуровневую схему затвора.

упрощение многоуровневой схемы далеко не тривиально. В случае большого количества входов вы можете получить огромное количество minterms (= sums-of-products). Может быть проще упростить схему в терминах local transformations, где вы заменяете заданное количество вентилей более простой подсхемой, которая реализует ту же функцию. Пример: AND (AND (x, y), z) эквивалентен AND (x, y, z). Также ищите узлы в вашей схеме, которые реализуют одну и ту же функцию и, таким образом, могут быть устранены.

Возможно, вы не должны искать самые маленькие/самые простые, но для наиболее быстрая схема. Это схема с минимальной задержкой между входами и выходами. Снова минимизация задержек - довольно тонкая цель для достижения и зависит от свойств задержки доступных типов ворот.

Альтернативный инструмент: bc2cnf. Этот инструмент командной строки преобразует файл списка соединений ворот в файл CNF продукта-of-sum. Затем этот файл CNF можно решить, используя SAT solver. Каждое решение соответствует одному minterm формы суммы продукции. Поэтому это не показывает вам упрощенную многоуровневую форму, но может помочь проверить функцию вашей схемы.