Перейти к содержанию

Симулятор логических схем

Запишите схему списком вентилей или булевым выражением — симулятор покажет значение каждого узла при выбранных входах, построит таблицу истинности со всеми промежуточными сигналами, карту Карно, минимальные ДНФ и КНФ и схему только из элементов И-НЕ.

Исходные данные

Строка — узел: «Y = выражение». Вентили: AND, OR, NAND, NOR, XOR, XNOR, NOT, BUF с любым числом входов, операторы: + или |, · или &, ' или !, ^. Имена — буква с цифрами: A, N1.

Запись формул

Результат

Входы — нажмите, чтобы переключить

N1 = 0N2 = 0N3 = 0Q = 0

Минимальная ДНФ Q
AB + BC
единицы на наборах 3, 6, 7
Минимальная КНФ
(A + C)B
Только NAND
G1 = NAND(A, B)G2 = NAND(B, C)Q = NAND(G1, G2)3 вентиля, до 2 входов

Карта Карно для Q

A \ BC00011110
000103120
140507161
  • AB — наборы 6, 7
  • BC — наборы 3, 7

Таблица истинности со всеми узлами

№ABCN1N2N3Q
00000000
10010100
20100100
30110111
41000000
51010100
61101101
71111111

Расчёт выполнен по формулам и данным из источников, приведённых на этой странице, и не заменяет проверку: параметры компонентов у разных производителей и даже партий различаются. Перед применением сверяйте результат с документацией на конкретные детали.

Логическая схема из нескольких вентилей — это система выражений: выход каждого вентиля зависит от его входов, а входы — от других вентилей. Симулятор принимает схему в таком виде, проверяет, что в ней нет обратных связей, вычисляет все сигналы для каждого набора входов и анализирует выход: минимальная ДНФ и КНФ, карта Карно, схема только из элементов И-НЕ.

Как записать схему

Одна строка — один узел: имя, знак равенства и выражение. Выражение может вызывать вентили с любым числом входов или использовать операторы.

ЗаписьЧто значит
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. Схема в базисе И-НЕ — три элемента:

Q=AB‾⋅BC‾‾.Q = \overline{\overline{AB} \cdot \overline{BC}}.

Второй пример — система защиты горелки с тремя датчиками пламени, где клапан открывается, если пламя видят хотя бы два датчика. Совершенная ДНФ по таблице истинности — AˉBC+ABˉC+ABCˉ+ABC\bar{A}BC + A\bar{B}C + AB\bar{C} + ABC, а после упрощения AB + BC + AC: в базисе И-НЕ это три двухвходовых элемента — три из четырёх в одной микросхеме 74HC00 — и один трёхвходовой.

Для минимизации функции, заданной номерами наборов, удобнее отдельная карта Карно, а для одного выражения с СДНФ, СКНФ и записью для кода — калькулятор таблицы истинности. Устройство логических элементов и их семейства — в статье «Цифровая логика».

Частые вопросы

Чем симулятор отличается от калькулятора таблицы истинности?

Таблица истинности строится по одному выражению. Симулятор принимает схему из нескольких узлов — вентилей с именами, которые ссылаются друг на друга, — и считает значение каждого промежуточного сигнала. Можно переключать входы и видеть, как меняются выходы всех вентилей, а для выбранного выхода получить минимальную форму и замену схемы на элементы И-НЕ.

Как построить схему только на элементах И-НЕ?

Берут минимальную ДНФ и заменяют оба уровня элементами И-НЕ: каждое произведение реализует свой элемент И-НЕ, а их выходы собирает ещё один И-НЕ. По теореме Де Моргана И-НЕ с инверсными входами работает как ИЛИ, поэтому двухуровневая схема И-НЕ/И-НЕ равна схеме И/ИЛИ. Если в произведениях есть инверсные переменные, нужны ещё инверторы на входах — элементы И-НЕ с объединёнными входами, и схема становится трёхуровневой. Для мажоритарной функции AB + BC + AC это три двухвходовых И-НЕ и один трёхвходовой.

Почему вентили с обратной связью не принимаются?

Симулятор считает комбинационные схемы, у которых выход зависит только от текущих входов. Если узел через цепочку вентилей читает сам себя — как в RS-триггере на двух ИЛИ-НЕ, — выход зависит ещё и от предыдущего состояния, и таблица истинности не определена. Такую петлю симулятор называет и не считает.

Сколько входов можно задать?

До шести: таблица истинности — 64 строки, минимизация точная. Карта Карно рисуется для схем до четырёх входов, как в учебниках: для пяти и шести переменных карту приходится делить на части, и группы на ней читать неудобно.

Источники

  1. 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')
  2. 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
  3. Kuphaldt T. R. Lessons In Electric Circuits, Vol. IV — Digital, ch. 3 «Logic Gates», разд. «Gate universality» (CC BY) — И-НЕ и ИЛИ-НЕ универсальны: инвертор — И-НЕ с объединёнными входами, И — И-НЕ с инвертором на выходе, ИЛИ — три элемента И-НЕ
  4. Texas Instruments. SNx4HC00 Quadruple 2-Input NAND Gates (SCLS181H, revised August 2021) — табл. 8-1: выход Y низкий только при высоком уровне на обоих входах, Y = (A · B)'
  5. E. J. McCluskey. Minimization of Boolean functions. The Bell System Technical Journal, 1956, vol. 35, no. 6 — метод простых импликант и таблицы покрытия, которым симулятор находит минимальные формы

Где пригодится

Встроить калькулятор на свой сайт

Скопируйте код и вставьте его в 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>

Обновлено .

Нашли ошибку в расчёте?