Michael Engel und Peter Marwedel - TU Dortmund · 2019. 7. 16. · Rechnerstrukturen Michael Engel...

48
Rechnerstrukturen Michael Engel und Peter Marwedel TU Dortmund, Fakult¨ at f¨ ur Informatik SS 2013 Hinweis: Folien a. d. Basis von Materialien von Gernot Fink und Thomas Jansen 13. Mai 2013 Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

Transcript of Michael Engel und Peter Marwedel - TU Dortmund · 2019. 7. 16. · Rechnerstrukturen Michael Engel...

  • Rechnerstrukturen

    Michael Engel und Peter Marwedel

    TU Dortmund, Fakultät für Informatik

    SS 2013

    Hinweis: Folien a. d. Basis von Materialien von Gernot Fink und Thomas Jansen 13. Mai 2013

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

    http://ls12-www.cs.tu-dortmund.de/~engel/

  • 1 Sequenzielle SchaltungenEinleitung (Wiederholung)Modellierung mit Automaten

    2 Synchrone SchaltwerkeEinleitungFlip-Flops

    3 Schaltwerk-EntwurfEinleitungvon Neumann-Addierwerk

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Eine konkrete sequenzielle Schaltung

    x≥ 1

    1y

    Was passiert in dieser Schaltung?

    x y x ∨ y

    0 0 10 1 01 0 11 1 1

    klar und immer so weiter. . .

    natürlich in der Realität viel schnellerdarum heißt die Schaltung Flimmerschaltung

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Bi-stabile NAND-Kippstufe

    S

    R

    & Q

    & P

    Anmerkung

    heißt auch Latch

    positiv kippt, flimmert nicht

    negativ Verhalten hängt von Schaltzeiten derbeiden Gatter ab

    genauer beobachtet Verhalten hängt manchmalvon Schaltzeiten der beiden Gatter ab

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Fazit der Analyse der bi-stabilen

    NAND-Kippstufe

    1. Fall oberes NAND-Gatter schnellerPt+2∆ = R ∨ S QtQt+2∆ = S ∨ R Qt

    2. Fall unteres NAND-Gatter schnellerPt+2∆ = R ∨ S PtQt+2∆ = S ∨ R Pt

    also Wenn Qt = Pt , so ist das Verhaltenstabil, von den Schaltzeiten der Gatter unabhängig.

    also Forderung Pt 6= Qt

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Wertetabelle bi-stabile NAND-Kippstufe

    oberes Gatter schneller unteres Gatter schnellerRt St Pt+2∆ Qt+2∆ Pt+2∆ Qt+2∆0 0 1 1 1 10 1 1 0 1 01 0 0 1 0 1

    1 1 Qt Qt Pt Pt

    Beobachtung Wir müssen nur R = S = 0 ausschließen.

    Rt St Pt+2∆ Qt+2∆0 1 1 01 0 0 1

    1 1 Pt Pt

    ◮ (R,S) = (0, 1) setzt P = 1

    ◮ (R,S) = (1, 0) setzt P = 0

    ◮ (R,S) = (1, 1) lässt P unverändert

    Fazit Bi-stabile NAND-Kippstufe realisiert 1-Bit-Speicher!Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Erstes Fazit zu sequenziellen Schaltungen

    Bi-stabile NAND-Kippstufe realisiert 1-Bit-Speicher.

    also

    ◮ Kreise in”Schaltnetzen“ manchmal sinnvoll

    ◮ neue Funktionalität

    ◮ Analyse schwierig

    Wunsch strukturierter Entwurf

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Automaten

    Wunsch formales Modell eines Automaten

    Was ist überhaupt ein Automat?

    Beispiele

    ◮ Getränke-Automat

    ◮ einfache Ampelsteuerung

    ◮ Steuerung einer Waschmaschine

    Gegenbeispiele

    ◮ Geldspielautomatwegen der Zufalls-Komponente

    ◮ Computerzu komplex

    ◮ Menschfür uns nicht formal beschreibbar

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Automatenmodell

    Grobbeschreibung

    ◮ verarbeitet eine Eingabe

    ◮ erzeugt eine Ausgabe

    ◮ ist in einem Zustand

    ◮ arbeitet in Takten

    ◮ arbeitet deterministisch (exakt vorhersagbar)

    jetzt exakte, formale Beschreibung

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Definition Mealy-Automat

    Definiton 19

    Ein Mealy-Automat M = (Q, q0,Σ,∆, δ, λ) ist definiert durch:

    ◮ endliche Zustandsmenge Q

    ◮ Startzustand q0 ∈ Q

    ◮ endliches Eingabealphabet Σ

    ◮ endliches Ausgabealphabet ∆

    ◮ Zustandsüberführungsfunktion δ : Q × Σ → Q

    ◮ Ausgabefunktion λ : Q × Σ → ∆ ∪ {ε}

    In einem Takt mit aktuellem Zustand q und Eingabesymbol w

    ◮ schreibt der Automat λ(q,w),

    ◮ wechselt der Automat in den Zustand δ(q,w).

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Beispiel Mealy-Automat

    Q = {q0, q1, q2}, Σ = {0, 1}, ∆ = {a, b, c}

    q0

    0/a

    0/c q1

    1/b 0/a

    q2

    1/c

    1/b

    Eingabe 0 1 0 0 Ausgabe a b a c

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Äquivalenz von Automaten

    Definition

    Zwei Mealy-Automaten heißen äquivalent, wenn sie für jedeEingabe w ∈ Σ∗ die gleiche Ausgabe a ∈ ∆∗ erzeugen.

    klar Äquivalente Automaten können unterschiedlich groß sein.

    klar Man wünscht sich möglichst kleine Automaten.

    Anmerkung Komplexer Problemkreis,umfasst auch effiziente Minimierung von Automaten⇒ Näher i.d. Theoretischen Informatik (GTI/TIfAI)

    Hier: noch ein anderes (ähnliches!) Automaten-ModellSequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Definition Moore-Automat

    Definiton 20

    Ein Moore-Automat M = (Q, q0,Σ,∆, δ, λ) ist definiert durch:

    ◮ endliche Zustandsmenge Q

    ◮ Startzustand q0 ∈ Q

    ◮ endliches Eingabealphabet Σ

    ◮ endliches Ausgabealphabet ∆

    ◮ Zustandsüberführungsfunktion δ : Q × Σ → Q

    ◮ Ausgabefunktion λ : Q → ∆ ∪ {ε}

    In einem Takt mit aktuellem Zustand q und Eingabesymbol w

    ◮ schreibt der Automat λ(δ(q,w)),

    ◮ wechselt der Automat in den Zustand δ(q,w).

    Unterschied zum Mealy-Automaten: Ausgabe ↔ ZustandSequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Mealy- und Moore-Automaten

    Beobachtung Zu jedem Moore-Automaten gibt eseinen äquivalenten Mealy-Automaten.

    denn zu Moore-Automat A = (Q, q0,Σ,∆, δ, λ)ist Mealy-Automat A′ = (Q, q0,Σ,∆, δ, λ

    ′)mit λ′(q,w) := λ(δ(q,w))offensichtlich äquivalent

    Beobachtung Zu jedem Mealy-Automaten gibt eseine äquivalenten Moore-Automaten.

    denn zu Mealy-Automaten A = (Q, q0,Σ,∆, δ, λ)ist Moore-Automat A′ = (Q ′, q′0,Σ,∆, δ

    ′, λ′)mit Q ′ := Q × (∆ ∪ {ε}), q′0 := (q0, ε),δ′(q′,w) = δ′((q, v),w) := (δ(q,w), λ(q,w)),λ(δ(q′,w)) = λ′((q, v)) := voffensichtlich äquivalent

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Einfacher Beispiel-Automat

    Aufgabe einfache”Datenglättung“

    Filtere isolierte Bits aus Datenstrom aus.

    klar Σ := {0, 1}, ∆ := {0, 1}

    Mealy-Automat

    00/0

    1/0

    ?

    1/1

    0/0

    1

    0/1

    1/1

    übrigens Q := {0, 1, ?}, q0 := 0

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Äquivalente Automaten”Bit-Filter“

    Mealy-Automat

    00/0

    1/0

    ?

    1/1

    0/0

    1

    0/1

    1/1

    Moore-Automat

    001

    0 10 ?0

    ?1 1

    0

    1 10

    10

    0

    1

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Automaten und Schaltungen: Synchrone

    Schaltwerke

    Erinnerung bi-stabile NAND-Kippstufe

    S

    R

    & Q

    & P Rt St Pt+2∆ Qt+2∆0 1 1 01 0 0 1

    1 1 Pt Pt

    0 1

    01/1

    10/0

    11/0

    10/0

    11/1

    01/1

    Q = {0, 1}, q0 = 0

    Σ = {01, 10, 11}

    ∆ = {0, 1}Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Vergleich Automat und NAND-Kippstufe

    nicht getaktet

    S

    R

    & Q

    & P Rt St Pt+2∆ Qt+2∆0 1 1 01 0 0 1

    1 1 Pt Pt

    getaktet

    0 1

    01/1

    10/0

    11/0

    10/0

    11/1

    01/1

    Q = {0, 1}, q0 = 0

    Σ = {01, 10, 11}

    ∆ = {0, 1}

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Synchrone Schaltwerke

    ab jetzt getaktete Schaltwerke

    also Führe Taktsignal T ein

    verschiedene technische Möglichkeiten

    ◮ Pegelsteuerung: aktiv, wenn 1 anliegt

    ◮ positive Flankensteuerung: aktiv, wenn Wechsel von 0 nach 1

    ◮ negative Flankensteuerung: aktiv, wenn Wechsel von 1 nach 0

    digital-logische Ebene technisches Detail ignorieren

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • RS-Flip-Flop

    &S

    &R

    T

    & Q

    & P

    R S Q

    0 0 Q0 1 11 0 01 1 nicht erlaubt

    Zustandstabelle NAND-Kippstufe Wertetabelle NANDRt St Pt+2∆ Qt+2∆0 0 nicht erlaubt0 1 1 01 0 0 1

    1 1 Qt Qt

    x y x y

    0 0 10 1 11 0 11 1 0

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • D-Flip-Flop

    D 1 R Q

    T T

    S Q

    R S Q

    0 0 Q0 1 11 0 01 1 nicht erlaubt

    D Q

    0 01 1

    Sinnlos? Verzögerung um 1 Takt

    Name Delay

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • JK-Flip-Flop

    K&

    J&

    R Q

    T T

    S Q

    R S Q

    0 0 Q0 1 11 0 01 1 nicht erlaubt

    J K R S Q

    0 0 0 0 Q0 1 Q 0 0

    1 0 0 Q 1

    1 1 Q Q Qpositiv alle Eingaben erlaubt, sinnvolle Funktionalität, vielseitig

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • T-Flip-Flop

    T J Q

    Clk Clk

    K Q

    J K Q

    0 0 Q0 1 01 0 1

    1 1 Q

    T Q

    0 Q

    1 Q

    Name Toggle

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Flip-Flops

    Wir haben also hier 4 verschiedene Flip-Flop-Typen

    Wozu brauchen wir eigentlich Flip-Flops?

    klar Realisierung von Speicher

    Was müssen wir für den Einsatz als Speicher wissen?

    klar gezielte Änderung von Speicherinhalten

    also Zustandstabellen eigentlich nicht interessant

    besser Ansteuertabellen

    etwas präziser

    Zustandstabelle Ansteuertabelle

    Eingabe ⇒ ZustandIst-Zustand,Soll-Zustand

    ⇒ Eingabe

    Anmerkung Ansteuertabellen können”don’t care“ enthalten

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Ansteuertabelle D-Flip-Flop

    ZustandstabelleD Q

    0 01 1

    AnsteuertabelleQalt Qneu D

    0 0 00 1 11 0 01 1 1

    Beobachtung Ansteuerung D vom alten Zustand unabhängig

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Ansteuertabelle T -Flip-Flop

    ZustandstabelleT Q

    0 Q

    1 Q

    AnsteuertabelleQalt Qneu T

    0 0 00 1 11 0 11 1 0

    Beobachtung Kenntnis des”alten“ Zustands erforderlich

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Ansteuertabelle RS-Flip-Flop

    ZustandstabelleR S Q

    0 0 Q0 1 11 0 01 1 nicht erlaubt

    AnsteuertabelleQalt Qneu R S

    0 0 ∗ 00 1 0 11 0 1 01 1 0 ∗

    Beobachtung wenn Zustand nicht wechselt, gibt esFreiheit in der Ansteuerung

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Ansteuertabelle JK-Flip-Flop

    ZustandstabelleJ K Q

    0 0 Q0 1 01 0 1

    1 1 Q

    AnsteuertabelleQalt Qneu J K

    0 0 0 ∗0 1 1 ∗1 0 ∗ 11 1 ∗ 0

    Beobachtung immer Freiheit in der Ansteuerung

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Unvollständig definierte Ansteuerfunktionen

    Wir haben für RS-Flip-Flops und JK-Flip-Flopsnur partiell definierte Ansteuerfunktionen

    Ist das ungünstig?

    Nein!

    Erinnerung Minimalpolynome für partiell definierte Funktionen

    Erinnerung Realisierungen können wesentlich einfacher sein

    Erinnerung Minimalpolynom für partiell definiertes f

    durch PI für f1 und Überdeckung von f0

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Huffmann Schaltwerk-Modell

    ein allgemeines, formales Schaltwerkmodell

    x1x2...

    xnSchaltnetz

    z1z2...zm

    ...

    ...

    y1

    yk

    Speicherw1

    wl

    Beobachtung führt Gelerntes über Schaltnetze, Flip-Flops undAutomaten sinnvoll zusammen

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Huffmann Schaltwerk-Modell

    etwas detaillierter

    x1...

    xn

    ...Ausgabe-

    Schaltnetz

    z1

    zm

    ...

    wl

    w1...

    ...... Speicher

    Ansteuer-

    Schaltnetz

    y1

    yk

    ...

    ...

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Schaltwerk-Entwurf

    Wunsch strukturierter Schaltwerk-Entwurf

    Was können wir überhaupt als Schaltwerk realisieren?

    klar alles, was als Automat beschrieben werden kannzum Beispiel

    ◮ Getränke-Automat

    ◮ Ampelsteuerung

    ◮ Waschmaschinen-Steuerung

    ◮ . . .

    Anmerkung Heuristiken und Erfahrung sind wichtig

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Schritte beim Schaltwerk-Entwurf

    0. Verstehen der Aufgabe

    1. Spezifikation des Verhaltens (z. B. als Mealy-Automat)

    2. Wahl der Coderierung von Eingaben, Zuständen, Ausgaben

    3. Wertetabelle mit Eingaben, Zustand, Ausgaben, neuem Zustand

    4. Wahl der Flip-Flop-Typen

    5. Ergänzung der Wertetabelle um die Flip-Flop-Ansteuerung

    6. Entwurf passender boolescher Funktionen

    7. Entwurf passender Schaltnetze

    8. Entwurf vollständiges getaktetes Schaltwerk

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Beispiel zum Schaltwerk-Entwurf

    zur Einführung ein”praktisches“ Beispiel

    hilfreich besonders gut verstandenes Problem

    Aufgabe Addition von zwei Betragszahlen

    Erinnerung wir haben

    Verfahren Größe Tiefe

    Schul-Methode ≈ 5n ≈ 2nCarry-Look-Ahead ≈ n2 ≈ 2 log2 n

    jetzt klein und flach mit einem Schaltwerkaber extrem langsam

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Entwurf Addierwerk: Schritt 0

    Schritt 0 verstehen der Aufgabe

    Wunsch Summanden bitweise eingebenSumme bitweise erhalten

    klar geht nur von rechts nach links

    Was muss man sich merken?

    klar nur den aktuellen Übertragalso 1 Bit

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Entwurf Addierwerk: Schritt 1

    Schritt 1 Spezifikation des Verhaltens

    Entscheidung Beschreibung durch Mealy-Automat

    Eingabealphabet Σ = {00, 01, 10, 11}Ausgabealphabet ∆ = {0, 1}Zustandsmenge Q = {0, 1}

    0 1

    11/0

    00/1

    01/1

    10/1

    00/0

    01/0

    10/0

    11/1

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Entwurf Addierwerk: Schritt 2

    Schritt 2 Wahl der Codierung: Eingaben, Zuständen, Ausgaben

    klar im Allgemeinen (fast) jede Freiheit

    hier kanonische Codierung naheliegend

    Codierung von Q

    q ∈ Q Codierung

    0 01 1

    Codierung von Σ

    w ∈ Σ Codierung

    00 0 001 0 110 1 011 1 1

    Codierung von ∆

    w ∈ ∆ Codierung

    0 01 1

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Entwurf Addierwerk: Schritt 3

    Schritt 3 Wertetabelle Eingaben, Zustand,neuer Zustand, Ausgaben

    naheliegend Eingaben heißen x , yalter Zustand heißt caltneuer Zustand heißt cneuAusgabe heißt s

    calt x y cneu s

    0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Entwurf Addierwerk: Schritt 4

    Schritt 4 Wahl der Flip-Flop-Typen

    Entscheidung JK-Flip-Flops

    Anmerkung

    ◮ nicht viele überzeugende Gründe

    ◮ weil es besonders viele Freiheiten erlaubt

    ◮ weil der Zustandswechsel nichts nahelegt

    ◮ weil es oft benutzt wird

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Enturf Addierwerk: Schritt 5

    Schritt 5 Ergänzung der Wertetabelle um Flip-Flop-Ansteuerungcalt x y cneu s J K

    0 0 0 0 0 0 ∗0 0 1 0 1 0 ∗0 1 0 0 1 0 ∗0 1 1 1 0 1 ∗1 0 0 0 1 ∗ 11 0 1 1 0 ∗ 01 1 0 1 0 ∗ 01 1 1 1 1 ∗ 0

    Ansteuertabelle JK-Flip-FlopQalt Qneu J K

    0 0 0 ∗0 1 1 ∗1 0 ∗ 11 1 ∗ 0

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Entwurf Addierwerk: Schritt 6

    Schritt 6 Entwurf passender boolescher Funktionencalt x y cneu s J K

    0 0 0 0 0 0 ∗0 0 1 0 1 0 ∗0 1 0 0 1 0 ∗0 1 1 1 0 1 ∗1 0 0 0 1 ∗ 11 0 1 1 0 ∗ 01 1 0 1 0 ∗ 01 1 1 1 1 ∗ 0

    calt

    0

    1

    00 01 11 10x y

    J(calt, x , y) = x y

    K (calt, x , y) = x y

    s(calt, x , y) = calt ⊕ x ⊕ y

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Entwurf Addierwerk: Schritt 7

    Schritt 7 Entwurf passender Schaltnetze

    J(calt, x , y) = x y

    K (calt, x , y) = x y

    s(calt, x , y) = calt ⊕ x ⊕ y

    1

    1

    &

    = 1x

    y

    & K

    J

    = 1 scalt

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Entwurf Addierwerk: Schritt 8

    Schritt 8 Entwurf des vollständigen Schaltwerks

    1

    1

    &

    = 1x

    y

    &

    = 1 s

    T T

    K

    J Q

    Q

    0 1 0 0 1 1+ 0 1 0 1 0 1

    000101

    Beobachung Eingabe (0, 0) im letzten Takt wichtigInitialisierung? Eingabe (0, 0)

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Unser Addierwerk: Serien-Addierer

    Fazit

    ◮ addiert beliebig lange Betragszahlen

    ◮ ist sehr klein und flach

    ◮ ist sehr leicht zu initialisieren

    ◮ ist extrem langsam

    Warum ist das Schaltwerk so langsam?

    klar und bekannt wegen der Überträge

    Müssen Überträge so lange dauern?

    bekannt im Allgemeinen nicht (siehe Addierer)

    aber Bei bit-weiser Eingabe schon!

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Über unsere Modelle

    Wir wissen schon Überträge werden nur manchmallange weitergereicht.

    Kann man ein Schaltwerk bauen, dass nur manchmal langsam ist?Problem unsere Automaten können das zunächst nicht

    Beobachtung bei Mealy- und Moore-Automat bestimmtLänge der Eingabe die Anzahl der Rechentakte

    darum Modifikation des Automatenmodells

    neu Erlaube leere Eingabe ε undsignalisiere Ende der Rechnung durch Rechenende-Zeichen

    Beobachtung Das ist fundamental neu für uns.Rechenzeit kann von der Eingabe abhängen(nicht nur von der Eingabelänge).

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Auf dem Weg zum besseren Addierwerk

    Wie wollen wir vorgehen?

    Beobachtung Eingaben müssen sofort ganz zur Verfügung stehensonst kann man nicht schneller sein

    also Eingabealphabet Σ = {0, 1}2n

    Eingabe xn−1xn−2 · · · x1x0yn−1yn−2 · · · y1y0 ∈ {0, 1}2n

    interpretieren alsxn−1 xn−2 · · · x0

    + yn−1 yn−2 · · · y0

    bekannte Idee zur LösungErsetze x und y durch x ′ und y ′ mit x + y = x ′ + y ′

    so lange, bis y ′ = 0 gilt.

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Eine gute Idee verallgemeinern

    Erinnerung Wir kennen das schon vom Halbaddierer. . .

    HAx

    y

    s

    cmit x + y = 2c + s = (c0)2 + s

    klar Das funktioniert auch für alle n Stellen parallel.

    HA

    y3 x3

    c3 s3

    HA

    y2 x2

    c2 s2

    HA

    y1 x1

    c1 s1

    HA

    y0 x0

    c0 s0

    x ′3 x′

    2 x′

    1 x′

    0 = s3 s2 s1 s0Ü y ′3 y

    2 y′

    1 y′

    0 = c3 c2 c1 c0 0Fortschritt? in y hinten

    ”neue“ 0

    also nach ≤ n Takten y = 0Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

  • Noch offene Fragen

    Was ist mit dem Ü?

    klar potenziell kann in jedem Takt vorne ein Überlauf entstehen

    Also bis zu n Überläufe speichern?

    zum Glück nein

    Wir wissen höchstens 1 Überlauf insgesamt

    Wann ist die Rechnung fertig?

    klar Rechnung fertig ⇔ y = 0

    also”done“ d = y0 ∨ y1 ∨ · · · ∨ yn−1 = ¬

    n−1∨

    i=0

    yi

    jetzt unsere Ideen zusammensetzen

    Sequenzielle Schaltungen Synchrone Schaltwerke Schaltwerk-Entwurf

    Sequenzielle SchaltungenEinleitung (Wiederholung)Modellierung mit Automaten

    Synchrone SchaltwerkeEinleitungFlip-Flops

    Schaltwerk-EntwurfEinleitungvon Neumann-Addierwerk