This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
MIN-FakultätFachbereich Informatik
64-040 Modul InfB-RS: Rechnerstrukturenhttps://tams.informatik.uni-hamburg.de/
lectures/2016ws/vorlesung/rs
– Kapitel 12 –
Andreas Mäder
Universität HamburgFakultät für Mathematik, Informatik und NaturwissenschaftenFachbereich InformatikTechnische Aspekte Multimodaler Systeme
verschiedene BeispieleAsynchrone SchaltungenLiteratur
A. Mäder 651
Schaltwerke12.1 Schaltwerke - Definition und Modelle 64-040 Rechnerstrukturen
I Schaltwerk: Schaltung mit Rückkopplungen und Verzögerungen
I fundamental andere Eigenschaften als SchaltnetzeI Ausgangswerte nicht nur von Eingangswerten abhängig
sondern auch von der Vorgeschichte⇒ interner Zustand repräsentiert „Vorgeschichte“
I ggf. stabile Zustände ⇒ Speicherung von InformationI bei unvorsichtigem Entwurf: chaotisches Verhalten
I Definition: mit RückkopplungenI Widerspruch: x = ¬xI Mehrdeutigkeit: x = ¬(¬x)I Beispiel mit zwei Variablen: x = ¬(a ∧ y) y = ¬(b ∧ x)
A. Mäder 652
Schaltwerke: Blockschaltbild12.1 Schaltwerke - Definition und Modelle 64-040 Rechnerstrukturen
Aktueller Zustand z
Schaltnetz
Speicherglieder
Eingangsvariablen x Ausgangsvariablen y
Taktsignal
τ bzw.
Folgezustand z+
I Eingangsvariablen x und Ausgangsvariablen yI Aktueller Zustand zI Folgezustand z+
I Rückkopplung läuft über Verzögerungen fi / Speicherglieder
A. Mäder 653
Schaltwerke: Blockschaltbild (cont.)12.1 Schaltwerke - Definition und Modelle 64-040 Rechnerstrukturen
Aktueller Zustand z
Schaltnetz
Speicherglieder
Eingangsvariablen x Ausgangsvariablen y
Taktsignal
τ bzw.
Folgezustand z+
zwei prinzipielle Varianten für die Zeitglieder1. nur (Gatter-) Verzögerungen: asynchrone oder
nicht getaktete Schaltwerke2. getaktete Zeitglieder: synchrone oder getaktete Schaltwerke
A. Mäder 654
Synchrone und Asynchrone Schaltwerke12.1 Schaltwerke - Definition und Modelle 64-040 Rechnerstrukturen
I synchrone Schaltwerke: die Zeitpunkte, an denen dasSchaltwerk von einem stabilen Zustand in einen stabilenFolgezustand übergeht, werden explizit durch ein Taktsignal(clock) vorgegeben
I asynchrone Schaltwerke: hier fehlt ein Taktgeber,Änderungen der Eingangssignale wirken sich unmittelbar aus(entsprechend der Gatterverzögerungen fi )
I potentiell höhere ArbeitsgeschwindigkeitI aber sehr aufwändiger EntwurfI fehleranfälliger (z.B. leicht veränderte Gatterverzögerungen
durch Bauteil-Toleranzen, Spannungsschwankungen, usw.)
A. Mäder 655
Theorie: Endliche Automaten12.1 Schaltwerke - Definition und Modelle 64-040 Rechnerstrukturen
FSM – Finite State MachineI Deterministischer Endlicher Automat mit AusgabeI 2 äquivalente Modelle
I Mealy: Ausgabe hängt von Zustand und Eingabe abI Moore: –"– nur vom Zustand ab
I 6-Tupel (Z;Σ;∆; ‹; –; z0)I Z Menge von ZuständenI Σ EingabealphabetI ∆ AusgabealphabetI ‹ Übergangsfunktion ‹ : Z × Σ → ZI – Ausgabefunktion – : Z × Σ → ∆ Mealy-Modell
– : Z → ∆ Moore- –"–I z0 Startzustand
A. Mäder 656
Mealy-Modell und Moore-Modell12.1 Schaltwerke - Definition und Modelle 64-040 Rechnerstrukturen
I Mealy-Modell: die Ausgabe hängt vom Zustand z und vommomentanen Input x ab
I Moore-Modell: die Ausgabe des Schaltwerks hängt nur vomaktuellen Zustand z ab
I Ausgabefunktion: y = –(z; x) Mealyy = –(z) Moore
I Überführungsfunktion: z+= ‹(z; x) Moore und Mealy
I Speicherglieder oder Verzögerung fi im Rückkopplungspfad
A. Mäder 657
Mealy-Modell und Moore-Modell (cont.)12.1 Schaltwerke - Definition und Modelle 64-040 Rechnerstrukturen
I Dateneingang D wird nur durch Takt-Vorderflanke ausgewertetI Gatterlaufzeiten für Funktion essentiellI Einhalten der Vorlauf- und Haltezeiten vor/nach der Taktflanke
die Änderungen dürfen frühestens zum Zeitpunkt (t1 + thold)beginnen, ansonsten würde Haltezeit verletztggf. muss fi‹min vergrößert werden, um diese Bedingungeinhalten zu können (zusätzliche Gatterverzögerungen)
I die Änderungen müssen sich spätestens bis zum Zeitpunkt(t2 − tsetup) stabilisiert haben (der Vorlaufzeit der Flipflops vordem nächsten Takt)
A. Mäder 690
Maximale Taktfrequenz einer Schaltung12.5 Schaltwerke - Zeitbedingungen 64-040 Rechnerstrukturen
I aus obigen Bedingungen ergibt sich sofort die maximalzulässige Taktfrequenz einer Schaltung
I Umformen und Auflösen nach dem Zeitpunkt des nächstenTakts ergibt zwei Bedingungen
I Pegelsteuerung: Schaltung reagiert, während das Taktsignalden Wert 1 (bzw. 0) aufweist
I Flankensteuerung: Schaltung reagiert nur, während dasTaktsignal seinen Wert wechseltI Vorderflankensteuerung: Wechsel von 0 nach 1I Rückflankensteuerung: –"– von 1 nach 0
Taktsignal: Prinzip und Realität12.6 Schaltwerke - Taktschemata 64-040 Rechnerstrukturen
0
1
0
1
0
1
t
t
t
I Werteverläufe in realen Schaltungen stark gestörtI Überschwingen/Übersprechen benachbarter SignaleI Flankensteilheit nicht garantiert (bei starker Belastung)
I pegelgesteuertes D-Latch ist bei aktivem Takt transparentI rück-gekoppelte Werte werden sofort wieder durchgelassenI Oszillation bei invertierten Rückkopplungen
I Reihenschaltung aus jeweils zwei D-LatchesI zwei separate Takte Φ1 und Φ2
I bei Takt Φ1 übernimmt vorderes Flipflop den Werterst bei Takt Φ2 übernimmt hinteres Flipflop
I vergleichbar Master-Slave Prinzip bei D-FF aus Latches
Zustandsdiagramm: Moore-Automat12.7 Schaltwerke - Beschreibung von Schaltwerken 64-040 Rechnerstrukturen
x
y
xD
C
B
1
Zustand
NameAusgangs-
werte
Übergang
Bedingung
A000
100
100
110x
y
x
I Ausgangswerte hängen nur vom Zustand abI können also im jeweiligen Knoten notiert werdenI Übergänge werden als Pfeile mit der Eingangsbelegung notiert,
die den Übergang aktiviertI ggf. Startzustand markieren (z.B. Segment, doppelter Kreis)
A. Mäder 706
Zustandsdiagramm: Mealy-Automat12.7 Schaltwerke - Beschreibung von Schaltwerken 64-040 Rechnerstrukturen
x / 000
y / 001
x / 111
Zustand
Übergang
Bedingung / Ausgangswerte
1 / 110
x / 101
y / 100
x / 100
DC
BA
Name
I Ausgangswerte hängen nicht nur vom Zustand sondern auchvon den Eingabewerten ab
I Ausgangswerte an den zugehörigen Kanten notierenI übliche Notation: Eingangsbelegung / Ausgangswerte
A. Mäder 707
„State-Charts“12.7 Schaltwerke - Beschreibung von Schaltwerken 64-040 Rechnerstrukturen
I erweiterte Zustandsdiagramme1. Hierarchien, erlauben Abstraktion
I Knoten repräsentieren entweder einen ZustandI oder einen eigenen (Unter-) AutomatenI History-, Default-Mechanismen
2. Nebenläufigkeit, parallel arbeitende FSMs3. Timer, Zustände nach max. Zeit verlassen
I beliebte Spezifikation für komplexe Automaten,eingebettete Systeme, Kommunikationssysteme, Protokolle etc.
I David Harel, Statecharts – A visual formalism for complexsystems, CS84-05, Department of Applied Mathematics,The Weizmann Institute of Science, 1984 [Har87]
always @(posedge clock or reset) // Trigger fuer Codebegin //
if (reset) // async. Resetdout = 1’b0; //
else // implizite Taktvorderflankedout = din; //
end //endmodule
I Deklaration eines Moduls mit seinen Ein- und AusgängenI Deklaration der speichernden Elemente („reg“)I Aktivierung des Codes bei Signalwechseln („posedge clock“)
A. Mäder 718
D-Flipflop in VHDLVery High Speed Integrated Circuit Hardware Description Language12.7 Schaltwerke - Beschreibung von Schaltwerken 64-040 Rechnerstrukturen
library ieee;use ieee.std_logic_1164.all;
entity dff is -- Black-Box Beschreibungport ( clock : in std_logic; -- Ein- und Ausgaenge
reset : in std_logic; --din : in std_logic; --dout : out std_logic); --
end entity dff;
architecture behav of dff is -- Verhaltensmodellbegin --
dff_p: process (reset, clock) is -- Trigger fuer Prozessbegin --
if reset = ’1’ then -- async. Resetdout <= ’0’; --
elsif rising_edge(clock) then -- Taktvorderflankedout <= din; --
end if; --end process dff_p; --
end architecture behav;
A. Mäder 719
Entwurf von Schaltwerken: sechs Schritte12.8 Schaltwerke - Entwurf von Schaltwerken 64-040 Rechnerstrukturen
1. Spezifikation (textuell oder graphisch, z.B. Zustandsdiagramm)2. Aufstellen einer formalen Übergangstabelle3. Reduktion der Zahl der Zustände4. Wahl der Zustandscodierung und Aufstellen der Übergangstabelle5. Minimierung der Schaltnetze6. Überprüfung des realisierten Schaltwerks
ggf. mehrere Iterationen
A. Mäder 720
Entwurf von Schaltwerken: Zustandscodierung12.8 Schaltwerke - Entwurf von Schaltwerken 64-040 Rechnerstrukturen
Vielfalt möglicher CodierungenI binäre Codierung: minimale Anzahl der ZuständeI einschrittige CodesI one-hot Codierung: ein aktives Flipflop pro ZustandI applikationsspezifische Zwischenformen
I es gibt Entwurfsprogramme zur AutomatisierungI gemeinsame Minimierung des Realisierungsaufwands von
Ausgangsfunktion, Übergangsfunktion und Speichergliedern
A. Mäder 721
Entwurf von Schaltwerken: Probleme12.8 Schaltwerke - Entwurf von Schaltwerken 64-040 Rechnerstrukturen
Entwurf ausgehend von Funktionstabellen problemlosI alle Eingangsbelegungen und Zustände werden berücksichtigtI don’t-care Terme können berücksichtigt werden
zwei typische Fehler bei Entwurf ausgehend vom ZustandsdiagrammI mehrere aktive Übergänge bei bestimmten Eingangsbelegungen⇒ Widerspruch
I keine Übergänge bei bestimmten Eingangsbelegungen⇒ Vollständigkeit
A. Mäder 722
Überprüfung der Vollständigkeit12.8 Schaltwerke - Entwurf von Schaltwerken 64-040 Rechnerstrukturen
p Zustände, Zustandsdiagramm mit Kanten hi j(x):Übergang von Zustand i nach Zustand j unter Belegung x
I für jeden Zustand überprüfen:kommen alle (spezifizierten) Eingangsbelegungen auchtatsächlich in Kanten vor?
∀i :2p−1_j=0
hi j(x) = 1
A. Mäder 723
Überprüfung der Widerspruchsfreiheit12.8 Schaltwerke - Entwurf von Schaltwerken 64-040 Rechnerstrukturen
p Zustände, Zustandsdiagramm mit Kanten hi j(x):Übergang von Zustand i nach Zustand j unter Belegung x
I für jeden Zustand überprüfen:kommen alle (spezifizierten) Eingangsbelegungen nureinmal vor?
∀i :2p−1_
j;k=0; j 6=k
`hi j(x) ∧ hik(x)
´= 0
A. Mäder 724
Vollständigkeit und Widerspruchsfreiheit: Beispiel12.8 Schaltwerke - Entwurf von Schaltwerken 64-040 Rechnerstrukturen
DC
BA
x1
x1
x1x0
I Zustand A, Vollständigkeit: x1 ∨ x1 x0 ∨ x1 = 1 vollständigI Zustand A, Widerspruchsfreiheit: alle Paare testenx1 ∧ x1 x0 = 0 okx1 ∧ x1 = 0 ok
x1 x0 ∧ x1 6= 0 für x1 = 0 und x0 = 1 beide Übergänge aktivA. Mäder 725
Beispiel Verkehrsampel:I drei Ausgänge: {rot, gelb, grün}I vier Zustände: {rot, rot-gelb, grün, gelb}I zunächst kein Eingang, feste Zustandsfolge wie oben
I Aufstellen des ZustandsdiagrammsI Wahl der ZustandscodierungI Aufstellen der Tafeln für ‹- und –-SchaltnetzI anschließend Minimierung der SchaltnetzeI Realisierung (je 1 D-Flipflop pro Zustandsbit) und Test
I 4-bit statt minimal 2-bit für die ZuständeI Übergangsfunktion ‹ minimal (Automat sehr schnell)I Ausgangsfunktion – sehr einfach:gr = z2, ge = z1 ∨ z3 und r t = z0 ∨ z1
I Di = Qi : jedes Flipflop wechselt bei seinem TaktimpulsI Takteingang C0 treibt nur das vorderste FlipflopI Ci = Qi−1: Ausgang der Vorgängerstufe als Takt von Stufe i
I erstes Flipflop wechselt bei jedem Takt ⇒ Zählrate C0=2zweites Flipflop bei jedem zweiten Takt ⇒ Zählrate C0=4n-tes Flipflop bei jedem n-ten Takt ⇒ Zählrate C0=2n
I sehr hohe maximale Taktrate− Achtung: Flipflops schalten nacheinander, nicht gleichzeitig
I Stunden Minuten Sekunden (hh:mm:ss)I async. BCD-Zähler mit Takt (rechts) und Reset (links unten)I Übertrag 1er- auf 10er-Stelle jeweils beim Übergang 9→ 0I Übertrag und Reset der Zehner beim Auftreten des Wertes 6
I Beispiel für komplexe SchaltungI mehrere einfache KomponentenI gekoppelte Automaten, Zähler etc.
I DCF77 ZeitsignalI Langwelle 77,5KHzI Sender nahe FrankfurtI ganz Deutschland abgedeckt
I pro Sekunde wird ein Bit übertragenI Puls mit abgesenktem Signalpegel: „Amplitudenmodulation“I Pulslänge: 100ms entspricht Null, 200ms entspricht EinsI Pulsbeginn ist Sekundenbeginn
I pro Minute werden 59 Bits übertragenI Uhrzeit hh:mm (implizit Sekunden), MEZ/MESZI Datum dd:mm:yy, WochentagI ParitätI fehlender 60ster Puls markiert Ende einer Minute
Multiplex-Siebensegment-Anzeige12.9.3 Schaltwerke - Beispiele - verschiedene Beispiele 64-040 Rechnerstrukturen
Ansteuerung mehrstelliger Siebensegment-Anzeigen?I direkte Ansteuerung erfordert 7 ·n Leitungen für n ZiffernI und je einen Siebensegment-Decoder pro Ziffer
Zeit-Multiplex-Verfahren benötigt nur 7 + n LeitungenI die Anzeigen werden nacheinander nur ganz kurz eingeschaltetI ein gemeinsamer Siebensegment-Decoder
Eingabe wird entsprechend der aktiven Ziffer umgeschaltetI das Auge sieht die leuchtenden Segmente und „mittelt“I ab ca. 100Hz Frequenz erscheint die Anzeige ruhig
A. Mäder 751
Multiplex-Siebensegment-Anzeige (cont.)12.9.3 Schaltwerke - Beispiele - verschiedene Beispiele 64-040 Rechnerstrukturen
Hades-Beispiel: Kombination mehrerer bekannter einzelnerSchaltungen zu einem komplexen GesamtsystemI vierstellige AnzeigeI darzustellende Werte sind im RAM (74219) gespeichertI Zähler-IC (74590) erzeugt 2-bit Folge {00, 01, 10, 11}I 3:8-Decoder-IC (74138) erzeugt daraus die Folge
{1110, 1101, 1011, 0111} um nacheinander je eineAnzeige zu aktivieren (low-active)
I Siebensegment-Decoder-IC (7449) treibt die siebenSegmentleitungen
A. Mäder 752
Multiplex-Siebensegment-Anzeige (cont.)12.9.3 Schaltwerke - Beispiele - verschiedene Beispiele 64-040 Rechnerstrukturen
I einfaches Modell einer generischen nicht-getakteten SchaltungI Beispiel zum Entwurf und zur KaskadierungI Muller C-Gate als SpeichergliederI beliebige Anzahl Stufen
I neue Datenwerte von links in die Pipeline einfüllenI Werte laufen soweit nach rechts wie möglichI solange bis Pipeline gefüllt ist
I Datenwerte werden nach rechts entnommenI Pipeline signalisiert automatisch, ob Daten eingefüllt oder
[SS04] W. Schiffmann, R. Schmitz: Technische Informatik 1 –Grundlagen der digitalen Elektronik.5. Auflage, Springer-Verlag, 2004. ISBN 978–3–540–40418–7
[Rei98] N. Reifschneider: CAE-gestützte IC-Entwurfsmethoden.Prentice Hall, 1998. ISBN 3–8272–9550–5
[WE94] N.H.E. Weste, K. Eshraghian:Principles of CMOS VLSI design – A systems perspective.2nd edition, Addison-Wesley, 1994. ISBN 0–201–53376–6
[Har87] D. Harel: Statecharts: A visual formalism for complexsystems. in: Sci. Comput. Program. 8 (1987), Juni, Nr. 3,S. 231–274. ISSN 0167–6423
[Hei05] K. von der Heide: Vorlesung: Technische Informatik 1 —interaktives Skript. Universität Hamburg, FB Informatik, 2005.tams.informatik.uni-hamburg.de/lectures/2004ws/