7.3.1 Textuelle Beschreibung

Zur textuellen Beschreibung einer Schaltfunktion kann man benutzen:

(a) die Umgangssprache
(b) die übliche formale Notation
(c) eine spezielle Beschreibungssprache
(d) einen algebraischen Ausdruck
(e) eine Tabellenform

Als Beispiel wird der sog. 2-zu-1-Multiplexer mit den binären Variablen a, b, c in diesen fünf Möglichkeiten beschrieben:

(a) Eine mögliche Beschreibung des Multiplexers ist:

"f entspricht der Zusammenführung zweier Einbahnstraßen a und b in eine dritte x . Die Zusammenführung wird mit einer Ampel geregelt, die mit der Variablen c von der einen zur anderen Straße umgeschaltet wird: c = 0 liefert x = a , c = 1 liefert x = b "

Der umgangssprachlichen Beschreibung ist nicht unmittelbar anzusehen, ob sie auch so verstanden wird, wie der Schreibende es gemeint hat. Häufig ist solch eine Beschreibung auch unvollständig.

(b) Eine formale Notation ist die folgende

f(a,b,c) = a für c = 0 ; f(a,b,c) = b für c = 1

(c) Programmiersprachen dienen der Realisierung von Anwendungen auf dem Rechner. Hardwareentwurfssprachen sind dagegen so konzipiert, dass das Verhalten von Systemen beschrieben werden kann, ohne dass einer Realsierung vorgegriffen wird. Der Multiplexer ist aber ein sehr einfaches Beispiel, dass wir hier als Definition einer ablauffähigen MATLAB-Funktion schreiben wollen:

mux = inline('(a&~c)|(b&c)', 'a','b','c')   % Definition der Schaltfunktion  mux(a,b,c) in MATLAB

Nach diesem Aufruf ist die Schaltfunktion mux dem System bekannt und kann benutzt werden:

z = 0;
for i=0:1
   for j=0:1  
      for k=0:1 
         z = z + 1;
         tabelle(z,:) = [i  j  k  mux(i,j,k)];
      end
   end
end
result2fig(tabelle)

Eine sehr verbreitete Hardware-Beschreibungssprache ist VHDL. Der Multiplexer wird hierin wie folgt beschrieben:

library ieee; use ieee.std_logic_1164.all
entity mux2 is
port(sel, d0, d1: in std_ulogic;
z: out std_ulogic);
end entity mux2;
architecture demo of mux2 is
begin
out_select: process(sel, d0, d1) is
begin
case sel is
when 0 =>
z <= d0;
when 1 =>
z <= d1;
end case;
end process out_select;
end architecture demo;

(d) Der Multiplexer kann als schaltalgebraischer Ausdruck z.B. in folgender Form geschrieben werden:

a∩c' b∩c

Ein solcher Ausdruck kann bei entsprechender Syntax auch als Berechnungsvorschrift dienen.

(e) Die Funktionstabelle für den Multiplexer ist

binexp2bintab('(a&~c)|(b&c)',{'a';'b';'c'},2)

Mit der Reihenfolge der Variablen ändert sich die äußere Form der Tabelle:

binexp2bintab('(a&~c)|(b&c)',{'c';'a';'b'},2)