C++ exportieren

Funktionsname:

Eine Schaltung nach C++ exportieren

Diesen Export bietet kein anderer browserbasierter Logiksimulator. Statt einer Hardwarebeschreibung gibt Boolflow den Schaltplan als gewöhnliches C++ aus: Jedes Gatter wird zu einem booleschen Ausdruck, die gesamte Schaltung zu einer aufrufbaren Funktion.

Damit wird eine gezeichnete Schaltung außerhalb des Simulators ausführbar. Die Funktion lässt sich in einen Unit-Test einsetzen, um einen Entwurf gegen erwartete Werte zu prüfen, in Firmware einbetten, wo eine Nachschlagetabelle zu groß wäre, oder als schnelles Referenzmodell bei der Validierung einer HDL-Implementierung nutzen. Da es sich um reines C++ ohne Abhängigkeiten jenseits der Standardbibliothek handelt, übersetzt es überall: GCC, Clang, MSVC oder eine Embedded-Toolchain.

  • Der Funktionsmodus gibt eine einzelne Funktion aus: ein bool je Eingang, als Rückgabe eine Struktur mit den Ausgängen.
  • Der Programmmodus verpackt sie in ein vollständiges main(), das die Ergebnisse ausgibt — sofort kompilier- und ausführbar.
  • Der erzeugte Code kommt ohne Speicherallokation und ohne Verzweigungen jenseits der Logik selbst aus.
So sieht die Ausgabe aus
// 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;
}

Kombinatorische Schaltungen lassen sich verlustfrei auf Ausdrücke abbilden. Zustandsbehaftete Elemente brauchen einen Speicher zwischen den Aufrufen und werden daher gesondert behandelt.

Lesen: Grundlagen der booleschen Algebra