# Schaltwerk (Technische Informatik)

Ein Schaltwerk (englisch sequential circuit) verarbeitet verschiedene Eingangswerte (boolesche Variablen) entsprechend der festgelegten Schaltmatrix zu einem Ausgangswert. Im Gegensatz zu Schaltnetzen, bei welchen definitionsgemäß keine Rückkopplungen vorliegen, ist bei einem Schaltwerk mindestens einer der Ausgänge auf mindestens einen der Eingänge rückgekoppelt, wodurch die Schaltung einen speichernden Charakter (ein Gedächtnis) erhält.
Ein Schaltwerk heißt „synchron“ wenn die Eingänge und Rückkopplungen durch Taktsignale synchronisiert sind, andernfalls heißt es „asynchron“.

## Grundlagen
### Asynchron-Schaltwerk

Um Eingangswerte entsprechend einer Vorgabe zu einem Ausgangswert zu verknüpfen gibt es viele Verfahren. Die Verknüpfung durch ein Schaltnetz ist ein vergessliches Verfahren, da zu jedem beliebigen Zeitpunkt der Ausgangswert immer nur vom zu diesem Zeitpunkt angelegten Eingangswert abhängt. Um aber Aufgaben zu lösen, die nicht nur von einer Momentaufnahme abhängig sind, benötigt man Schaltungen mit Gedächtnis, also eine Schaltung, die Eingangswerte zu einem bestimmten Zeitpunkt mit vor diesem Zeitpunkt entstandenen Werten verknüpft.
Das Asynchron-Schaltwerk ist die Grundform dieser Schaltungen. Es stellt die schaltungstechnische Realisierung eines booleschen Automaten dar und lässt sich, wie im Bild gezeigt, als Zusammenschaltung von zwei Schaltnetzen betrachten, welche die booleschen Funktionen f und g realisieren. Die Funktion f nimmt die Eingangswerte x und die Zustandswerte u, die zu einem Zeitpunkt t existieren, und verknüpft diese zu einem neuen Zustandsvektor u$^d$. Der Vektor u stellt dabei das zeitverzögerte, also im Gedächtnis gespeicherte vorherige Ergebnis der Funktion f dar. Die Zeitverzögerung (englisch delay) ist getrennt von dem Schaltnetz f durch das graue Kästchen dargestellt. Gleichzeitig werden zum Zeitpunkt t die Werte x und u durch die Funktion g zum Ausgangsvektor y verknüpft. Das graue Kästchen wird in Synchron-Schaltwerken durch Flipflops ersetzt.

### Synchron-Schaltwerk

In der Realität erzeugt jedes Schaltnetz sein Ergebnis erst nach einer gewissen Zeit, die von seinem Aufbau abhängt. Um also zu einem bestimmten Zeitpunkt anliegende Eingangswerte mit den richtigen zwischengespeicherten Werten zu verknüpfen, werden die Eingangssignale und die rückgekoppelten Ausgänge oft mit Hilfe von Flipflops und einem Taktsignal synchronisiert. Dieses Signal pulsiert in einer festgelegten Frequenz. Immer nach dem regelmäßigen Auftreten einer gleichen Sequenz im Signal ist eine Zeiteinheit vergangen. Die Abstände dieser Sequenzen werden so groß gewählt, dass in der Zwischenzeit alle Schaltnetze im Schaltwerk ihre Berechnungen abschließen können, d. h. alle beteiligten Gatterlaufzeiten, ggf. auch nacheinander (nämlich bei entsprechender Relevanz von Zwischenergebnissen), verstrichen sind. Dann liegt zum Beispiel zum Zeitpunkt 3 das Ergebnis y am Ausgang an, welches durch die Verknüpfung der Werte x und u, die zum Zeitpunkt 2 an g anlagen, zustande gekommen ist. Aus den gleichen Werten x und u zum Zeitpunkt 2 stellt sich zum Zeitpunkt 3 auch der neue, über Flipflops jedoch zurückgehaltene Wert u$^d$ an f ein. Der Wert u zum Zeitpunkt 2 ergab sich durch Taktung der Flipflops aus dem Wert u$^d$ zum Zeitpunkt 1, der sich wiederum aus den Werten x und u ergab, die zum Zeitpunkt 0 an f anlagen.

## Realisierung

Schaltwerke werden durch logische Schaltungen realisiert, die mit einzelnen Transistoren gebaut oder auf Wafern gefertigt sind. In den Anfängen der Computertechnik wurden anstelle der Transistoren Elektronenröhren verwendet. In der Digitaltechnik werden Synchron-Schaltwerke häufig mit Schieberegistern realisiert. Ein solches Schieberegister stellt für sich schon ein Synchron-Schaltwerk dar. In Schaltungen mit Prozessoren werden Schaltwerke oft als Programm realisiert und der Speicher der vorhergehenden Eingänge ist als Ringstruktur angelegt.

## Anwendungen

Fast jedes Gerät zur elektronischen Datenverarbeitung (Computer) verwendet in seinen Chips Schaltwerke. Auch in der Datenübertragung sind Schaltwerke wichtig, zum Beispiel basiert jede serielle Schnittstelle auf einem Schaltwerk. Insbesondere die Empfängerseite muss alle einzelnen Bits nacheinander einsammeln, damit nach acht Zyklen ein komplettes Byte zur Verfügung steht.