Inhaltsverzeichnis:
Allgemeine Beschreibung von Schaltwerken
Systematischer Entwurf von Schaltwerken
-Zustandsdiagramm
-Entwurfsbeispiel für einen umschaltbaren Zähler
3. Reduzierung des Speicherplatzes
-Aufteilung in Programm- und Ausgabe ROM
-Eingangsmultiplexer
1.Allgemeine Beschreibung von Schaltwerken
Unter einem Schaltwerk versteht man eine Anordnung zur Durchführung logischer Verknüpfungen mit der zusätzlichen Fähigkeit, einzelne Variablenzustände zu speichern. Die Ausgangsvariablen yj hängen im Unterschied zum Schaltnetz nicht nur von den Eingangsvariablen xi ab, sondern zusätzlich von der Vorgeschichte, die durch den Schaltzustand von Flip-Flops repräsentiert wird.
Allgemein gehören zu den Schaltwerken auch Flip Flops, Zähler und Schieberegister.
2.Systematischer Entwurf von Schaltwerken:
Zustandsdiagramm:
Um ein Schaltwerk systematisch entwerfen zu können, benötigt man zuerst eine möglichst übersichtliche Beschreibung der Aufgabenstellung. Dazu gehen wir von dem allgemeinen Blockschaltbild aus.
xQualifier
Wie schon gesagt hängen die Ausgangsvariablen yj nicht nur von den Eingangsvariablen xi , sondern vom vorhergehenden Zustand des Systems ab. Alle logischen Variablen des Systems, die neben den Eingangsvariablen den Übergang in den nächsten Zustand beeinflussen, heißen Zustandsvariablen zn. Damit sie beim nächsten Takt wirksam werden können, werden sie im Zustandsvariablenspeicher für einen Takt gespeichert.
Die Menge der Eingangsvariablen xi heißt Eingangsvektor:
X =
Die Menge der Ausgangsvariablen yj heißt Ausgangsvektor:
Y =
Die Menge der Zustandsvariablen zn heißt Zustandsvektor:
Z =
Die verschiedenen Zustände, die das Schaltwerk durchläuft, bezeichnen wir als SZ. zur Vereinfachung der Schreibweise liest man den Zustandsvektor zweckmäßigerweise als Dualzahl und schreibt als Index einfach die entsprechende Dezimalzahl an.
Der neue Zustand S(tk+1) wird einerseits vom alten Zustand S(tk) und andererseits von den Eingangsvariablen xi bestimmt. Die Reihenfolge, in der die Zustände durchlaufen werden, kann also mit Hilfe der Eingangsvariablen beeinflußt werden. Die entsprechende Zuordnung wird so vorgenommen: Legt man an seine Eingänge den alten Zustandsvektor Z(tk) an, tritt an seinem Ausgang der neue Zustandsvektor Z(tk+1) auf. Der entsprechende Systemzustand soll bis zum nächsten Taktimpuls bestehen bleiben. Der Zustandsvektor Z(tk+1) darf demnach erst mit dem nächsten Taktimpuls and die Ausgänge übertragen werden. Aus diesem Grund muß man flankengesteuerte Flip-Flops verwenden.
Es gibt einige wichtige Spezialfälle von Schaltwerken: Ein Sonderfall ist z.B. der, daß man die Zustandsvariablen direkt als Ausgänge verwenden kann. Eine zweite Vereinfachung tritt dann auf, wenn die Reihenfolge der Zustände immer dieselbe ist. Dann benötigt man keine Eingangsvariablen. So sind z. B. Zähler aufgebaut.
Zur allgemeinen Beschreibung der Zustandsfolge verwendet man ein Zustandsdiagramm.(Zustandsdiagramm= Bubble Diagramm)
Jeder Zustand SZ des Systems wird durch einen Kreis repräsentiert. Der Übergang von einem Zustand in den anderen wird durch einen Pfeil gekennzeichnet. Die Bezeichnung des Pfeils gibt an, unter welcher Bedingung der Übergang stattfinden soll. Bei diesem Beispiel folgt auf den Zustand S(tk) = S1 der Zustand S(tk+1) = S2, wenn x1=1 ist. Bei x1 = 0 hingegen wird S(tk+1) = S0. Ein unbeschrifteter Pfeil bedeutet einen unbedingten Übergang.
Bei einem synchronen Schaltwerk ist noch eine zusätzliche Bedingung zu beachten, daß ein Übergang nicht schon in dem Augenblick erfolgt, in dem die Übergangsbedingung wahr wird, sondern erst bei der darauf folgenden Taktflanke. Da diese Einschränkung für alle Übergänge im System gilt, trägt man sie in der Regel nicht zusätzlich in das Zustandsdiagramm ein, sondern vermerkt sie in der Beschreibung. Im folgenden wollen wir uns auf die Behandlung synchroner Schaltwerke beschränken, da ihr Entwurf unproblematisch ist.
Wenn sich das System in einem Zustand SZ befindet und keine Übergangsbedingung wahr ist, die von diesem Zustand wegführt, bleibt das System im Zustand SZ. Diese an und für sich selbstverständliche Tatsache kann man in Einzelfällen noch besonders hervorheben, indem man einen Übergangspfeil in das Diagramm einträgt, der von SZ nach SZ zurück führt (Wartezustand). Im voherigen Bsp. haben wir einen solchen Übergang als Bsp. bei dem Zustand S2 eingezeichnet.
Nach dem einschalten der Betriebsspannung muß ein Schaltwerk in einen definierten Anfangszustand gebracht werden. Dazu dient die Bedingung "pon" (Power on ). Sie wird mit Hilfe einer besonderen Einschaltlogik für eine kurze Zeit nach dem Einschalten der Betriebsspannung auf Eins gesetzt und ist sonst Null. Mit diesem Signal löscht man in der Regel den Zustandsvariablenspeicher, in dem man es an den Reset Eingängen der Flip-Flops anschließt.
Die Funktion eines Schaltwerkes läßt sich statt mit einem Zustandsdiagramm auch mit einem Flußdiagramm darstellen.
Diese Darstellung führt auf die Realisierungsmöglichkeit eines Schaltwerkes mit Hilfe eines Mikrocomputers.
Entwurfsbeispiel für einen umschaltbaren Zähler:
Als Beispiel wollen wir einen Zähler entwerfen, dessen Zählzyklus 0, 1, 2, 3 oder 0, 1, 2 lautet, je nachdem, ob die Steuervariable x gleich Eins oder Null ist. Das entsprechende Zustandsdiagramm zeigt das folgende Bild.
Da das System 4 Zustände (2 2) annehmen kann, benötigen wir 2 Flip-Flops zur Speicherung des Zustandsvektors Z mit den Variablen z0 und z1. Da man an diesen Variablen unmittelbar den Zählerstand ablesen kann, dienen sie gleichzeitig als Ausgangsvariablen. Zusätzlich soll bei Zmax noch ein Übertrag y ausgegeben werden, d.h. wenn im Fall x=1 der Zählerstand Z=3 oder im Fall x=0 der Zählerstand Z=2 ist.
Damit wir die Schaltung erhalten benötigen wir die Wahrheitstabelle.
Auf der linken Seite der Tabelle sind alle Wertekombinationen aufgeführt, die Eingangs- und Zustandsvariablen annehmen können. Aus dem Zustandsdiagramm kann man für jede Kombination ablesen, welches der nächste Zustand ist. Er ist auf der rechten Seite der Tabelle aufgeführt. Zusätzlich ist der jeweilige Wert der Übertragungsvariablen y eingetragen.
Realisiert man das Schaltwerk als ROM, kann man die Wahrheitstabelle unmittelbar als Programmiertabelle verwenden. Dabei dienen die Zustands- und Eingangsvariablen als Adressvariablen. unter der jeweiligen Adresse speichert man den neuen Wert Z´ des Zustandsvektors Z und der Ausgangsvariablen y. Zur Realisierung des Zählerbeipieles benötigen wir demnach ein ROM mit 8 Worten a 3 bit. Das kleinste Prom besitzt 32 Worte a 8 bit. Es wird also nur ein Zehntel der Speicherkapazität belegt.
Aus der Wahrheitstabelle können wir folgende Schaltfunktion aufstellen:
Damit ergibt sich die Realisierung des Schaltwerkes mit Gattern.
Man erkennt daß der Aufwand an integrierten Schaltungen um ein Vielfaches größer ist als bei der Verwendung eines ROMs. Eine andere Alternative zur komplexen Realisierung der Schaltung besteht im Einsatz von programmierbaren logischen Schaltungen. Sowohl ROMs als auch PDLs ermöglichen nicht nur eine 1 Chip Lösung sondern besitzen außerdem noch den entscheidenden Vorteil der Flexibilität: Man braucht lediglich den Baustein neu zu programmieren und erhält ohne zusätzliche Anderungen eine Schaltung mit anderen Eigenschaften.
Die Realisierung eines Schaltwerkes mit Gattern ist demnach nur in einfachen Sonderfällen empfehlenswert, z.B. bei Standardzählern.
3.Reduzierung des Speicherplatzbedarfs:
Beim Aufbau sehr komplexer Schaltwerke kommt man jedoch auch bei der Lösung mit einem ROM sehr bald an eine Grenze, bei der die erforderliche Speicherkapazität exzessiv ansteigt. Im folgenden werden einige Kunstgriffe angegeben, mit denen sich dieses Problem weitgehend beseitigen läßt.
Wie man bei der Grundschaltung erkennt, besitzt das i Schaltwerk enthaltene Schaltnetz n+l Eingänge und n+m Ausgänge. Darin ist n die Zahl der Zustandsvariablen, l die Zahl der Eingangsvariablen und m die Zahl der Ausgangsvariablen. Bei der Realisierung mit einem ROM ergibt sich demnach eine Speicherkapazität von:
2 n+l Worte a (n+m) bit = (n+m) 2 n+ l bit
Man hat dabei die Möglichkeit, jeder Kombination von Zustands- und Eingangs- variablen einen bestimmten Ausgangsvektor Y zuzuordnen.
Aufteilung in Programm- und Ausgabe ROM:
In der Praxis ist es so, daß die Werte der meisten Ausgangsvariablen bereits vollständig durch die Zustandsvariablen bestimmt sind und nur wenige von einem Teil der Eingangsvariablen abhängen.
Aufgrund dieser Tatsache bietet es sich an, das ROM in zwei ROMs aufzuspalten.
Das erste ist das "Programm ROM". Es enthält nur noch die Folge der Systemzustände und keine Ausgangszustände. Diese werden in dem "Ausgabe ROM" aus den Zustandsvariablen gebildet. Deshalb ist l2 in der Regel kleiner gegenüber l. Es kann auch Fälle geben, bei denen eine Eingangsvariable nur einen Einfluß auf die Ausgabecodierung hat und nicht auf die Zustandsfolge. Solche Eingangsvariablen kann man bei der Aufteilung gemäß dem voherigen Bild direkt am Ausgabe ROM anschließen und beim Programm ROM weglassen. Deshalb kann auch l1 kleiner l sein.
Da an den beiden ROMs nur diejenigen Eingangsvariablen angeschlossen sind, die zur Ablauf- bzw. Ausgabesteuerung tatsächlich benötigt werden, ergibt sich eine wesentliche Reduzierung des Speicherplatzbedarfs. Der ungünstige Fall ist derjenige, daß bei beiden ROMs alle l Eingangsvariablen benötigt werden. Dann wird die erforderliche Speicherkapazität der beiden ROMs zusammen gerade so groß wie die des einen ROMs bei der Prinzipiellen Anordnung eines Schaltwerkes.
Bezüglich der Speicherkapazität tritt dann also keine Ersparnis ein. Trotzdem ist auch in diesem Fall die Aufspaltung in zwei ROMs vorteilhaft: Man kann damit das System leichter verschiedenen Randbedingungen anpassen. Es gibt viele Fälle, in denen die Zustandsfolge identisch ist, und sich nur die Ausgabe -Instruktionen unterscheiden. Dann braucht man zur Anpassung nur das Ausgabe ROM auszutauschen, während das Programm ROM unverändert bleibt.
Eingangsmultiplexer:
Es gibt noch eine andere Eigenschaft praktischer Schaltwerke, die sich zur Reduktion des Speicherplatzbedarfs ausnutzen läßt: Häufig ist die Zahl l der Eingangsvariablen so groß, daß die Zahl der Adressvariablen eines ROMs bei weitem überschritten wird. Andererseits werden von den 2l Kombinationsmöglichkeiten nur relativ wenige Kombinationen ausgenutzt; mitunter nur l verschiedene. Deshalb bietet es sich an, die Eingangsvariablen nicht direkt als Adressvariablen zu verwenden, sondern mit Hilfe eines Multiplexers in jedem Zustand nur die jeweils interessierenden Variablen abzufragen. Damit ergibt sich das Blockschaltbild:
Neben den Zustandsvariablen wird noch der Ausgang x des Multiplexers an den Adresseneingängen des ROMs angeschlossen. Der Multiplexer wird mit Hilfe einiger zusätzlicher Ausgänge des ROMs mit der Dualzahl Q angesteuert. Die damit ausgewählte Eingangsvariable bezeichnet man xQ.
Wenn bei einem Übergang mehrere Eingangsvariablen abgefragt werden sollen, muß man die Abfrage bei diesem Verfahren nacheinander durchführen, da jeweils nur eine Variable ausgewählt werden kann. Dazu zerlegt man den betreffenden Zustand in mehrere Unterzustände, bei denen jeweils nur eine Eingangsvariable abgefragt wird. Dadurch ergibt sich insgesamt eine größere Zahl von Systemzuständen, die mit Hilfe einiger zusätzlicher Zustandsvariablen dargestellt werden können. Dieser zusätzliche Aufwand ist jedoch klein gegenüber der Einsparung an Speicherplätzen durch die Multiplexabfrage der Eingangsvariablen.
Haupt | Fügen Sie Referat | Kontakt | Impressum | Nutzungsbedingungen