Упрощатель булевой алгебры
Для булевого выражения — A·B + A·¬B + ¬A·B или таблицы истинности с минтермами — этот упрощатель возвращает минимальную форму sum-of-products с помощью алгоритма Quine-McCluskey, плюс визуализацию карты Карно для максимум шести переменных. Он показывает каждый шаг (prime implicants, essential prime implicants, covering table), поэтому полезен не только для домашки, но и для аудита того, что выбрал минимизатор внутри вашего synthesis tool.
Как выполняется булево упрощение
-
1
Введите выражение или минтермы
Используйте операторы · (AND), + (OR), ' или ¬ (NOT), ⊕ (XOR). Или вставьте индексы минтермов вроде m(0,1,3,7).
-
2
Генерируется таблица истинности
Каждое присваивание переменных вычисляется, а выход функции заносится в таблицу.
-
3
Quine-McCluskey находит prime implicants
Минтермы группируются и итеративно объединяются. Соседние группы, отличающиеся одной переменной, сливаются, пока дальнейшие сокращения невозможны.
-
4
Essential implicants покрывают функцию
Таблица покрытия по методу Petrick выбирает минимальный набор prime implicants. Результат — упрощенная SOP. POS-форма выводится из дополнения.
Поддерживаемая запись операторов
| Операция | Допустимые символы |
|---|---|
| AND | ·, *, &, ∧, пробел |
| OR | +, |, ∨ |
| NOT | \', ¬, !, ~, надчёркивание (A с надчёркиванием отображается как A\') |
| XOR | ⊕, ^ |
| Константы | 0, 1 |
Пример
Ввод: A·B + A·¬B + ¬A·B
Таблица истинности:
| A | B | F |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Minterms: m(1, 2, 3). Минимальная SOP сокращается до A + B (OR двух переменных). Упрощатель проходит шаги:
- Группирует минтермы по количеству единиц
- Объединяет соседние пары: (1,3) →
-B, (2,3) →A- - Таблица покрытия показывает, что оба essential — итоговая форма:
A + B
Зачем минимизировать
- Меньше вентилей: каждый AND/OR-терм стоит кремния или ресурсов FPGA (LUT).
- Короче critical path: меньшая логика обычно означает меньшую задержку распространения.
- Меньше энергопотребление: меньше переключающихся узлов.
Ограничения алгоритма
- Количество переменных: Quine-McCluskey в худшем случае растет как O(3^n / n). Инструмент уверенно обрабатывает до 8 переменных; дальше используйте эвристические минимизаторы в стиле Espresso (гарантированной минимальности не будет, зато это выполнимо).
- Don't-care terms: добавляйте их синтаксисом
d(indices), чтобы получать более короткие результаты, когда некоторые входные комбинации невозможны.
Часто задаваемые вопросы
Sum-of-products — это OR-of-ANDs (например, AB + CD); product-of-sums — AND-of-ORs (например, (A+B)(C+D)). Функция та же, структура другая. Упрощатель возвращает обе формы — выбирайте ту, которая подходит downstream tool.
Да. Вводите их как d(index1, index2, ...) рядом с минтермами. Минимизатор считает их “свободными” и назначает то значение, которое дает меньший результат.
Оба дают минимальную стоимость, если выбрать правильно, но K-maps зависят от того, заметил ли человек самые большие возможные группы. Quine-McCluskey детерминирован и всегда находит optimum.
XOR перед минимизацией разворачивается в AND/OR/NOT. Вы получите эквивалентную SOP, но XOR-структура потеряется. Для оптимизации с сохранением XOR нужен другой алгоритм (Reed-Muller).
Сопутствующие инструменты
Генератор случайных цветовых палитр
Создавайте случайные палитры из 2–15 цветов, выбирайте яркий, пастельный, приглушенный или темный стиль и копируйте HEX-коды или CSS-переменные.
Конвертер BBCode в HTML
Преобразуйте BBCode (разметку форумов) в чистый HTML. Поддерживает теги форматирования, списки, цитаты, код, изображения, ссылки и таблицы.
Выбор цвета HEX
Выберите цвет визуально и получите значения HEX, RGB, HSL, HSV и CMYK, а также контраст на белом и чёрном фоне.
Генератор случайных букв
Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.
Форматировщик JSON
Вставьте JSON, чтобы оформить его с отступом 2 или 4 пробела, минифицировать до компактного вывода или быстро проверить синтаксис перед копированием результата.
Генератор случайных цветов
Создавайте от 1 до 50 случайных HEX-цветов с образцами для просмотра, копирования и использования в CSS, тестах или подборе палитр.