Экспорт C++

Имя функции:

Экспорт схемы в C++

Это экспорт, которого нет ни у одного другого браузерного симулятора логики. Вместо описания аппаратуры Boolflow выдаёт схему обычным кодом на C++: каждый вентиль превращается в булево выражение, а вся схема — в функцию, которую можно вызвать.

Нарисованная схема становится исполняемой вне симулятора. Функцию можно вставить в юнит-тест и сверить проект с ожидаемыми значениями, встроить в прошивку там, где таблица подстановки была бы слишком велика, или использовать как быструю эталонную модель при проверке HDL-реализации. Код — чистый C++ без зависимостей за пределами стандартной библиотеки, поэтому собирается везде: GCC, Clang, MSVC или встраиваемый тулчейн.

  • Режим функции выдаёт одну функцию: по одному bool на каждый вход, на выходе структура с результатами.
  • Режим программы оборачивает её в готовый main(), который печатает результат, — можно сразу компилировать и запускать.
  • В сгенерированном коде нет выделения памяти и ветвлений сверх самой логики — он тривиально встраивается компилятором.
Как выглядит результат
// Generated by BoolFlow
#include <cstdint>

struct half_adder_out {
  bool out_0;
  bool out_1;
};

half_adder_out half_adder(bool in_0, bool in_1) {
  half_adder_out r;
  r.out_0 = in_0 ^ in_1;
  r.out_1 = in_0 && in_1;
  return r;
}

Комбинационные схемы ложатся на выражения без потерь. Элементам с состоянием нужно где-то хранить его между вызовами, поэтому они обрабатываются отдельно — для тактируемого проекта просмотрите сгенерированный код, прежде чем на него полагаться.

Читать: основы булевой алгебры