Logo

Praktische Elektronik


LogicBuddy minimiert logische Funktionen


Home

Software-Werkzeuge für den Elektroniker

LogicBuddy

Dokumentation


LogicBuddy

Inhaltsverzeichnis


LogicBuddy

LogicBuddy Version 0.2.3 Freigabe alpha 2016_12_08

Diese Software unterliegt dem Copyright © 2000 - 2016 von Heiner Kuhlmann
http://Praktische-Elektronik.dr-k.de.

Es ist freie Software lizenziert unter:
o The Artistic License 2.0
o GNU LESSER GENERAL PUBLIC LICENSE Version 3

Lizenzen von LogicBuddy

LogicBuddy minimiert logische Funktionen.

Für alle wichtigen Felder und Buttons wird beim Berühren mit der Maus eine Kurzhilfe (Ballon-Hilfe) angezeigt.

Hilfe zur Hilfe: Klick

Buttons der Steuerleiste

LogicBuddy beenden.

Für alle wichtigen Felder und Buttons wird beim Berühren mit der Maus eine Kurzhilfe (Ballon-Hilfe) angezeigt. Mit diesem Button kann die Ballon-Hilfe ein- und ausgeschaltet werden.

Die Sprache auswählen.

Anzeige dieses Hilfe-Dialogs.

Nachrichten anzeigen.

Die aktuelle Lösung in einem eigenen Fenster anzeigen.

Logische Funktion eingeben und bearbeiten.

Logische Funktion in den Editor kopieren.

NAND

Logik auswählen.

Neue Tabelle definieren.

Logische Funktion lösen.

Status: Übereinstimmung zwischen logischer Funktion und Tabelle

Tabelle entspricht nicht logischer Funktion

Tabelle und logische Funktion stimmen nicht überein und Fehlermeldung

Keine logische Funktion definiert

Tabelle entspricht logischer Funktion

Übereinstimmung zwischen logischer Funktion und Tabelle aber mit Warnung

Unterfenster im Dialog

Fenster mit letzter Lösung

Wahrheitstabelle

Lizenzen von LogicBuddy

LogicBuddy ist in Perl geschrieben.
LogicBuddy unterliegt der der 'The Artistic License' von Perl und der 'GNU LESSER GENERAL PUBLIC LICENSE Version 3'.

Die paketierte Version von LogicBuddy enthält espresso.

espresso

Unter Windows:

Die paketierte Version von LogicBuddy enthält Strawberry Perl.

Strawberry Perl

Lizenzen

The Artistic License 2.0

GNU Lesser General Public License

Hilfe zur Hilfe

Hilfe-Fenster enthalten Texte und Bilder zu einem Thema oder Dialog. Verweise auf weitere Hilfen werden blau dargestellt. Sie öffnen ein neues Hilfe-Fenster. Einige Bilder können durch anklicken vergrößert werden.

Hilfe zur Hilfe

Logik auswählen

Es gibt mehrere Weisen, die Ergebnisfunktionen darzustellen

Es sind:

NAND

NAND und NOT verwenden.

Die logischen Funktionen werden mit
'NAND' und 'NOT' beschrieben.

AND OR

AND , OR und ^ für NOT.

Die logischen Funktionen werden mit
'AND' und 'OR' sowie '^' für 'NOT' beschrieben.

Neue Tabelle definieren

verringern

erhöhen

Abbruch

Ok

Fenster mit letzter Lösung

Im Fenster mit der letzten Lösung wird für alle Funktionen (Ausgangsvariablen) die minimale Lösung angezeigt. Die einzelnen Ausdrücke werden je nach der gewählten Logik (im Beispiel NAND) dargestellt. Die Lösung wird aktualisiert, wenn die Wahrheitstabelle geändert wird. Der Inhalt kann mit Copy <Strg + c> und Paste <Strg + v> übertragen werden. Für umfangreiche Lösungen kann ein eigener Dialog für die Lösung geöffnet werden:

Die aktuelle Lösung in einem eigenen Fenster anzeigen.

Es gibt mehrere Weisen, die Ergebnisfunktionen darzustellen

Es sind:

NAND

NAND und NOT verwenden.

Die logischen Funktionen werden mit
'NAND' und 'NOT' beschrieben.

AND OR

AND , OR und ^ für NOT.

Die logischen Funktionen werden mit
'AND' und 'OR' sowie '^' für 'NOT' beschrieben.

Wahrheitstabelle

Die Wahrheitstabelle besteht aus vier Bereichen:

Der Kopfzeile mit den Namen der Eingangsvariablen (gelb) und logischen Funktionen bzw. Ausgangsvariablen (grau). Die Felder mit Eingangsvariablen und Ausgangsvariablen können angeklickt werden. Dann öffnet sich ein Dialog zum Ändern des Namens.

Die linke Spalte numeriert die Zeilen. Ein Klick aktiviert:

Gruppe von Tabelleneinträgen ändern.

Die gelben Felder in der Mitte stellen alle möglichen Kombinationen der Eingangsvariablen dar.

Die grauen Felder auf der rechten Seite beinhalten die Werte der logischen Funktionen, jede in einer eigenen Spalte. Durch Anklicken ändern die einzelnen Felder die Werte von 0 - 1 - d .

Gruppe von Tabelleneinträgen ändern

012

Zeile der Tabelle
Gruppe von Tabelleneinträgen ändern unter Verwendung der Werte der aktuellen Reihe

a

Namen der Eingangsvariablen ändern

x1

Namen der Ausgangsvariablen ändern

0

Logischer Wert 0.

1

Logischer Wert 1.

d

Logischer Wert ist egal.

Gruppe von Tabelleneinträgen ändern

Eine Gruppe von Tabelleneinträgen kann mit diesem Dialog geändert werden. Nur die Knöpfe im oberen Fenster sind aktiv. Die Wahrheitstabelle im unteren Fenster zeigt nur die Änderungen in ROT an. Die Buttons in der Wahrheitstabelle sind ohne Wirkung.

01

Die selektierten Zeilen werden durch rote Werte der Eingangsvariablen hervorgehoben.

01d

Die geänderten Werte von Funktionen werden rot dargestellt.

Namen einer Variablen ändern

Namen eingeben
Namen bestehen aus maximal 4 Buchstaben (a-z) und Ziffern,
Sie beginnen mit einem Buchstaben und können einzelne Unterstriche enthalten.

Dialog abbrechen, keine Änderung.

Änderung akzeptieren.

Gruppe von Tabelleneinträgen ändern

Eine Gruppe von Tabelleneinträgen kann mit diesem Dialog geändert werden. Nur die Knöpfe im oberen Fenster sind aktiv. Die Wahrheitstabelle im unteren Fenster zeigt nur die Änderungen in ROT an. Die Buttons in der Wahrheitstabelle sind ohne Wirkung.

Die obere Reihe der Felder stellt die Eingangsvariablen (gelb) und die Funktionen (grau) dar.

?

In der unteren Reihe wird im linken grauen Feld die Zeilennummer in der Wahrheitstabelle angegeben. Ein '?' zeigt an, dass mehrere Zeilen ausgewählt sind. Die mittleren gelben Felder stellen den Wert der Eingangsvariablen dar: '0', '1' oder 'A' für 'beliebig'. Mit dem 'A' werden mehrere Zeilen der Wahrheitstabelle ausgewählt. Die rechten grauen Felder stellen die Werte der Funktionen dar: '0', '1', 'd' oder 'X' für 'nicht ändern'. Mit dem 'X' werden die Werte der entsprechenden Funktion nicht geändert. Die Werte der Funktionen werden in die selektierten Zeilen der Wahrheitstabelle eingetragen.

1

Die Werte der Eingangsvariablen und Funktionen werden durch Klicks zyklisch geändert.

0

Logischer Wert 0.

1

Logischer Wert 1.

A

Logischer Wert 0 und 1.

d

Logical value dosent care.

X

Logischer Wert wird nicht geändert.

Änderungen übernehmen.

Änderungen verwerfen.

Wahrheitstabelle

Wahrheitstabelle

01

Die selektierten Zeilen werden durch rote Werte der Eingangsvariablen hervorgehoben.

01d

Die geänderten Werte von Funktionen werden rot dargestellt.

Nachrichten

Nachrichten verbergen.

Nachrichten löschen.

LogicBuddy Editor

Logische Funktion eingeben und bearbeiten.

Buttons der Steuerleiste

Editor-Dialog schließen. Die Inhalte des Dialogs bleiben erhalten.

Anzeige dieses Hilfe-Dialogs.

Nachrichten anzeigen.

Die eingegebene logische Funktion wird überprüft, die entsprechende Wahrheitstabelle in den Hauptdialog eingetragen und die Funktion minimiert.

Logische Funktion löschen.

Logische Funktion vorwärts wiederherstellen.

Logische Funktion rückwärts wiederherstellen.

Status: Übereinstimmung zwischen logischer Funktion und Tabelle

Tabelle entspricht nicht logischer Funktion

Tabelle und logische Funktion stimmen nicht überein und Fehlermeldung

Keine logische Funktion definiert

Tabelle entspricht logischer Funktion

Übereinstimmung zwischen logischer Funktion und Tabelle aber mit Warnung

Status:

Beschreibt, wie die aktuelle logische Funktion und die Wahrheitstabelle im Hauptdialog zusammen passen.

Automatische Fehlerkorrektur

Automatische Fehlerkorrektur

Unterfenster im Dialog

Editor-Fenster

Fehlermeldungen

Die Fehlermeldungen sind auch im Nachrichtenfenster enthalten.

Syntax logischer Funktionen

Beispiele logischer Funktionen

Regeln logischer Funktionen

Syntax logischer Funktionen ( Deutsch )

Vollständige Syntax logischer Funktionen

Reservierte Worte

Editor-Fenster

Hier die logische Funktion eingeben.

In diesem Fenster können Texte wie in jedem Text-Fenster eingegeben, verändert und gelöscht werden. Der Inhalt kann mit Copy <Strg + c> und Paste <Strg + v> übertragen werden.

Spezielle Tasten

F1

Diese Hilfe

F2

Regeln logischer Funktionen ( Deutsch )

F3

Syntax logischer Funktionen ( Deutsch )

F4

Beispiele logischer Funktionen ( Deutsch )

Syntax-Hervorhebung

Variablen

Reservierte Worte

Comment

Automatische Fehlerkorrektur

Automatische Fehlerkorrektur

Syntax logischer Funktionen

Beispiele logischer Funktionen

Regeln logischer Funktionen

Syntax logischer Funktionen ( Deutsch )

Vollständige Syntax logischer Funktionen

Reservierte Worte

Fehlermeldungen

Zeigt die letzte Fehlermeldung beim Überprüfen der logischen Funktion.

Der Inhalt kann mit Copy <Strg + c> und Paste <Strg + v> übertragen werden.

Die Fehlermeldungen sind auch im Nachrichtenfenster enthalten.

Automatische Fehlerkorrektur

Die eingegebene logische Funktion wird überprüft.

Einige Fehler werden automatisch im Editor korrigiert. Sie werden im Editor-Fenster unterstrichen. Wenn der Cursor im korrigierten Text ist, kann die Korrektur mit <F5> akzeptiert werden.
Jede Änderung akzeptiert die Korrektur.

F5

Korrektur akzeptieren

Korrekturen verwerfen.
Logische Funktion rückwärts wiederherstellen.

Korrekturen akzeptieren.
Die eingegebene logische Funktion wird überprüft, die entsprechende Wahrheitstabelle in den Hauptdialog eingetragen und die Funktion minimiert..

Logische Funktion löschen.

Status

Status: Übereinstimmung zwischen logischer Funktion und Tabelle

Tabelle entspricht nicht logischer Funktion

Tabelle und logische Funktion stimmen nicht überein und Fehlermeldung

Keine logische Funktion definiert

Tabelle entspricht logischer Funktion

Übereinstimmung zwischen logischer Funktion und Tabelle aber mit Warnung

Beispiele logischer Funktionen

Regeln logischer Funktionen

Syntax logischer Funktionen ( Deutsch )

Vollständige Syntax logischer Funktionen

Reservierte Worte

Eingang = a, b, c, d.
x = a und b. # Kommentar bis zum Ende der Zeile
y = c oder d.
v = wahr wenn d und nicht a.
z = y und ( nicht a oder nicht c ).
x = beliebig wenn nicht c.
Ausgang = x, z.

Regeln logischer Funktionen

Beispiele logischer Funktionen

Syntax logischer Funktionen ( Deutsch )

Vollständige Syntax logischer Funktionen

Reservierte Worte

'Eingang ...' ist die erste Aussage

'Ausgang ...' ist die letzte Aussage

Jede Aussage endet mit einem '.' Punkt.

Alle Variablen beginnen mit 'a' ... 'z'.
Diese Variablen dürfen maximal 4 Zeichen lang sein, Ziffern und '_' enthalten.

Alle normalen Aussagen beginnen mit einer Variablen.

UND vor ODER: UND wird vor ODER berechnet.

NICHT bezieht sich nur auf das unmittelbar folgende.

Klammern '(' werden zuerst ausgewertet

Bei Unklarheit Klammern setzen.

WAHR und FALSCH sind erlaubt.

Eine spätere Aussage geht über eine vorherige.

Bei WENN erhält die Variable nur dann den Wert, wenn die Aussage hinter WENN zutrifft.

Jede Variable hat den anfänglichen Wert FALSCH.

Aussagen mit BELIEBIG dürfen nur unmittelbar vor AUSGANG stehen.

Groß- und Kleinschreibung ist erlaubt.

Kommentare beginnen mit # und gehen bis zum Ende einer Zeile.

Reservierte Worte

AND
OR
NOT
NAND
NOR
and
or
not
Input
Output
when
is
are
false
true
any
und
oder
nicht
Eingang
Ausgang
wenn
ist
sind
falsch
wahr
beliebig

Äquivalente reservierte Worte

Input   Eingang   
Output Ausgang
is ist
and und
or oder
not nicht ^
when wenn
false falsch 0
true wahr 1
any beliebig

Syntax logischer Funktionen

Beispiele logischer Funktionen

Regeln logischer Funktionen

Vollständige Syntax logischer Funktionen

Reservierte Worte


LOGIK ::= EINGANG ZUWEISUNGEN AUSGANG;

EINGANG ::= 'Eingang' ( '=' | 'ist' | 'sind' ) LISTE_DER_EINGAENGE '.';

LISTE_DER_EINGAENGE ::= NAME { ',' NAME };

NAME ::= [a-zA-Z] [a-zA-Z0-9_]*;

AUSGANG ::= 'Ausgang' ( '=' | 'ist' | 'sind' ) LISTE_DER_AUSGAENGE '.';

LISTE_DER_AUSGAENGE ::= { NAME | ',' NAME };

ZUWEISUNGEN ::= ZUWEISUNG { '.' ZUWEISUNG } '.';

ZUWEISUNG ::= AUSGANGS_NAME ( '=' | 'ist' ) ( BELIEBIG_BEDINGUNG | WERT );

WERT ::= AUSDRUCK [ BEDINGUNG ];

BELIEBIG_BEDINGUNG ::= 'beliebig' BEDINGUNG;

BEDINGUNG ::= 'wenn' AUSDRUCK;

AUSDRUCK ::= [ NICHT ] TERM { 'und' [ NICHT ] TERM };

NICHT ::= ( 'nicht' | '^' );

TERM ::= FAKTOR { 'oder' FAKTOR };

FAKTOR ::= [ NICHT ] ( NAME | '(' AUSDRUCK ')' );

NAME ::= AUSGANGS_NAME | EINGANGS_NAME | FUNKTIONS_AUFRUF |
'wahr' | 'falsch' | '1' | '0';

FUNKTIONS_AUFRUF ::= FUNKTIONS_NAME '(' LISTE_DER_AUSDRUECKE ')';

FUNKTIONS_NAME ::= 'NAND' | 'NOR';

LISTE_DER_AUSDRUECKE ::= AUSDRUCK { ',' AUSDRUCK };

Vollständige Syntax logischer Funktionen

Beispiele logischer Funktionen

Regeln logischer Funktionen

Syntax logischer Funktionen ( Deutsch )

Reservierte Worte


LOGIC ::= INPUT ASSIGNMENTS OUTPUT;

INPUT ::= ( 'Input' | 'Eingang' )
( '=' | 'is' | 'are' | 'ist' | 'sind' )
LIST_OF_INPUTS '.';

LIST_OF_INPUTS ::= NAME { ',' NAME };

NAME ::= [a-zA-Z] [a-zA-Z0-9_]*;

OUTPUT ::= ( 'Output' | 'Ausgang' )
( '=' | 'is' | 'are' | 'ist' | 'sind' )
LIST_OF_OUTPUTS '.';

LIST_OF_OUTPUTS ::= { NAME | ',' NAME };

ASSIGNMENTS ::= ASSIGNMENT { '.' ASSIGNMENT } '.';

ASSIGNMENT ::= NAME ( '=' | 'is' | 'ist' ) ( ANY_CONDITION | VALUE );

VALUE ::= EXPRESSION [ CONDITION ];

ANY_CONDITION ::= ( 'any' | 'beliebig' ) CONDITION;

CONDITION ::= ( 'when' | 'wenn' ) EXPRESSION;

EXPRESSION ::= [ NOT ] TERM { ( 'and' | 'und' ) [ NOT ] TERM };

NOT ::= ( 'not' | 'nicht' | '^' ) ;

TERM ::= FACTOR { ( 'or' | 'oder' ) FACTOR };

FACTOR ::= [ NOT ] ( NAME | '(' EXPRESSION ')' );

NAME ::= OUTPUT_NAME | INPUT_NAME | FUNCTION_CALL |
'true' | 'false' | 'wahr' | 'falsch' | '1' | '0';

FUNCTION_CALL ::= FUNCTION_NAME '(' LIST_OF_EXPRESSIONS ')';

FUNCTION_NAME ::= 'NAND' | 'NOR' ;

LIST_OF_EXPRESSIONS ::= EXPRESSION { ',' EXPRESSION };

espresso

Espresso ist ein Logik Minimierer für zwei Ebenen (PLA) der University of California, Berkeley.

Die paketierte Version von LogicBuddy enthält espresso.

Download

http://www.ecs.umass.edu/ece/labs/vlsicad/ece667/links/espresso.html

Strawberry Perl

Strawberry Perl ist eine Distribution der Programmiersprache Perl für Microsoft Windows

Die paketierte Version von LogicBuddy enthält Strawberry Perl.

Download

http://strawberryperl.com/

The Artistic License 2.0

Diese Software unterliegt dem Copyright © 2000 - 2016 von Heiner Kuhlmann
http://Praktische-Elektronik.dr-k.de.

Es ist freie Software lizenziert unter:
o The Artistic License 2.0
o GNU LESSER GENERAL PUBLIC LICENSE Version 3

artistic.txt

GNU Lesser General Public License

Diese Software unterliegt dem Copyright © 2000 - 2016 von Heiner Kuhlmann
http://Praktische-Elektronik.dr-k.de.

Es ist freie Software lizenziert unter:
o The Artistic License 2.0
o GNU LESSER GENERAL PUBLIC LICENSE Version 3

lgpl-3.0.txt