How to use Boolflow

Справка Boolflow

Руководство пользователя симулятора цифровых логических схем

Что такое Boolflow?

Boolflow — бесплатный симулятор цифровых логических схем прямо в браузере. Никакой установки, никаких аккаунтов — откройте сайт и сразу начинайте строить схемы.

Вы можете размещать логические вентили, соединять их проводами, переключать входы и наблюдать в реальном времени, как сигналы распространяются по схеме. Boolflow поддерживает комбинационную логику, последовательные схемы (триггеры, счётчики), многослойный холст и программируемые логические модули (PLM).

Встроенный экспорт позволяет одним нажатием преобразовать схему в исходный код на Verilog, VHDL или C++.

Первая схема

Самый быстрый способ освоить Boolflow — собрать простую схему с вентилем И с нуля. Займёт около двух минут.

  1. 1Откройте вкладку «Базовые» в верхней панели и нажмите на чип AND. Вентиль И появится на холсте.
  2. 2Перейдите во вкладку «Вх / Вых». Нажмите INPUT дважды — появятся два входных переключателя. Затем нажмите OUTPUT один раз.
  3. 3Наведите курсор на INPUT-1, пока на его правом краю не появится кружок. Перетащите от него к верхнему левому входу вентиля AND. Повторите: INPUT-2 → нижний левый вход AND.
  4. 4Перетащите от правого выхода AND → левый вход OUTPUT.
  5. 5Нажимайте на узлы INPUT, переключая между 0 и 1. OUTPUT загорится зелёным только когда оба входа равны 1 — это и есть логика И.

Совет: нажмите кнопку «Таблица истинности» в панели, чтобы автоматически увидеть все четыре комбинации входов.

Добавление элементов

Верхняя панель состоит из двух строк. Первая содержит вкладки категорий: Базовые, Вх/Вых, Триггеры, Арифметика, Плексеры, Память, Слои, ПЛМ. Нажмите на вкладку, чтобы просмотреть её элементы.

Вторая строка (полоса с чипами) показывает все элементы выбранной категории. Нажмите на чип, чтобы разместить его на холсте.

  • Drag & drop: перетащите чип прямо из полосы на холст — элемент появится в том месте, где вы его отпустили.
  • На мобильном: полоса чипов и строка вкладок прокручиваются горизонтально. Листайте влево-вправо для просмотра всех элементов.

Соединение блоков

Наведите курсор на любой узел — на его левом (входы) и правом (выходы) краях появятся маленькие кружки (разъёмы). Перетащите от выходного разъёма к входному разъёму другого узла, чтобы провести соединение.

Провод всегда идёт от выхода → ко входу. Один выход может питать несколько входов. Один вход принимает только один провод.

  • Удаление провода: тройной клик по соединению.
  • Провода прокладываются автоматически — ручная трассировка не нужна.
  • Зелёный провод / разъём = сигнал 1. Серый = 0. Оранжевый ? = отключён или неизвестен.

Значения сигналов: 0, 1 и ?

Boolflow использует три уровня сигнала:

  • 0 — логический ноль. Отображается серыми разъёмами и проводами.
  • 1 — логическая единица. Отображается зелёными разъёмами и бейджами.
  • ? — неизвестно или не подключено. Появляется, когда у обязательного входа нет провода. Вентиль с входом ? тоже выдаёт ? на выходе.

Взаимодействие с узлами

Основные действия происходят прямо на холсте:

  • Клик по INPUT — переключает между 0 и 1.
  • Клик по CLOCK — запускает или останавливает генератор.
  • Перетаскивание узла — свободное перемещение по холсту.
  • Тройной клик по узлу — удаляет узел и все его провода.
  • Тройной клик по проводу — удаляет только этот провод.
  • Перетаскивание по пустому холсту — выделение области. Все узлы внутри выделяются.
  • Ctrl+C / Ctrl+V — копирование и вставка выделенных узлов (провода между ними включены). Вставка смещена на 40 пx.
  • Ctrl+Z / Ctrl+Y — отмена / повтор (до 60 шагов).
  • Двойной клик по VIA или метке — открывает диалог переименования.

Горячие клавиши

  • Ctrl+Z — отменить
  • Ctrl+Y — повторить
  • Ctrl+C — скопировать выделенные узлы
  • Ctrl+V — вставить скопированные узлы
  • Delete — удалить выделенные узлы и провода
  • Тройной клик по узлу — удалить узел и его провода
  • Тройной клик по проводу — удалить провод
  • Клик по INPUT — переключить 0 / 1
  • Клик по CLOCK — запустить / остановить
  • Двойной клик по VIA / Метке — переименовать
  • Прокрутка — масштабирование
  • Средняя кнопка мыши — панорамирование

Слои — многослойный холст

Boolflow поддерживает до 4 независимых слоёв холста (L1–L4), как медные слои на печатной плате. Каждый слой имеет собственные узлы и провода.

Переключайте слои кнопками L1–L4 на левой панели холста. Активный слой выделяется цветом; цветная полоса отображается вдоль нижнего края холста.

Элементы разных слоёв не взаимодействуют без переходных отверстий (VIA).

VIA — соединения между слоями

VIA — специальный элемент из вкладки «Слои», передающий сигнал между слоями.

  • Отправитель: разместите VIA на одном слое и подключите к его входу провод.
  • Получатель: разместите VIA с тем же именем на другом слое без подключения входа — он автоматически выдаёт сигнал отправителя.
  • Имя: двойной клик по VIA для переименования. Все VIA с одинаковым именем образуют единую электрическую сеть по всем слоям.
  • Цветные кнопки во вкладке «Слои» (● L1 … ● L4) мгновенно размещают VIA с нужным именем и цветом.

CLOCK и тактируемые элементы

Узел CLOCK генерирует периодический прямоугольный сигнал с настраиваемой частотой (Гц). Нажмите, чтобы запустить или остановить.

Триггеры (D, JK, T) и счётчики (CNT4, DCNT4, UDCNT4) реагируют на нарастающий фронт (переход 0→1) тактового сигнала.

EDGE_DET формирует однотактный импульс на нарастающем фронте; FALL_DET — на спадающем. CLK_DIV делит частоту тактового сигнала на 2.

Генераторы CLOCK работают на всех слоях одновременно.

PLM — Программируемый логический модуль

Блоки PLM (PLM6–PLM20) имеют настраиваемое число входов и выходов (3–10 входов, 2–8 выходов). Нажмите кнопку ✎ внутри узла, чтобы открыть редактор формул.

Каждый выход задаётся булевым выражением с операторами: & (И), | (ИЛИ), ! (НЕ), ^ (ИСК. ИЛИ) и скобками. Имена сигналов совпадают с именами входов.

Пример: O0 = A & !B | C — «выход 0 равен 1, когда A=1 И B=0, ИЛИ C=1».

Экспорт кода (Verilog / VHDL / C++)

В панели инструментов доступны три формата экспорта для активного слоя:

  • Verilog — синтезируемый Verilog (IEEE 1364). Режимы: только модуль / + testbench (до 256 векторов, совместим с EDA Playground).
  • VHDL — VHDL (IEEE 1076 / NUMERIC_STD). Режимы: только entity / + testbench.
  • C++ — функция на C++11 с типами bool и uint8_t. Топологическая сортировка гарантирует правильный порядок операторов. Режимы: только функция / + main() (выводит таблицу истинности).
  • Экспортируются только комбинационные элементы. Последовательные элементы (триггеры, счётчики, CLOCK) пропускаются с предупреждением.

Таблица истинности

Нажмите кнопку «Таблица истинности» в панели для мгновенного вычисления таблицы активного слоя.

  • Перебираются все комбинации значений INPUT (до 10 входов = 1024 строки).
  • Значения выходов отображаются в реальном времени — зелёный = 1, серый = 0, оранжевый ? = не подключено.
  • Кнопка «Экспорт CSV» скачивает таблицу в формате, совместимом с таблицами.

Сохранение и загрузка

Boolflow сохраняет схемы как локальные файлы — сервер и аккаунт не нужны.

  • Сохранить — введите имя и нажмите «Скачать». Файл .boolflow.json сохранится в папку загрузок. Все 4 слоя включены.
  • Загрузить — нажмите «Открыть файл…» и выберите ранее сохранённый .boolflow.json. Схема загружается мгновенно.
  • Поддерживаются форматы v1.0 и v2.0.

Проверка целостности цепи

Нажмите кнопку «Проверить» (красная) для сканирования активного слоя на ошибки подключения.

  • Незаполненный вход — у узла есть входной порт без провода (при симуляции выдаёт ?).
  • Висячий выход — ни один выход узла не подключён к другим элементам.
  • После проверки все проблемные узлы выделяются на холсте. Баннер показывает количество найденных проблем.

Встроенные примеры

Нажмите кнопку «Примеры» в панели, чтобы открыть галерею готовых схем. Каждый пример можно загрузить на любой слой и изучить или доработать.

  • Полусумматор (на вентилях)
  • Полный сумматор (компонент)
  • Мультиплексор 2:1
  • 4-битный сумматор
  • Дешифратор 3:8
  • Приоритетный шифратор 8:3
  • 4-битный счётчик
  • 1-битное АЛУ
  • SR-защёлка, D-защёлка, триггеры D / JK / T
  • 4-битный регистр, сдвиговый регистр, компаратор и другие

Справочник элементов

Базовые элементы

Входы / Выходы

Арифметика

Плексеры

Память и последовательные схемы

PLM — Программируемая логика