Kapitel 5 Schaltungen mit Delays. Kapitel 5: Schaltungen mit Delays Seite 1 / 68



Ähnliche Dokumente
Kapitel 4 Schaltungen mit Delays (Schaltwerke) Literatur: Oberschelp/Vossen, Kapitel 4. Kapitel 4: Schaltungen mit Delays Seite 1

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

7 Rechnen mit Polynomen

Eine Logikschaltung zur Addition zweier Zahlen

Primzahlen und RSA-Verschlüsselung

A.3. A.3 Spezielle Schaltnetze Prof. Dr. Rainer Manthey Informatik II 1

Codierungsverfahren SS Reed-Solomon-Codes zur Mehrblock-Bündelfehler-Korrektur

Zeichen bei Zahlen entschlüsseln

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen

Lineare Gleichungssysteme

1 Mathematische Grundlagen

Fachschaft Mathematik und Informatik (FIM) LA I VORKURS. Herbstsemester gehalten von Harald Baum

Theoretische Informatik SS 04 Übung 1

Elektrische Logigsystem mit Rückführung

Theoretische Grundlagen der Informatik WS 09/10

9 Multiplexer und Code-Umsetzer

2. Negative Dualzahlen darstellen

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

10. Elektrische Logiksysteme mit

Versuch Nr. 8c Digitale Elektronik I

Einführung in die Algebra

Grundlagen der Theoretischen Informatik, SoSe 2008

13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen.

Informationsblatt Induktionsbeweis

Lineare Gleichungssysteme

Füllstandsregelung. Technische Informatik - Digitaltechnik II

Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr.

Technische Informatik - Eine Einführung

Einführung in. Logische Schaltungen

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Mathematischer Vorbereitungskurs für Ökonomen

Einführung in die Kodierungstheorie

3 Verarbeitung und Speicherung elementarer Daten

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Binär Codierte Dezimalzahlen (BCD-Code)

Schaltwerke Schaltwerk

Kapitel 15. Lösung linearer Gleichungssysteme

Die reellen Lösungen der kubischen Gleichung

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

TECHNISCHE UNIVERSITÄT MÜNCHEN

Erstellen von x-y-diagrammen in OpenOffice.calc

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Repetitionsaufgaben Wurzelgleichungen

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Simulation LIF5000. Abbildung 1

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

Lineare Differentialgleichungen erster Ordnung erkennen

Binärdarstellung von Fliesskommazahlen

Anleitung über den Umgang mit Schildern

3.1. Die komplexen Zahlen

Oliver Liebold. NAND (negierte Undverknüpfung) L L H L H H H L H H H L

Tutorium zur Mikroökonomie II WS 02/03 Universität Mannheim Tri Vi Dang. Aufgabenblatt 3 (KW 44) ( )

Codierungstheorie Rudolf Scharlau, SoSe

Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10

Grundlagen der Technischen Informatik. Sequenzielle Netzwerke. Institut für Kommunikationsnetze und Rechnersysteme. Paul J. Kühn, Matthias Meyer

Musterlösungen zur Linearen Algebra II Blatt 5

Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai 2011

Bedienung des Web-Portales der Sportbergbetriebe

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

BITte ein BIT. Vom Bit zum Binärsystem. A Bit Of Magic. 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen?

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen.

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Bruchrechnung Wir teilen gerecht auf

Professionelle Seminare im Bereich MS-Office

Mathematische Maschinen

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

DIFFERENTIALGLEICHUNGEN

Lineare Codes. Dipl.-Inform. Wolfgang Globke. Institut für Algebra und Geometrie Arbeitsgruppe Differentialgeometrie Universität Karlsruhe 1 / 19

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird.

Grundtypen Flip-Flops

XONTRO Newsletter. Kreditinstitute. Nr. 18

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Manager. von Peter Pfeifer, Waltraud Pfeifer, Burkhard Münchhagen. Spielanleitung

Einführung in die Java- Programmierung

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Synchronisierung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73

Ergänzen Sie die Werte für y in dem unten angegebenen Ausschnitt der Schaltbelegungstabelle. Falsche Antworten führen zu Punktabzug.

Zwischenablage (Bilder, Texte,...)

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

Einführung in die Programmierung

Versuch P1-63 Schaltlogik Vorbereitung

Kap. 8: Speziell gewählte Kurven

Grundlagen der Videotechnik. Redundanz

Grundlagen der Informatik

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

Mandant in den einzelnen Anwendungen löschen

Quadratische Gleichungen

Dokumentation IBIS Monitor

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Algorithmen zur Integer-Multiplikation

Transkript:

Kapitel 5 Schaltungen mit Delays Kapitel 5: Schaltungen mit Delays Seite 1 / 68

Schaltungen mit Delays Inhaltsverzeichnis 5.1 Addierwerke 5.2 Lineare Schaltkreise und Schieberegister (LSR) 5.3 Anwendungen von LSR s Kapitel 5: Schaltungen mit Delays Seite 2 / 68

Asynchrone Schaltnetze Bisher haben wir die Möglichkeit kennen gelernt, das Verhalten einer Black Box logisch durch Schaltfunktionen zu beschreiben. Ferner haben wir erläutert, wie sich vorgegebene Schaltfunktionen, insbesondere Boolesche Funktionen durch Schaltnetze realisieren lassen. Die Zeit, die vom Anlegen eines Inputs bis zum Ablesen des Outputs verging, wurde dabei vernachlässigt. Außerdem war für die Berechnung eines Outputs nur der aktuelle Input maßgebend, nicht jedoch z.b. irgendeine frühere Eingabe. Solche Schaltungen, die z.b. eine frühere Eingabe berücksichtigen, bezeichnet man allgemein als asynchrone Schaltnetze. Kapitel 5: Schaltungen mit Delays Seite 3 / 68

4-Bit Ringzähler Beispiel 5.1: Gesucht ist ein Ringzähler für vierstellige Dualzahlen, d.h. eine Schaltung für folgende Funktion: R :B 4 B 4, definiert durch R (d(i)) := d(i+1 mod 16). Dabei sei d(i) die vierstellige Dualdarstellung von i {0,,15}. Kapitel 5: Schaltungen mit Delays Seite 4 / 68

4-Bit Ringzähler Beispiel 5.1 (2): Die Schaltung hat dann das folgende Aussehen: R Kapitel 5: Schaltungen mit Delays Seite 5 / 68

4-Bit-Ringzähler - Problem Wird in unseren Ringzähler R z.b. x 3 = 0, x 2 = 1, x 1 = 1, x 0 = 0 eingegeben, kann nach einer gewissen Zeit das Ergebnis y 3 = 0, y 2 = 1, y 1 = 1, y 0 = 1 abgelesen werden. Problem: Die Schaltung kann in dieser Form noch nicht benutzt werden, denn die Aufgabe des Ringzählers besteht darin, zyklisch bis 15 zu zählen, dann alle Outputs auf 0 zu setzen und wieder bis 15 zu zählen usw. Lösung: Die Ausgabe von R kann als nächste Eingabe benutzt werden, d.h. die Outputs werden mit den Inputs per Rückkopplung verbunden. Nach Definition 2.7 lassen Schaltnetze (als zykelfreie Graphen) derartige Konstruktionen jedoch nicht zu. Abhilfe kann mit so genannten Delays geschaffen werden. Kapitel 5: Schaltungen mit Delays Seite 6 / 68

Delays - Arbeitsweise Ein Delay besteht aus einem Vorspeicher V und einem Speicher S. Es ist in der Lage, ein Bit zu speichern. Einer Schleuse ähnlich arbeitet es in zwei Phasen, welche durch den Takt unterschieden werden: (1) Arbeitsphase (2) Setzphase Kapitel 5: Schaltungen mit Delays Seite 7 / 68

Delays - Arbeitsweise (1) Arbeitsphase: Der Inhalt von S wird nach rechts abgegeben; er steht als Signal y i für eine längere Zeit zur Verfügung. Ein (eventuell anderes) Signal x i wird in V abgelegt. V und S sind durch eine Sperre getrennt. (2) Setzphase: Eine zentrale Synchronisation (Clock) hebt die Sperre kurzzeitig auf und bewirkt dadurch die als Setzen bezeichnete Abgabe des Inhalts von V an S. Befindet sich zum Zeitpunkt i der Wert x i im Vorspeicher und der Wert y i im Speicher, so wird beim nächsten Takt, der den Übergang von Zeitpunkt i zum Zeitpunkt i+1 markiert, der Wert x i in den Speicher geschrieben, d.h. formal y i+1 x i. Kapitel 5: Schaltungen mit Delays Seite 8 / 68

4-Bit-Ringzähler mit Delays Kapitel 5: Schaltungen mit Delays Seite 9 / 68

Zulässige Flimmerschaltung Eine Flimmerschaltung kann aufgebaut werden, indem wir durch die Einführung von Delays eine Schnittstelle schaffen, welche Rückkopplungen erlaubt, da ein Delay eine saubere Trennung kurz geschlossener Signale bewirkt. z x zulässige Flimmerschaltung Kapitel 5: Schaltungen mit Delays Seite 10 / 68

Realisierung von Delays In der Praxis wird ein Delay durch ein so genanntes Flip-Flop realisiert. Je nach Anwendung kommen dabei verschiedene Typen (z.b. SR-, D-, JK-, Master-Slave-Flip-Flop) zum Einsatz, die sich aus logischer Sicht nicht unterscheiden. Im Folgenden werden wir deshalb nicht mehr auf sie eingehen. Kapitel 5: Schaltungen mit Delays Seite 11 / 68

Register und ihre Darstellung Wie das Beispiel des 4-Bit-Ringzählers bereits andeutete, wird man zu Speicherzwecken im Allgemeinen nicht mit nur einem Delay auskommen; meistens benötigt man Folgen von Delays, welche man auch als Register bezeichnet. Im Beispiel haben wir ein vierstelliges Register verwendet, dessen Komponenten paarweise voneinander unabhängig waren, d.h. zwischen ihnen bestand keine Verbindung. Als Abkürzung dafür werden wir folgende Darstellungsweise verwenden:.... D n-1 D n-2 D 1 D 0 D n-1 D n-2 D 1 D 0 Prinzip Darstellung Kapitel 5: Schaltungen mit Delays Seite 12 / 68

Register in Rechnern Register sind also in der Lage, Worte der Länge n über dem Alphabet B zu speichern. Diese können z.b. als n-stellige Dualzahlen interpretiert werden. D i stellt dabei die Ziffer an der i-ten Stelle des Wortes dar. Daher bezeichnet man n auch als Wortlänge eines Rechners, der mit n- stelligen Registern arbeitet. Gängige Wortlängen sind n=8, 16, 32, 48, 60, 64. Zur Vereinfachung fasst man im Allgemeinen 8 Bits zu einem Byte oder auch drei Bits zu einer Oktal- und 4 Bits zu einer Hexadezimalzahl zusammen. Prinzipiell werden alle Delays eines solchen Registers gleichzeitig getaktet, wobei zwischen zwei Taktimpulsen in jedem Delay Arbeits- und Setzphase ablaufen. Die Zeit zwischen zwei Impulsen nennt man die Taktzeit eines Rechners. Taktzeiten liegen heute in Größenordnungen von 10-8 bis 10-9 sec. Kapitel 5: Schaltungen mit Delays Seite 13 / 68

Mealy-Automat Betrachtet man den Inhalt eines Speichers, so kann ein Delay nur die beiden Zustände 0 und 1 annehmen. Daher ist ein Schaltwerk S, d.h. ein Schaltnetz mit Delays, durch einen (deterministischen) endlichen Automaten A S mit Ausgabe beschreibbar. Definition 5.1: (Mealy-Automat) A S ist der Mealy-Automat zum Schaltwerk S mit folgenden Komponenten: A S = (Q, 6, ', q 0, F, δ) mit Q : endliche Zustandsmenge 6 : endliches Eingabealphabet : endliches Ausgabealphabet q 0 Q : Startzustand F Q : Menge der ausgezeichneten Zustände δ : Q (Σ {ε}) o Q (' {ε}), mit ε = das leere Wort. Kapitel 5: Schaltungen mit Delays Seite 14 / 68

Funktionsweise des Mealy-Automaten Hat S etwa n Delays (n-stelliges Register), so ist das n-tupel der Zustände dieser Delays der aktuelle Zustand von S. Eingaben bzw. Ausgaben sind Worte über Σ bzw.. Befindet sich A S im Zustand q, und ist für x Σ {ε} δ(q,x) = (q,y) so geht der Automat als nächstes in den Zustand q über und gibt y aus. Wesentliches Merkmal eines endlichen Automaten ist seine endliche Gedächtnisleistung, die er durch seine nur endlich vielen Zuständen besitzt. Durch den Übergang in einen bestimmten Zustand merkt sich der Automat eine bestimmte Situation; dieses Merken aber bedeutet im entsprechenden Schaltwerk gerade Speichern in den Delays. Kapitel 5: Schaltungen mit Delays Seite 15 / 68

Mealy-Automat - Beispiel Beispiel 5.1.(3): (Der 4-Bit-Ringzähler als Mealy-Automat) Sei R der 4-Bit-Ringzähler mit den 4 Delays D 3, D 2, D 1, D 0. Eine Beschreibung von R durch einen endlichen Automaten lautet: A R = (Q R, 6 R, ' R, q R, F R, δ R ) mit 1. Q R = B 4 ; jedes q Q R hat die Form q = (d 3,d 2,d 1,d 0 ); dabei ist d i der Zustand von D i. 2. 6 R = ' R = ; der Ringzähler arbeitet autonom, d.h. er hat weder Einnoch Ausgabe. 3. q R ist daher beliebig wählbar, etwa q R = (0,0,0,0). 4. F R = 5. G R : Q R {ε} Q R {ε} ist definiert durch δ R (q, ε) := (R (q), ε); mit R wie in Beispiel 5.1 (1). Kapitel 5: Schaltungen mit Delays Seite 16 / 68

Addierwerke Wir haben in Kapitel 3 bereits ein aus Halb- und Volladdierern bestehendes (asynchrones) Addiernetz für n=4 kennen gelernt, welches prinzipiell auf beliebige n erweiterbar ist, den Ripple-Carry-Adder. Frage: woher kommen die Summanden und wohin geht das Ergebnis? Klärung: Wir erweitern das Addiernetz um zwei zusätzliche Register: ƒ ƒ Akkumulator (kurz: Akku) und Puffer. Diese enthalten zu Beginn die beiden Summanden. Das Ergebnis der Berechnung wird im Akku abgelegt. Beachte: Die Addition von zwei n-stelligen Zahlen kann eine n+1-stellige Zahl ergeben, deswegen muss ein weiteres Delay (wir nennen es Link) vorgesehen werden, um diesen eventuellen Übertrag zu speichern. Kapitel 5: Schaltungen mit Delays Seite 17 / 68

Organisationsplan von Addierwerken Die mit Akku und Puffer versehenen Addiernetze (die wir somit Addierwerke nennen) sehen im Grundbau wie folgt aus:.... Kapitel 5: Schaltungen mit Delays Seite 18 / 68

Parallel-Addierwerk Damit lässt sich das bereits in Kapitel 3 kennen gelernte asynchrone Parallel- Addiernetz (Ripple-Carry-Adder) sofort zu einem synchronen Parallel- Addierwerk erweitern. 4-Bit-Parallel-Addierwerk (Ripple-Carry-Adder mit Delays): x 3 x 2 x 1 x 0 Akku U 3 U 2 U 1 U 0 VA VA VA HA y 3 y 2 y 1 y 0 Puffer Kapitel 5: Schaltungen mit Delays Seite 19 / 68

Paralleles Addierwerk - Eigenschaften Vorteil: Das Parallel-Addierwerk liefert in nur einem Schritt das Ergebnis (es benötigt also nur einen Takt). Nachteil: Die Laufzeit der Signale in diesem VA/HA-Schaltnetz ist allerdings relativ groß, da es sich beim Halbaddierer um eine zweistufige, beim Volladdierer um eine vierstufige Schaltung handelt. Für feste Eingabegröße n muss also jedes Signal 2+4 (n -1) = 4n-2 Stufen durchlaufen. Daraus resultiert eine hypothetische Schaltzeit von 240psec. Das bedeutet, dass erst nach dieser Zeit ein Taktimpuls erfolgen darf, welcher das Addierwerk für die nächste Additionsaufgabe initialisiert. Kapitel 5: Schaltungen mit Delays Seite 20 / 68

Serielles Addierwerk Das Parallel-Addierwerk nutzt die durch die Speicherbausteine gegebene Möglichkeit des schrittweisen Arbeitens also nicht aus. Im Gegensatz dazu steht das serielle Addierwerk, das schrittweise arbeitet: Akku und Puffer dienen hierbei als Schieberegister. Bei einem Schieberegister wird bei jedem Taktimpuls die gespeicherte Information um eine Stelle nach rechts geschoben. Dabei wird jeweils das linke Delay des Registers frei und der Inhalt des rechten fällt heraus. (Analog funktionieren Schieberegister die nach links schieben.) Kapitel 5: Schaltungen mit Delays Seite 21 / 68

4-Bit-Serien-Addierer Der 4-Bit-Serien-Addierer ist ein serielles Addierwerk. Kapitel 5: Schaltungen mit Delays Seite 22 / 68

4-Bit-Serien-Addierer als Mealy-Automat Wie der Ringzähler lässt sich der Serien-Addierer als Automat beschreiben: Sieht man zunächst mal von Akku und Puffer ab, so besteht das Schaltwerk aus einem Volladdierer und einem Delay (U), so dass man (vorläufig) folgendes erhält: Q = {0,1} (Zustände d.h. Inhalte von U) Σ = B 2 Input ist je 1 Stelle von 2 verschiedenen Dualzahlen = B Output ist eine Ergebnisstelle q 0 = 0 q 0 ist anfangs 0. F = {0} δ : Q Σ Q ist definiert durch die folgende Automatentafel Kapitel 5: Schaltungen mit Delays Seite 23 / 68

4-Bit-Serien-Addierer als Mealy-Automat Die Automatentafel für den 4-Bit-Serien-Addierer sieht dann so aus: q x Σ 0 00 0 01 0 10 0 11 1 00 1 01 1 10 1 11 q y 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 Offensichtlich entspricht diese Tafel der Funktionstafel des Volladdierers aus Kapitel 3. Kapitel 5: Schaltungen mit Delays Seite 24 / 68

4-Bit-Serien-Addierer als Mealy-Automat Durch Einbeziehung der Register erhält man eine vollständige Beschreibung: A SA = (Q SA, Σ SA, SA, q SA, F SA, δ SA ) mit: Q SA = B 9 (ein Zustand q hat die Form q = (U, A 3, A 2, A 1, A 0, P 3, P 2, P 1, P 0 )) Σ SA = B 8 (Eingabe sind zwei vierstellige Dualzahlen) SA = B 5 (Ausgabe ist eine fünfstellige Dualzahl: UA 3 A 2 A 1 A 0 ) q SA = (0,,0) B 9 F SA = {q SA } Auf die explizite Angabe von δ SA soll verzichtet werden. Bei der Aufstellung einer Automatentafel müsste allerdings eine Konvention für das Auffüllen von P 3 nach jedem Rechts-Shift seines Inhaltes festgelegt werden (z.b. das Zuführen einer 0). Kapitel 5: Schaltungen mit Delays Seite 25 / 68

Serien-Addierer - Eigenschaften Nachteil: Das Serien-Addierwerk liefert das Ergebnis der Addition erst nach n Schritten. Die Schaltzeit ist jedoch kurz, da man lediglich eine vierstufige Schaltung benötigt. Dieser Nachteil ist also vernachlässigbar. Vorteil: Das Addierwerk ist leicht auf höhere Stellen erweiterbar. Hierzu werden lediglich größere Register, d.h. mehr Delays, benötigt, aber keine zusätzliche Logik wie etwa beim Parallel-Addierwerk. Kapitel 5: Schaltungen mit Delays Seite 26 / 68

Von-Neumann-Addierwerk Das Von-Neumann-Addierwerk kombiniert das Charakteristikum des Parallel- Addierers, für jede Stelle einen separaten Addierer zu verwenden, mit dem des Serienaddierers, schrittweise zu arbeiten und Überträge zwischenzuspeichern. Die Schrittzahl des Von-Neumann-Addierwerks hängt von den Summanden ab. Kapitel 5: Schaltungen mit Delays Seite 27 / 68

Von-Neumann-Addierwerk - Arbeitsweise Im Von-Neumann-Addierwerk läuft die Addition in mehreren Schritten ab: ƒ ƒ ƒ ƒ ƒ ƒ Im ersten Schritt werden alle 4 Stellen parallel addiert, für jede Stelle i wird das Resultat A i P i in A i zurückgeschrieben und der Übertrag A i P i an P i+1 weitergegeben bzw. im U-Delay gespeichert. Für P 0 ist damit kein neuer Wert definiert; dieser Teil des Puffers enthält den Wert 0. Nach diesem Schritt enthält der Akku ein vorläufiges Additions-Ergebnis und der Puffer die noch zu addierenden Überträge. Sind noch Überträge vorhanden, liefert das Delay S den Wert 1. Solange S=1 ist, wird das gesamte Vorgehen wiederholt, wobei ein eventueller Übertrag im Delay U durch Rückkopplung erhalten bleibt. Werden in einem Schritt keine Überträge mehr erzeugt, erhält S den Wert 0 und die aktuelle Rechnung ist beendet. Das Ergebnis steht im Akku unter Hinzunahme des U-Delays. Kapitel 5: Schaltungen mit Delays Seite 28 / 68

Beispiele zum Von-Neumann-Addierwerk Beispiel 5.2.(1): Zu berechnen ist 13+11: (Die Ergebnisse der Rechnungen sind fett markiert.) Puffer Puffer Akku Akku Zeile S U (dual) (dezimal) (dual) (dezimal) Schritt 1 0 0 0000 0 0000 0 2 1 0 1101 13 1011 11 1 3 1 1 0010 2 0110 22 2 4 1 1 0100 4 0100 20 3 5 1 1 1000 8 0000 16 4 6 0 1 0000 0 1000 24 5 Kapitel 5: Schaltungen mit Delays Seite 29 / 68

Beispiele zum Von-Neumann-Addierwerk Beispiel 5.2.(2): Zu berechnen ist 10+12 und 15+15: Puffer Puffer Akku Akku Zeile S U (dual) (dezimal) (dual) (dezimal) Schritt 7 1 0 1010 10 1100 12 1 8 0 1 0000 0 0110 22 2 9 1 0 1111 15 1111 15 1 10 1 1 1110 14 0000 16 2 11 0 1 0000 0 1110 30 3 Kapitel 5: Schaltungen mit Delays Seite 30 / 68

Laufzeit des Von-Neumann-Addierwerks Satz 5.1: Das n-bit-von-neumann-addierwerk addiert zwei Summanden in durchschnittlich log 2 (n+1) Schritten. Kapitel 5: Schaltungen mit Delays Seite 31 / 68

Von-Neumann-Addierwerk als Mealy-Automat Das Von-Neumann-Addierwerk kann ebenfalls durch einen endlichen Automaten beschrieben werden: A VNA = (Q VNA, Σ VNA, VNA, q VNA, F VNA, δ VNA ) mit: 1. Q VNA = B 2n+2 ; ein Zustand gibt auch jetzt die Zustände der Delays wieder, so dass es sich dabei um ein (2n+2)-Tupel der Form (S, U, P n-1,, P 0, A n-1,, A 0 ) von Bits handelt. 2. Σ VNA = B 2n ; Eingaben sind zwei n-stellige Dualzahlen, welche als Wort der Form (P n-1,, P 0, A n-1,, A 0 ) geschrieben werden. Kapitel 5: Schaltungen mit Delays Seite 32 / 68

Von-Neumann-Addierwerk als Mealy-Automat 3. VNA = B n+1 ; die Ausgabe ist eine (n+1)-stellige Dualzahl der Form (U, A n-1,, A 0 ). 4. q VNA = (0,, 0) B 2n+2 ; 5. F VNA = {q Q VNA S = 0}; ausgezeichnete Zustände sind diejenigen, in denen eine aktuelle Rechnung beendet ist und das Addierwerk für die Aufnahme neuer Summanden bereit ist. Kapitel 5: Schaltungen mit Delays Seite 33 / 68

Von-Neumann-Addierwerk als Mealy-Automat 6. δ VNA : Q ( Σ VNA VNA {ε}) Q VNA ( VNA {ε}) ist wie folgt definiert: Sei q Q VNA, x Σ VNA {ε} : (i) Ist q F, so folgt S = 1, d.h. A VNA befindet sich in einem Rechenzustand. In diesem Zustand akzeptiert er keine Eingabe und produziert keine Ausgabe, d.h. δ(q, ε) = (q, ε). Wobei q = (S, U, P n-1,..., P 0, A n-1,..., A 0) wie folgt bestimmt wird: Sei q = (1, U, P n-1,..., P 0, A n-1,..., A 0 ), dann setze man A i := A i P i für i= 0, 1,..., n-1 P i+1 := A i P i für i= 0, 1,..., n-2 P 0 := 0 U := U+A n-1 P n-1 S := A 0 P 0 + A 1 P 1 +... + A n-2 P n-2 Kapitel 5: Schaltungen mit Delays Seite 34 / 68

Von-Neumann-Addierwerk als Mealy-Automat (ii) Ist q F, also S = 0, so befindet sich A VNA in einem I/O-Zustand. Sei dann q = (0, U, P n-1,..., P 0, A n-1,..., A 0 ), und sei x = (x n-1,..., x 0, z n-1,..., z 0 ) eine neue Eingabe, so setzt man δ(q, x) = (q, y) mit q := (1, 0, x n-1,..., x 0, z n-1,..., z 0 ) y := (U, A n-1,..., A 0 ), d.h. die neue Eingabe wird in den Puffer bzw. in den Akku geschrieben, die alten Inhalte von U und Akku werden ausgegeben, U wird auf 0 und S auf 1 gesetzt, sodass eine neue Rechnung beginnen kann. Der Fall (ii) zeigt, dass bei diesem Automaten die Ausgabe y nur vom erreichten Zustand, nicht aber von der aktuellen Eingabe abhängt. Solche Automaten heißen Moore-Automaten. Kapitel 5: Schaltungen mit Delays Seite 35 / 68

Fan-In-Problem bei Delays Beim Von-Neumann-Addierer hat jedes Akku-Delay ƒ ƒ ein Input-Signal (um eine Stelle des Summanden aufzunehmen) und ein Resultats-Signal des Halbaddierers (um die Ergebnisse der Zwischenrechnung aufzunehmen). Jedes Puffer-Delay hat ƒ ein Input-Signal und ƒ ein Übertrag-Signal des Halbaddierers (oder eine 0 im Falle von P 0 ). Welches Signal zu speichern ist, hängt offensichtlich davon ab, ob sich der Addierer im Rechenschritt (S = 1) oder im I/O-Schritt (S = 0) befindet. Kapitel 5: Schaltungen mit Delays Seite 36 / 68

Fan-In-Problem bei Delays Es lässt sich leicht eine Logik angeben, welche dafür sorgt, dass an jedem Delay das richtige Signal anliegt. Diese können durch eine Boolesche Funktion f : B 3 B beschrieben werden, welche für den Akku definiert ist durch: f( S, I, R ): = { I falls S=0 R falls S=1 I steht dabei für das Input-Signal, R für das Resultat-Signal. Für die Puffer- Delays ersetze man R durch U (Übertrag-Signal statt Resultat-Signal). Delay Kapitel 5: Schaltungen mit Delays Seite 37 / 68

Grundoperationen mit Addierwerken Mit Addierwerken können auch andere Grundrechenarten durchgeführt werden: Die Subtraktion kann auf die Addition des Einer-Komplements zurückgeführt werden, welches man durch stellenweises Komplementieren erhält. Das den Subtrahenden aufnehmende Register muss also in der Lage sein, diese einfache Operation durchzuführen. Durch ein zusätzliches Signal T lässt sich dabei steuern, ob das Werk addieren (T = 0) oder subtrahieren (T = 1) soll, so dass ein kombiniertes Addier-/Subtrahierwerk entsteht. Ebenso lassen sich Multiplikation und Division auf die Addition zurückführen, wenn man zusätzlich noch Links- bzw. Rechts-Verschiebungen (Shifts) von Registerinhalten zulässt. Kapitel 5: Schaltungen mit Delays Seite 38 / 68

Lineare Schaltkreise Definition 5.2: (Lineare Schaltkreise) Ein linearer Schaltkreis über einem endlichen Körper K ist ein Schaltwerk, welches aus den folgenden drei Grundbausteinen aufgebaut ist: (a) Addierer: b a a + b mit a, b K (b) Skalar-Multiplizierer: b a b mit a, b K, a ist konstant. Kapitel 5: Schaltungen mit Delays Seite 39 / 68

Lineare Schaltkreise Definition 5.2: (Fortsetzung) (c) Delay: Das Delay speichert ein Körperelement für die Dauer eines Taktes. Wie bisher lassen wir Fan-Outs zu, verlangen aber, dass ein linearer Schaltkreis durch einen DAG dargestellt werden kann, also z.b. rückkoppelnde Schaltungen nur unter Delay-Kontrolle erlaubt sind. Kapitel 5: Schaltungen mit Delays Seite 40 / 68

Lineare Schieberegister (LSR) Spezielle lineare Schaltkreise sind durch Lineare Schieberegister (LSR) gegeben. Einen Spezialfall stellt der vorgestellte Serien-Addierer dar, bei dem sowohl der Akku als auch der Puffer als Schieberegister organisiert waren. Zusätzlich hat man bei beliebigen LSR noch die Möglichkeit zur Addition und zur (skalaren) Multiplikation. Kapitel 5: Schaltungen mit Delays Seite 41

LSR mit Rückkopplung......... Enthalten die Register R 1,..., R n die Körper-Elemente x 1,..., x n, berechnet dieses LSR die Funktion a 1 x 1 + a 2 x 2 +... + a n x n, Die Delay-Inhalte werden nach rechts geschoben und das Ergebnis in R 1 gespeichert. Es liegt hier ein LSR mit Rückkopplung (engl. Feedback) vor, ein so genanntes LSRFB (Lineares Schiebe-Register mit Feedback). Kapitel 5: Schaltungen mit Delays Seite 42

Anwendungen von LSRs Eine wichtige Grundtechnik besteht in der Erzeugung binärer Zufallszahlen als Grundbausteine für Zufallsgeneratoren in Rechnern. Für den Spezialfall Boolescher Operationen entspricht die Multiplikation mit 1 dem unveränderten Durchlassen eines Signals; die Multiplikation mit 0 der Unterbrechung einer Leitung. Beginnend mit dem Zeitpunkt k = 0 induziert die Folge der Registerinhalte x(k)=(x n (k),..., x 1 (k)) das Output-Bit a n x n (k) a n-1 x n-1 (k)... a 1 x 1 (k), welches den Inhalt von R 1 zum Zeitpunkt k + 1 darstellt. Durch geschickte Wahl von n, der a i und der Initialisierung von x(0) kann so eine recht regellose Bit-Sequenz x 1 (1), x 1 (2), x 1 (3)... sowie eine regellose Bitfolgen-Sequenz x(1), x(2), x(3)... erwartet werden. Kapitel 5: Schaltungen mit Delays Seite 43

Anwendungen von LSRs: Quasi-Zufallszahlen Kriterien dafür, dass die entstehende Quasi-Zufallszahlen-Bitfolgesequenz die gewünschten Regellosigkeitseigenschaften besitzt, können aus den Eigenschaften (wie Irreduzibilität, Primitivität) des so genannten charakteristischen Polynoms des LSR φ(λ) = a n + a n-1 λ+... + a 1 λ + λ n hergeleitet werden. Darauf soll an dieser Stelle jedoch verzichtet werden. Bemerkung: Im Unterschied zu echten Zufallszahlen, die z.b. durch radioaktive Prozesse erzeugt werden können, sind Quasi-Zufallszahlen mathematisch reproduzierbar. Kapitel 5: Schaltungen mit Delays Seite 44 / 68

Sichere Datenübertragung mittels LSRs Eine zweite Anwendung binärer LSR findet sich im Umfeld fehlerbehafteter Datenübertragungen: Zur Durchführung einer Addition müssen die beiden Summanden aus dem Speicher eines Rechners in den Akku bzw. Puffer seines Addierwerkes gebracht werden; nach der Addition wird das Ergebnis dann aus dem Akku wieder in den Speicher zurück transportiert. Für solche Transportarten lassen sich viele Beispiele angeben; z.b. die Eingabe von Daten in einen Rechner über ein Terminal oder die Ausgabe von Daten auf einen Drucker. Kapitel 5: Schaltungen mit Delays Seite 45 / 68

Sichere Datenübertragung mittels LSRs Allen Beispielen ist gemein, dass Daten mittels Übertragungsleitungen (auch Bus oder Kanal genannt) vom Sender zum Empfänger transportiert werden. Dabei kommt es darauf an, dass das, was beim Empfänger eintrifft, identisch ist mit dem, was der Sender geschickt hat, oder zumindest daraus konstruierbar ist. Dies zu gewährleisten ist insbesondere dann problematisch, wenn der Bus bzw. Kanal gewissen Störeinflüssen ausgesetzt ist. In einem Rechner kann z.b. eine kurzzeitige Schwankung der Netzspannung bewirken, dass etwa bei der Übertragung einer Dualzahl vom Speicher in den Akku einige Bits umkippen, so dass anschließend im Akku nicht das Gewünschte steht. Kapitel 5: Schaltungen mit Delays Seite 46 / 68

Sichere Datenübertragung mittels LSRs Das Problem der gesicherten Datenübertragung wird im Allgemeinen dadurch gelöst, dass die zu übertragenden Daten zunächst codiert (verschlüsselt), über den Kanal transportiert und schließlich decodiert (entschlüsselt) werden: Der Code, welcher zur Verschlüsselung der zu übertragenden Daten verwendet wird, muss dabei gewisse Anforderungen erfüllen: ƒ ƒ Falls wenige Übertragungsfehler im Kanal auftreten, sollten diese zumindest erkennbar, möglichst auch korrigierbar sein. Codierung und Decodierung sollten leicht zu bewerkstelligen sein. Kapitel 5: Schaltungen mit Delays Seite 47 / 68

Codierungstheorie: Code und Codewort Im Folgenden werden Schaltungen vorgestellt, die für eine gewisse Klasse von Codes, welche der ersten Anforderung genügen, auch die zweite Anforderung erfüllen. Dazu zunächst einige Begriffe aus der Codierungstheorie: Definition 5.3: Es sei Σ ein endliches Alphabet, Σ = k ; sei 0 Σ, und es sei Σ n die Menge aller n-tupel über Σ. Jede Teilmenge C Σ n mit (0,...,0) C heißt (gleichmäßiger) Code (über 6). Ein Element x C heißt Codewort. Kapitel 5: Schaltungen mit Delays Seite 48 / 68

Hamming-Abstand und (n,k)-linearcode Definition 5.4: Seien x,y Σ n. h(x,y) := Anzahl der Stellen, an denen sich x und y unterscheiden, heißt Hamming-Abstand von x und y. (h ist eine Metrik im Sinne der Theorie der metrischen Räume) Definition 5.5: Sei Σ speziell ein endlicher Primkörper und Σ n der n-dimensionale Vektorraum über Σ. Ist dann C Σ n ein k-dimensionaler Unterraum von Σ n, so heißt C ein (n,k)-linearcode. Kapitel 5: Schaltungen mit Delays Seite 49 / 68

Hamming-Abstand und (n,k)-linearcode Beispiel 5.3.(1): Sei Σ = {0,1} (= B) und n = 5. Dann ist C ={ (0,0,0,0,0), (1,0,0,1,1), (0,1,0,1,0), (1,1,0,0,1), (0,0,1,0,1), (1,0,1,1,0), (0,1,1,1,1), (1,1,1,0,0)} ein (5,3) - Linearcode. Sind x = (1,0,0,1,1) und y = (1,1,1,0,0), so ist der Hamming-Abstand h(x,y) = 4. Kapitel 5: Schaltungen mit Delays Seite 50 / 68

Minimalabstand Definition 5.6: Sei C Σ n beliebig. h(c) := min{h(x,y) x,y C x y} heißt Minimalabstand von C. Beispiel 5.3.(2): Der Minimalabstand von C mit C = {(0,0,0,0,0), (1,0,0,1,1), (0,1,0,1,0), (1,1,0,0,1), (0,0,1,0,1), (1,0,1,1,0), (0,1,1,1,1), (1,1,1,0,0)} ergibt sich also zu h(c) = 2. Kapitel 5: Schaltungen mit Delays Seite 51 / 68

Fehlererkennung Satz 5.2: Sei C ein Code mit h(c) = d+1, so sind bis zu d Fehler, welche bei der Übertragung eines Codewortes aus C gemacht werden, erkennbar. Gilt sogar h(c) = 2e+1, so sind bis zu e solcher Fehler korrigierbar. Hat also ein Code den Minimalabstand d+1, so kann kein Auftreten von d Fehlern ein Codewort in ein anderes überführen: Beispiel 5.3.(3): Hier gilt h(c) = 2 = d+1 mit d= 1. Also sind 1-Bit-Fehler erkennbar. Wird z.b. y = (1,1,0,1,1) empfangen, so ist entweder die zweite oder die vierte Stelle fehlerhaft. Allerdings ist nicht feststellbar, ob x = (1,0,0,1,1) oder x = (1,1,0,0,1) gesendet wurde. Kapitel 5: Schaltungen mit Delays Seite 52 / 68

Fehlerkorrektur Hat nun ein Code den Minimalabstand 2e+1, so unterscheidet sich jedes empfangene Codewort mit e e Fehlern vom gesendeten Wort an e Stellen, von jedem anderen Codewort aber an wenigstens 2e+1-e, also an mehr als e Stellen, so dass das gesendete Wort eindeutig identifizierbar ist. Beispiel 5.4: Für C = {0000000, 1110000, 1001100, 1000011, 0101010, 0100101, 0010110, 0011001, 1111111, 0001111, 0110011, 0111100, 1010101, 1011010, 1101001, 1100110} gilt h(c) = 3 = 2e+1 mit e = 1. Wird z.b. y = 1101010 empfangen, so kann nur die erste Stelle falsch sein, d.h. es wurde x = 0101010 gesendet. Ein hoher Minimalabstand ist also eine wünschenswerte Eigenschaft eines Codes. Kapitel 5: Schaltungen mit Delays Seite 53 / 68

Zyklische Codes Die folgende Klasse von Codes verbindet die Eigenschaft eines hohen Minimalabstands mit einfacher Codier- und Decodierbarkeit: Definition 5.7: Sei Σ ein endlicher Körper und eine Abbildung Z : Σ n Σ n ( zyklischer (Rechts-) Shift ) definiert durch Z ((x 0,..., x n-1 )) := (x n-1, x 0, x 1,..., x n-2 ). Ein Linearcode C Σ n heißt zyklischer Code, falls Z(x) C gilt für alle x C. Kapitel 5: Schaltungen mit Delays Seite 54 / 68

Codierung mittels zyklischer Codes Aus der Codierungstheorie ist bekannt, dass jedem zyklischen (n,k)-linearcode C ein Polynom h(x) = h 0 + h 1 x +... + h n-k x n-k entspricht, welches C im folgendem Sinne erzeugt: Um eine Folge von k Körperelementen der Form A = (a 0, a 1,..., a k-1 ) zu codieren, multipliziere man das zugehörige Polynom a(x) = a 0 + a 1 x +... + a k-1 x k-1 mit h(x). Das entstehende Polynom f (x) = f 0 + f 1 x +... + f n-1 x n-1 stellt mit seiner Koeffizientenfolge ϕ = ( f 0, f 1,..., f n-1 ) dasjenige Codewort dar, welches A codiert und über den Kanal gesendet wird. Kapitel 5: Schaltungen mit Delays Seite 55 / 68

Decodierung mittels zyklischer Codes Ist umgekehrt eine Folge ϕ empfangen worden, so kann sie als Polynom f (x) gedeutet und durch h(x) dividiert werden. ϕ stellt genau dann ein Codewort dar, wenn diese Division ohne Rest aufgeht. Die durch a(x) = f (x) / h(x) bestimmte Koeffizientenfolge ist dann das gesendete (decodierte) Wort. Die Multiplikation eines Polynoms a(x) mit einem festen Polynom h(x) bzw. die Division eines Polynoms f (x) durch ein festes Polynom h(x) realisieren also die Grundaufgaben des Codierens bzw. Decodierens bezüglich eines zyklischen Linearcodes. Kapitel 5: Schaltungen mit Delays Seite 56 / 68

Polynommultiplikation Beispiel 5.5: (Polynommultiplikation) Sei Σ = B, also Polynome in x mit Koeffizienten über B. Das Polynom h(x) = x 3 + 1 erzeugt einen zyklischen (7,4)-Linearcode. Man erhält also alle Elemente von C, indem man alle Polynome über B vom Grad 3 = k-1 mit h(x) multipliziert und das Ergebnis f (x) als binären Vektor der Länge 7 liest. Kapitel 5: Schaltungen mit Delays Seite 57 / 68

Polynommultiplikation Das folgende Beispiel zeigt die Polynommultiplikation eines beliebigen Polynoms a(x) mit einem fest vorgegebenen Polynom h(x). Beispiel 5.6: Sei Σ beliebig und seien a(x) = a 0 + a 1 x + a 2 x 2, h(x) = h 0 + h 1 x + h 2 x 2 + h 3 x 3. Dann gilt: a(x) h(x) = a 2 h 3 x 5 + (a 1 h 3 + a 2 h 2 ) x 4 + (a 0 h 3 + a 1 h 2 + a 2 h 1 ) x 3 + (a 0 h 2 + a 1 h 1 + a 2 h 0 ) x 2 + (a 0 h 1 + a 1 h 0 ) x + a 0 h 0. Kapitel 5: Schaltungen mit Delays Seite 58 / 68

LSR zur Polynommultiplikation Für das feste Polynom h(x) vom Grad n-k wird ein LSR entworfen: Die Schaltung besteht aus einem (n-k)-stelligen Schieberegister, n-k Addierern und n-k+1 Multiplizierern, welche jeweils ihren Input mit einem Koeffizienten von h multiplizieren.... O... I... Kapitel 5: Schaltungen mit Delays Seite 59 / 68

LSR zur Polynommultiplikation Funktionsweise: ƒ ƒ ƒ Die Delays enthalten anfangs Nullen. Über den Input I werden sukzessiv die Koeffizienten von a(x) eingegeben, beginnend mit dem höchsten Koeffizienten a k-1. Sobald a k-1 am Input erscheint, wird dieser mit h n-k multipliziert und der höchste Koeffizient des Ergebnispolynoms (a k-1 h n-k ) in O ausgegeben. ƒ Nach einem Takt enthält das am weitesten links stehende Delay a k-1, und a k-2 erscheint am Input. ƒ ƒ ƒ a k-1 wird an den h n-k-1 -Multiplizierer, a k-2 an den h n-k -Multiplizierer abgegeben und am Ausgang erscheint a k-2 h n-k + a k-1 h n-k-1, also der zweithöchste Koeffizient des Ergebnispolynoms. Die weitere Berechnung der Koeffizienten von a(x) h(x) verläuft analog. Geht man davon aus, dass nach der Eingabe von a 0 wieder Nullen am Input erscheinen, so wird nach n Takten der letzte Koeffizient a 0 h 0 des Produktes ausgegeben. Kapitel 5: Schaltungen mit Delays Seite 60 / 68

LSR zur Booleschen Polynommultiplikation Spezialfall: a(x) und h(x) sind Polynome über dem Körper B (d.h. Σ = B) Ein entsprechender Schaltkreis besteht dann nur noch aus Addierern (hier XOR) und Delays und hängt von dem festen Polynom h(x) ab. Die Querverbindungen verschwinden für Koeffizienten mit Wert 0. Beispiel 5.7: Sei Σ = B und h(x) = 1 x 3 x 4 x 5, d.h. h 0 = h 3 = h 4 = h 5 = 1 und h 1 = h 2 = 0. O I Kapitel 5: Schaltungen mit Delays Seite 61 / 68

Polynomdivision Zur Decodierung muss ein beliebiges Polynom f (x) vom Grad n-1 durch ein gegebenes Polynom h(x) vom Grad n-k dividiert werden. Beispiel 5.8: Sei Σ beliebig und sei f (x) = f 2 x 2 + f 1 x + f 0 und h(x) = h 1 x + h 0. Dann gilt: f h f f( x) f = x + hx ( ) h h 2 0 1 2 h1 1 1 mit Rest: f( x) 1 1 1 Hieraus folgt: = fh 2 1x+ ( f1 fhh 2 0 1) h1... hx ( ) f h 0 0 f 1 f h h1 h 1 2 0 Kapitel 5: Schaltungen mit Delays Seite 62 / 68

LSR zur Polynomdivision Allgemein enthält der Koeffizient, welcher zur höchsten x-potenz des Quotienten gehört, den Faktor (h n-k ) -1, der Koeffizient der zweithöchsten x-potenz des Quotienten den Faktor (h n-k ) -2 =((h n-k ) -1 ) 2 usw. Ferner sind in jedem Schritt (außer dem ersten) Differenzen zu bilden. Vorzeichenwechsel werden durch Multiplikation mit negativen Zahlen realisiert. Durch diese Überlegungen entsteht folgendes LSR:... O I... Kapitel 5: Schaltungen mit Delays Seite 63 / 68

LSR zur Polynomdivision Funktionsweise: ƒ Während der ersten n-k-1 Takte bleibt der Ausgabewert 0 (unter der Vorraussetzung, dass das (n-k)-stellige Schieberegister wie bei der Multiplikation mit 0 initialisiert wird). ƒ Erst dann hat f n-1 das Ende das Registers erreicht und es wird f n-1 (h n-k ) -1 ausgegeben. ƒ Nach dem nächsten Takt wird dann (f n-2 f n-1 h n-k-1 h n-k -1 ) (h n-k ) -1 am Ausgang erscheinen usw. Kapitel 5: Schaltungen mit Delays Seite 64 / 68

LSR zur Booleschen Polynomdivision Für den Fall, dass die Koeffizienten von f(x) und h(x) aus B sind, ergeben sich die gleichen Vereinfachungen wie bei der Multiplikation. Beispiel 5.9: Sei Σ = B und h(x) = x 4 x 1, d.h. h 0 = h 1 = h 4 = 1 und h 2 = h 3 = 0. Wegen h i = -h i für i = 0,..., n-k-1 und (h n-k ) -1 = 1 (in B) erhalten wir folgende Schaltung: I O Kapitel 5: Schaltungen mit Delays Seite 65 / 68

Fehlererkennung Zur Codierung kann also ein an das Generatorpolynom h(x) angepasster Multiplikations-Schaltkreis und zur Decodierung ein entsprechender Divisions- Schaltkreis verwendet werden. Die Erkennung von Übertragungsfehlern ist ebenso einfach realisierbar: Sei C ein zyklischer Code und h dessen Generatorpolynom. Dann kann gezeigt werden, dass h(x) ein Teiler von x n -1 ist. Definition 5.8: Das Kontrollpolynom k(x) eines zyklischen Codes C mit Generatorpolynom h(x) ist definiert durch k(x) := (x n -1) / h(x). Es gilt somit k(x) h(x) = x n -1. Kapitel 5: Schaltungen mit Delays Seite 66 / 68

Übertragungsfehler-Erkennung Satz 5.3: Sei k(x) das Kontrollpolynom von C und sei a(x) empfangen worden, dann gilt: a(x) C a(x) k(x) = 0. Mit einem Codier-Schaltkreis lässt sich somit also auch feststellen, ob ein Übertragungsfehler vorliegt oder nicht. Man schicke dazu das empfangene Wort durch einen an das Kontrollpolynom von C angepassten Codierer. Ist die Ausgabe der Nullvektor, so war die Übertragung fehlerfrei. Kapitel 5: Schaltungen mit Delays Seite 67 / 68

Zusammenfassung Delays ƒ Flimmerschaltungen ƒ Ringzähler ƒ Fan-In Problem bei Delays Mealy-Automaten Addierwerke ƒ Parallel-Addierwerk ƒ Serien-Addierer ƒ Von-Neumann-Addierwerk Lineare Schaltkreise und Schieberegister (LSRs) ƒ Polynommultiplikation, Polynomdivision ƒ Anwendungen von LSRs (Zufallszahlen, Fehlererkennung) ƒ Codierungstheorie ((De-)Codierung, Übertragung mit Codierung) Kapitel 5: Schaltungen mit Delays Seite 68 / 68