Логическая схема из нескольких вентилей — это система выражений: выход каждого вентиля зависит от его входов, а входы — от других вентилей. Симулятор принимает схему в таком виде, проверяет, что в ней нет обратных связей, вычисляет все сигналы для каждого набора входов и анализирует выход: минимальная ДНФ и КНФ, карта Карно, схема только из элементов И-НЕ.
Как записать схему
Одна строка — один узел: имя, знак равенства и выражение. Выражение может вызывать вентили с любым числом входов или использовать операторы.
| Запись | Что значит |
|---|---|
N1 = NAND(A, B) | элемент И-НЕ, NAND(A, B, C) — трёхвходовой |
N2 = NOR(A, B), XOR, XNOR | ИЛИ-НЕ, исключающее ИЛИ и его инверсия |
N3 = NOT(A), BUF(A) | инвертор и повторитель |
Y = A·B + C' | выражение: + или | — ИЛИ, ·, & или запись подряд — И, ' или ! — НЕ, ^ — исключающее ИЛИ |
Имена узлов, которые читают другие узлы, — одна латинская буква с цифрами: A, N1, x2. Регистр в именах важен: a и A — разные входы; в названиях вентилей (nand, NAND) — нет. Запись AB в выражении означает произведение A и B. Выходам, которые никто не читает, можно дать длинные имена: Out, Sum. Всё, что встречается в выражениях, но не определено слева, — входы схемы. Одно выражение без знака равенства — функция F.
Что показывает симулятор
- Значения узлов. Кнопки входов переключают 0 и 1, и под ними сразу видны выходы всех вентилей. Текущий набор подсвечен в таблице истинности.
- Таблица истинности со всеми узлами: по ней видно, где сигнал теряется или меняется. Строки пронумерованы так, что первая переменная — старший разряд: для A, B, C строка 6 — это 110.
- Минимальные ДНФ и КНФ. Их находит метод Куайна — Мак-Класки с точным выбором покрытия; результат совпадает с тем, что получают картой Карно, но без риска пропустить группу.
- Карта Карно для схем до четырёх входов: строки и столбцы подписаны кодом Грея, как у Kuphaldt (для четырёх переменных — AB по строкам, CD по столбцам), цветные точки отмечают группы минимальной ДНФ.
- Схема только из И-НЕ. Элементы И-НЕ универсальны: из них собирается любая функция. Симулятор строит схему И-НЕ/И-НЕ по минимальной ДНФ — два уровня, плюс уровень инверторов, если в ДНФ есть инверсные переменные, — и показывает её списком вентилей — этот список можно вставить в поле схемы и проверить.
Пример: упрощение схемы из учебника
В главе о булевой алгебре Kuphaldt разбирает схему из двух элементов И и двух ИЛИ с выходом Q = AB + BC(B + C). Запишем её вентилями:
N1 = AND(A, B)
N2 = OR(B, C)
N3 = AND(B, C, N2)
Q = OR(N1, N3)
Симулятор находит минимальную ДНФ AB + BC и КНФ B(A + C) — тот же ответ, что получен в книге алгебраическими преобразованиями. Узел N2 в итоге лишний: при B = C = 1 он всегда равен 1. Схема в базисе И-НЕ — три элемента:
Второй пример — система защиты горелки с тремя датчиками пламени, где клапан открывается, если пламя видят хотя бы два датчика. Совершенная ДНФ по таблице истинности — , а после упрощения AB + BC + AC: в базисе И-НЕ это три двухвходовых элемента — три из четырёх в одной микросхеме 74HC00 — и один трёхвходовой.
Для минимизации функции, заданной номерами наборов, удобнее отдельная карта Карно, а для одного выражения с СДНФ, СКНФ и записью для кода — калькулятор таблицы истинности. Устройство логических элементов и их семейства — в статье «Цифровая логика».
Частые вопросы
Чем симулятор отличается от калькулятора таблицы истинности?
Таблица истинности строится по одному выражению. Симулятор принимает схему из нескольких узлов — вентилей с именами, которые ссылаются друг на друга, — и считает значение каждого промежуточного сигнала. Можно переключать входы и видеть, как меняются выходы всех вентилей, а для выбранного выхода получить минимальную форму и замену схемы на элементы И-НЕ.
Как построить схему только на элементах И-НЕ?
Берут минимальную ДНФ и заменяют оба уровня элементами И-НЕ: каждое произведение реализует свой элемент И-НЕ, а их выходы собирает ещё один И-НЕ. По теореме Де Моргана И-НЕ с инверсными входами работает как ИЛИ, поэтому двухуровневая схема И-НЕ/И-НЕ равна схеме И/ИЛИ. Если в произведениях есть инверсные переменные, нужны ещё инверторы на входах — элементы И-НЕ с объединёнными входами, и схема становится трёхуровневой. Для мажоритарной функции AB + BC + AC это три двухвходовых И-НЕ и один трёхвходовой.
Почему вентили с обратной связью не принимаются?
Симулятор считает комбинационные схемы, у которых выход зависит только от текущих входов. Если узел через цепочку вентилей читает сам себя — как в RS-триггере на двух ИЛИ-НЕ, — выход зависит ещё и от предыдущего состояния, и таблица истинности не определена. Такую петлю симулятор называет и не считает.
Сколько входов можно задать?
До шести: таблица истинности — 64 строки, минимизация точная. Карта Карно рисуется для схем до четырёх входов, как в учебниках: для пяти и шести переменных карту приходится делить на части, и группы на ней читать неудобно.
Источники
- Kuphaldt T. R. Lessons In Electric Circuits, Vol. IV — Digital, ch. 7 «Boolean Algebra» (CC BY) — разд. «Circuit simplification examples»: схема AB + BC(B + C) сводится к B(A + C); разд. «DeMorgan's Theorems»: (A + (BC)')' — трёхвходовое И с инверсией A, NAND эквивалентен ИЛИ с инверсными входами; разд. «Converting truth tables into Boolean expressions»: два датчика пламени из трёх — A'BC + AB'C + ABC' + ABC = AB + BC + AC, рассогласование датчиков — КНФ (A + B + C)(A' + B' + C')
- Kuphaldt T. R. Lessons In Electric Circuits, Vol. IV — Digital, ch. 8 «Karnaugh Mapping» (CC BY) — карта 4 × 4: строки AB, столбцы CD в коде Грея, номера клеток 0, 1, 3, 2 / 4, 5, 7, 6 / 12, 13, 15, 14 / 8, 9, 11, 10; Σm(0, 1, 3, 4, 5, 7, 12, 13, 15) = A'C' + A'D + BC' + BD (по рисунку; в тексте раздела перечень минтермов напечатан с ошибкой); ΠM(2, 6, 8, 9, 10, 11, 14) = (A' + B)(C' + D); C' + ABCD = C' + ABD
- Kuphaldt T. R. Lessons In Electric Circuits, Vol. IV — Digital, ch. 3 «Logic Gates», разд. «Gate universality» (CC BY) — И-НЕ и ИЛИ-НЕ универсальны: инвертор — И-НЕ с объединёнными входами, И — И-НЕ с инвертором на выходе, ИЛИ — три элемента И-НЕ
- Texas Instruments. SNx4HC00 Quadruple 2-Input NAND Gates (SCLS181H, revised August 2021) — табл. 8-1: выход Y низкий только при высоком уровне на обоих входах, Y = (A · B)'
- E. J. McCluskey. Minimization of Boolean functions. The Bell System Technical Journal, 1956, vol. 35, no. 6 — метод простых импликант и таблицы покрытия, которым симулятор находит минимальные формы
Где пригодится
- Булева алгебраАлгебра двух значений: И, ИЛИ, НЕ и правила упрощения
- Законы де Моргана(AB)' = A' + B' и (A + B)' = A'B': перенос инверсии через скобки
- Таблица истинностиВсе комбинации входов логической схемы и выход для каждой
- Логический элемент (вентиль)Схема, выход которой — булева функция входов: НЕ, И, ИЛИ и их варианты
- Исключающее ИЛИ (XOR)Выход 1, когда входы различны: сумма по модулю 2
- Универсальные элементы И-НЕ и ИЛИ-НЕИз одних И-НЕ или одних ИЛИ-НЕ собирается любая логика
Встроить калькулятор на свой сайт
Скопируйте код и вставьте его в HTML страницы, статьи или вики. Виджет бесплатный, без рекламы, счётчиков и cookie. Условие одно — ссылка на GAW под рамкой остаётся на месте. Подробнее о виджетах
<iframe src="https://gaw.ru/embed/logic-simulator/" title="Симулятор логических схем" width="100%" height="640" style="border:1px solid #e3e5e9;border-radius:8px" loading="lazy" allow="clipboard-write"></iframe>
<p style="margin:6px 0 0;font-size:14px">Калькулятор: <a href="https://gaw.ru/tools/logic-simulator/">Симулятор логических схем</a> — GAW.ru</p>Автоподстройка высоты рамки
Если сайт разрешает скрипты, добавьте этот код один раз в любом месте страницы: рамка будет менять высоту вместе с результатом расчёта.
<script>window.addEventListener("message",function(e){if(e.origin!=="https://gaw.ru"||!e.data||e.data.type!=="gaw:embed-height")return;var f=document.querySelectorAll('iframe[src^="https://gaw.ru/embed/"]');for(var i=0;i<f.length;i++)if(f[i].contentWindow===e.source)f[i].style.height=e.data.height+"px"})</script>Обновлено .
Нашли ошибку в расчёте?