/media/sda-magnetic/david/Dok-15-2023-11-27/fernuni-hagen/cs-i-ii/2024-01-01-cs2-exzerpt/csi-kap2.txt


Zustand

Schaltwerk arbeitet in Schritten

Beispiel 3.1 Eine Fußgänger-Ampel zeigt normalerweise Rot. Wenn man den
Knopf drückt, geht sie auf Grün, verbleibt dort für 3 Sekunden, und wechselt
wieder auf Rot.

Zustandsgraph
Knoten des Graphen
Knoten des Graphen sind die Zustände des Schaltwerks

Gerichtete Kante
Eingabe i
Ausgabe o

i/o Durch Schrägstrich getrennt

Signal knopf

* steht für beliebige Eingabe

Ausgabe: Signal Farbe Wert (0 Rot), (1 Grün)

Zeitintervalle

z0->z1
z1->z0
z0->z0

Mit fester Schrittdauer
z0->z1
z1->z2
z2->z0
z0->z0

Eingaben:
    Knopf nicht gedrückt Ampel rot
    Knopf gedrückt Ampel rot
    Ampel rot
    Ampel grün


In der Regel sind die schritte gleichlang

Takte, Länge jedes Schritts: Taktdauer

Taktsignal

Takt
Taktdauer
Taktsignal

Taktsignal: Signal, das nach einer Taktdauer steigende Flanke hat

Der Kehrwert der Taktdauer: Frequenz

Die Mengen
    der Zustände
    Eingaben
    und Ausgaben
sind endlich

Konkret spricht man von einem Mealy Automaten

Ausgehende Kante
mögliche Zustände
sind definiert

Spezialfall: Ausgabe ist nur von dem aktuellen Zustand abhängig nicht von der Eingabe: Moore-Automat

Implementierung von Schaltwerken

Die Möglichen Zustände eines Schalwerks werden mit 0 beginnend, konsekutiv nummeriert und unär kodiert
d.h. wenn es n verschiedene Zustände 0 bis n-1 gibt, besteht die Zustandskodierung aus n Bits und im Zustand i hat genau Bit i den Wert 1, alle anderen Bits haben den Wert 0

Der Aktuelle Zustand wird in einem Speicherglied gespeichert.

n-Bit Register

Schaltglied mit n Dateneingängen

n Datenausgänge

Steuereingang, der Clock oder Taktsignal genannt wird

n-Bit-Register
    n Dateneingänge
    n Datenausgänge
    Steuereingang, Clock oder Taktsignal

Mit steigender Flanke wird der Wert ausgegeben

Übergangsschaltnetz

Ausgangsschaltnetz: Ausgabe

Nachfolgezustand

x, z2
z0+, z0, z1+, z1, zw+

Übergangsschaltnetz für
 z0+
 z1+
 z2+

Übergangsschaltnetz->Register

n-Bit Register

 -> Übergangsschaltnetz für z0+ -> 3 Bit Register -> z0 ->
 -> Übergangsschaltnetz für z1+ -> 3 Bit Register -> z1 ->
 -> Übergangsschaltnetz für z2+ -> 3 Bit Register -> z2 ->

Die Wertetabellen dieser beiden Schaltfunktionen kann man alternativ in einem ROM oder PROM speichern

Mikroprogramm

Eine solche Speicherung von Nachfolgezustände und Ausgaben nennt man Mikroprogramm

Und das Schaltwerk Mikroprogrammsteuerwerk

Gleichung

z0+ = z0 AND NOT Knopf OR z2
z1+ = z0 AND knopf
z2+ = z1

farbe = z0 AND knopf OR z1 OR z2

Herleitung des Ausgangssschaltnetzes und Übergangsschaltnetzes des Zustandsgraphen

- Speicherglieder
- Gatter
- Transformat Mealy und Moore
- Binäre Codierung

Synthese:
    Zustandsgraph
    Zustandstabelle
    Gleichung für Übergangs und Ausgangsschaltnetz

Analyse

Zustandstabelle
aktueller Zustand       Eingabe     Ausgabe         Folgezustand        Code Folgezustand
                                                                        z0+ z1+ z2+
0                       0           0               0                   1   0   0
0                       1           1               1                   0   1   0
1                       0           1               2                   0   0   1
1                       1           1               2                   0   0   1
2                       0           1               0                   1   0   0
2                       1           1               0                   1   0   0

Nachfolge-Zustand: Angabe Nummer des Zustandes und seine Kodierung

Zeile drei und vier Zusammenfassung zu einer Zeile
1   *   1   2   0   0   1

Ampel: Beginnt mit Rot-Phase von 2 Sekunden,
gefolgt von einer Geld-Phase 1 Sekunde
Die Grünphase mindestens 2 Sekunden
Kann, wenn warten auf 5 Sekunden verlängert werden

ro, ge, gr

akt. Zustand Eingabe    Ausgabe Folgezustand    Codierung:  z0+ z1+ z2+ z3+ z4+ z5+ z6+ z7+ z8+
0
1
2
3
4
5
6
7
8

z0+ = z5 AND NOT warte OR z6 AND NOT warte OR z7 AND NOT warte OR z8 = (z5 OR z6 OR z7) AND NOT warte OR z8

o = z0 AND (a1 OR a0) OR z1 AND a0
z0+ = z0 AND (a1 OR a0) OR z2
z1+ = z1 AND NOT a1 OR z0 AND (a1 OR a0)
z2+ = z1 AND a1

Ein Schaltwerk dient lediglich der Steuerung
Tests und Berechungen auf Daten durchführen: Komplexes Schaltwerk

Komplexes Schaltwerk: Besteht aus
    Schaltwerk
    und Steuerwerk

Speicherglieder

Latch, Flip Flop

x NOR 0 = NOT x
x NOR 1 = 0

R, S, Q, NOT Q

Q := R NOR Q'
Q' := S NOR Q

Setzvorgang = Setzsignal = Set = S
Rücksetzen, Rücksetzsignal, Rest = R

SR-Latch

kreuzweise Rückkopplung

SR-Latch Flimmert

D-Flipflop

Für die Zeit der Steigendesn Taktflanke darf es sich nicht ändern

Setzzeit (Setup-Time)
Haltezeit (Hold Time)

Wirkintervall

Kippintervall: Das Intervall, in dem die neu eingespeicherten Datensignal frühestens oder spätestens am Datenausgang des Flipflops erscheint

Die Zeit: die sich der Wert des Datensignal vor der Flanke nicht ändern darf: Setzzeit
Die Zeit: Die sich der Wert des Datensignal nach der Flanke nicht ändern darf: Haltezeit

Taktsignal: CLK

Flip Flops: bei denen sich Wirk und Kippintervall nicht überlappen: Master Slave Flip Flops

Bestehen in der Regel aus hintereinander geschalteten Flip Flops

Enable, CLK

ENABLE, CLK, D

ENABLE. CLK, R, S

Binärcodiert und das davor bitte genauer schreiben

Komplexe Schaltwerke
    Mikropgrammierung
    Tabellen
    Multiplikation
    Komplexes Schaltwerk
    Hardware Algorithmus
    steuernder Teil, verarbeitender Teil

    Steuerkwer und Operationswerk

    Schaltwerke für komplizierte Aufgabenstellungen, d.h. Schaltwerke mit einer grossen Zahl von Zuständen

Operationswerk:
    Verarbeitender Teil
    Eingabevektor X wird schrittweise in Ausgabevektor Y umgeformt
    Eingabevektor
    Zwischenergebnisse
    und Ausgabevektor werden in Registern zwischengespeichert

    Datenpfade zwischen Registern und Solchen Operationsschaltnetzen

    Steuervektor

    Die Auszuführenden Operationen

    Statusvektor

Steuwervektor
Statusvektor

    Eingabevektor X
    Ausgabevektor Y
    Steuervektor S
    Statusvektor V

    Operationswerk
    Steuwerwerk

    Operationswerk
        Eingabevektor X
        Ausgabevektor Y
        Steuervektor S
        Statusvektor V
    Steuwerwerk
        Steuervektor S
        Statusvektor V

RTL-Notation: Register Transfer Level

AR: address register
Daten: R und durchnummieren

Register wird als Vektor definiert, indem man die Randbits angibt

R2(7:0)
R2 8 Bit Register

LSB - Least Significant Bit - 2^0 - das Rechte Bit
MSB - Most Significant Bit - 2^7 - Das Linke Bit

Beginnt man mit dem höherwertigen Byte D31, ..., D24: Big Endian-Reihung

D7..D0, beginnt: Little-Endian

Datenübernahme von Steuersignal abhängig

if (S1 = 1) then (R1 <- R1 + R2)

S1: Steuervariable

Takt, S1 gehen in AND gehen in CLK oder ENABLE von R1

if-Anweisung verkürzt

S1:R1<-R1+R2

Neben Register kann Speicher verwendet werden
Abkürzung: M

IR <- M[PC], PC <- PC+1

PC: Programm Counter
IR: Instruction Register

PC++ Verkürzte Schreibweise

Mikropoerationen
    Logisch, bitweise
        NOT
        AND
        OR
        EXOR
    arithmetisch
        Addition +
        Um 1 Inkrementieren ++
        Subtraktion -
        Um 1 dekrementieren --
        Einerkomplemnent
    Verschieben und Konkatenation
        Schiebe um n Bits nach Links << n
        Schiebe um n Bits nach Rechts >> n
        Rotiere um n Bit nach links <-|n
        Rotiere um n Bit nach Rechts |-> n
        Verbinde zwei Vektoren zu einem grösseren Vektor ||

    Logisch
    Arithmetisch
    Verschieben und Konkatenation

    Mikrooperation, realisiert durch
        Schaltnetze, Addition
        An und Umordnen der Datenleitungen, Konkatenation, Schiebemultiplexer

    Die Verkettung dieser Elementaren Operationen: Makrooperation

    ASM-Diagramme:

    Algorithmic State Machine Chart

    ASM-Diagramm ähnelt Flussdiagramm

1.) Flussdiagramm
2.) ASM-Diagramm

    Boxen:
        Zustandsboxen
        Entscheidungsboxen
        Bedingte Ausgangsboxen

Zustandsbox bezeichnet durch
    Zustandsnamen
    Zustandscode

Innerhalb der Zustandsbox wird einem oder mehreren Registern ein Wert zugewiesen

Anfangszustand Z0

Bedingte Ausgangsboxen: Bei Mealy

ASM-Block: Zustandsbox am Eingang

Konstruktionsregeln für Operationswerke

Für Jede Variable ein Register
Wenn Variable mehr als ein Ausdruck, davor Multiplexer
Registerblock
Zugriff zeitversetzt über Bus
Ports: Schreibe und Leseports
Konstanten fest verdrahtet
Die Berechnung der Ausdrücke mittels Funktionsschaltnetzen
Wertezuweisungen können parallel ausgeführt werden
Wenn keine Datenabhängigkeiten bestehen
Zur Abfrage der Bedingungen, Statusvariablen