entwurf digitaler schaltungen (f3)tech · inhalt f2: handwerkszeug teil 2 automaten 1.1...
Post on 24-Sep-2019
2 Views
Preview:
TRANSCRIPT
Entwurf digitaler Schaltungen (F3)
Handwerkszeug Teil 2
Prof. G. Kemnitz
Institut für Informatik, Technische Universität Clausthal17. Juni 2014
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 1/138
Inhalt F2: Handwerkszeug Teil 2
Automaten1.1 Modellierung und
Klassi�kation1.2 Automat als Schaltung1.3 Entwurf mit KV-Diagrammen1.4 Beschreibung in VHDL1.5 Redundante Zustände1.6 Beispiel Zahlenschloss1.7 Aufgaben
Operationssteuerung2.1 Serieller Addierer2.2 Divisionswerk2.3 Beispiel Wegemessung2.4 Aufgaben
Zeitverhalten3.1 Halte- und
Verzögerungszeiten3.2 Laufzeitanalyse3.3 Speichervor- und
Nachhaltezeiten3.4 Register-Transfer-Funktionen3.5 Constraints3.6 Aufgaben
Asynchrone Eingabe4.1 Abtastung4.2 Entprellen4.3 Asynchrone Initialisierung4.4 Eingabesynchronisation4.5 Aufgaben
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 2/138
Lernziele
Automaten: Beschreibung von Abläufen mit Automaten.Schaltungsentwurf für Automaten mit KV-Diagrammen.Beschreibung von Automaten in VHDL und Umgang mitredundanten Zuständen.
Operationssteuerungen: Erweiterung des Automatenmodells umdie Steuerung und Auswertung von Register-Transfer-Operatio-nen. Sequentiell arbeitende Rechenwerke.
Zeitverhalten: Modellierung und Kontrolle von Zeitbedingungen.
Asynchrone Eingabe: Robuste Datenübernahme von Schaltern,Tastern und Systemen mit einem anderen Takt.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 3/138
1. Automaten
Automaten
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 4/138
1. Automaten
Automaten
Automaten sind
ein Basismodell der Mathematik und der TheoretischenInformatik,
ein Mittel zur Spezi�kation von Abläufen und Testfällen beider Programmierung und
Steuerungen in der Automatisierungstechnik.
In der Digitaltechnik dienen Automaten vor allem zur Steuerungvon Hardware-Abläufen.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 5/138
1. Automaten 1. Modellierung und Klassi�kation
Modellierung und Klassi�kation
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 6/138
1. Automaten 1. Modellierung und Klassi�kation
Endlicher Automat (engl. FSM �nite state machine)
Ein endlicher Automat ist ein mathematisches Funktionsmodellzur Beschreibung sequentieller Abläufe. Er ist de�niert durch
eine Eingabemenge Σ = {E1, E2, . . .},eine Zustandsmenge S = {Z1, Z2, . . .},einen Anfangszustand aus der Zustandsmenge Z1 ∈ S,eine Ausgabemenge: Π = {A1, A2, . . .},eine Übergangsfunktion: fs : S × Σ→ S undeine Ausgabefunktion: fa : S × Σ→ Π.
In der Darstellung als Graph werden Zustände durch Knoten undZustandsübergänge durch Kanten dargestellt. Der Anfangs-zustand bekommt die Startkennung. Die Kanten sind mit denEingaben beschriftet, bei denen die Übergänge statt�nden.
Z1 Z2
E1
E2
ZustandsubergangKennzeichnung des Startzustands
Zustand
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 7/138
1. Automaten 1. Modellierung und Klassi�kation
Transduktor, Moore- und Mealy-Automat
Die für die Digitaltechnik interessanten Automaten sindTransduktoren. Sie generieren Ausgaben in Abhängigkeiten vonZustand und Eingabe und werden für Steuerungsaufgabeneingesetzt. Es wird zwischen zwei Typen unterschieden:
Moore-Automat: Die Ausgabe hängt nur vom Zustand ab.Mealy-Automat: Die Ausgabe ist den Zustandsübergängenzugeordnet.
R/N
A
D
V/K
H/K
H/N
B
C
R/L V/M
H/M
H/L
RV
D
A
K
N
H
H
B
C
L
M
R V
H
HV
R
V
R
Moore-Automat
V/L
R/K
R/M
V/N
Mealy-Automat
S = {A,B,C,D}
Π = {K,L,M,N}Ausgabemenge
Zustandsmenge
EingabemengeΣ = {H,V,R}
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 8/138
1. Automaten 1. Modellierung und Klassi�kation
Mit beiden Automatentypen lassen sich dieselben Zielfunktionenbeschreiben. Die Moore-Form braucht mehr Zustände, dieMealy-Form hat eine kompliziertere Ausgabefunktion und ist oftunübersichtlicher.
Wenn keine Ausgaben explizit zugeordnet sind, ist der Zustanddie Ausgabe. Kanten mit demselben Anfangs- und Endknotenkönnen weggelassen werden.
Eine weitere Sonderform sind autonome Automaten. Sie habenkeine Eingabe und schalten in jedem Schritt einen Zustandweiter. Zyklische autonome Automaten dienen z.B. als Taktteilerund zyklenfreie zur Steuerung von Initialisierungsabläufen.
A B C D
EFGH
A B C D
E G HF
zyklischer autonomer Automat zyklenfreier autonomer Automat
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 9/138
1. Automaten 1. Modellierung und Klassi�kation
Spezi�kation einer Türsteuerung
In der Digitaltechnik dienen Automaten hauptsächlich zurSteuerung von Abläufen, z.B. dem Ö�nen und Schlieÿen einerFahrstuhltür.
Eingangssignale der Türsteuerung:Sensorsignal �Tür ist komplett auf� (SA = 1),Sensorsignal �Tür ist komplett zu� (SZ = 1),Tastereingabe �Tür ö�nen� (TA = 1) undTastereingabe �Tür schlieÿen� (TS = 1).
Gesteuert wird der Schlieÿmotor der Tür. Die Ausgaben sind:�Motor aus� (A0),�Tür ö�nen� (AA) und�Tür schlieÿen� (AS).
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 10/138
1. Automaten 1. Modellierung und Klassi�kation
Der Steuerablauf in der Moore-Form hat die Zustände �auf�,�schlieÿen�, �zu� und �ö�nen�. Bei den Tastereingaben wechseltder Automat in die Zustände �ö�nen� bzw. �schlieÿen� und beiAktivierung der Endlagenschalter in die Zustände �auf� bzw.�zu�.
aufA0
zuA0
TS
Mealy-Automat
TA
Moore-Automat
TS
TA
TS
TASZ
SA
offnenAA AS
offnen
schließenschließen
wenn ”offnen”∧SA
sonst wenn ”schließen”∧SZ
sonst Ausgabe A0
Ausgabe AA
Ausgabe AA
In der Mealy-Form werden nur die Zustände �ö�nen� und�schlieÿen� unterschieden. Das Abschalten des Motors über dieEndlagenschalter ist in der Ausgabefunktion enthalten.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 11/138
1. Automaten 1. Modellierung und Klassi�kation
Die Automatenbeschreibung des Moore-Automaten ist nochfehlerhaft/unvollständig. Sie beschreibt z.B. nicht, was in denZuständen �ö�nen� und �schlieÿen� bei gleichzeitiger Aktivie-rung von Taster und Endlagenschalter passieren soll. Wenn beideTaster gedrückt sind, ist der permanente Wechsel zwischen�ö�nen� und �schlieÿen� sicher unerwünscht. Verbesserung:
aufA0
zuA0
offnenAA AS
schließen
Mealy-Automat
TA
More-Automat
TS ∧ SA ∧ TA
TA ∧ SZ
offnen
schließen
wenn ”offnen”∧SA
sonst wenn ”schließen”∧SZ
sonst Ausgabe A0
Ausgabe AA
Ausgabe AA
TS ∧ TATS
SZ
SA
TA
Die Ablaufspezi�kation mit Automaten ist vor allem deshalbbeliebt, weil sie anschaulich ist und solche Probleme aufdeckt.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 12/138
1. Automaten 2. Automat als Schaltung
Automat als Schaltung
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 13/138
1. Automaten 2. Automat als Schaltung
Automaten als Schaltung
Bei der Realisierung als digitale Schaltung sind die Eingaben,Zustände und Ausgaben Bitvektoren. Die Unterscheidung von mWerten verlangt mindestens
n ≥ log2 (m)
Bits. Der Zustand wird in einem Register gespeichert.Anfangszustand ist der Initialisierungswert des Register. DieZustandsübergänge erfolgen mit der aktiven Takt�anke. DieÜbergangs- und Ausgabefunktion sind Verarbeitungsfunktion:
I
II
fy(x, s)fs(x, s) Ubergangsfunktion
Ausgabefunktion
fs(x, s)
fy(x, s)
s
yx
T
Tsx Eingabe
Zustandy Ausgabe
TaktInitialisierungssignal
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 14/138
1. Automaten 2. Automat als Schaltung
Die Änderungen des Eingabe- und das Initialisierungssignalsmüssen zeitlich zur aktiven Takt�anke ausgerichtet sein. DieAusgabe wird in ihrem Gültigkeitsfenster, in der Regel mit dernächsten aktiven Takt�anke, abgetastet. Die dafür erforderlichenEin- und Ausgaberegister werden nicht zur Schaltung desAutomaten gezählt.
I
IIxfs(x, s)
fy(x, s)
xs
y
T
I+
x+ y’
S1 S2
S1S0 S2
x+ Eingabe einen Takt zuvorI+ Initialisierungssignal einen Takt zuvory’ Ausgabesignal einen Takt verzogert
Folgezustandswertes+
AbtastzeitpunktWert ungultig / ohne Bedeutung
X1 X2
X1 X2 X3
X3
Y1 Y2
Y1 Y2
I+
T
y’
y
s
s+
x
x+
s+
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 15/138
1. Automaten 2. Automat als Schaltung
Bei einem Moore-Automaten ist die Ausgabe nicht von derEingabe abhängig.
II
I
xsy
T
EingabeZustandAusgabeInitialisierungssignalTakt
sfs(x, s) fy(s) y
T
x
Ohne explizite Zuordnung von Ausgaben ist die Ausgabe derZustand.
I
Is
fs(x, s)
T
xy
Bei einem autonomen Automaten ist der Folgezustand nur eineFunktion des Ist-Zustands.
I
Is
y
T
fs(s)
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 16/138
1. Automaten 3. Entwurf mit KV-Diagrammen
Entwurf mit KV-Diagrammen
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 17/138
1. Automaten 3. Entwurf mit KV-Diagrammen
Vorwärts-/Rückwärtszähler
Die Funktion sei als Graph gegeben. Das Beispiel ist ein Zähler,der bei Eingabe �V� vorwärts, bei �R� rückwärts zählt und bei�H� seinen Zustand beibehält. Die Zählfolge ist �A�, �B�, ... DieAusgabe ist den Übergängen zugeordnet (Mealy-Automat):
Zustands
R/N
A B
CD
V/L
R/LV/KR/K
V/M
R/M
V/N
H/L
H/M
H/K
H/N
Π = {K,L,M,N}S = {A,B,C,D}Σ = {H,V,R}
Anfangszustand
Eingabemenge
Zustandsmenge
Ausgabemenge
x/y
Eingabewert
Ausgabewert
Ausgehend davon sind die Codierung der symbolischen Wertesowie die Gröÿe des Zustandsregisters festzulegen und dieÜbergangs- und Ausgabefunktion zu entwerfen.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 18/138
1. Automaten 3. Entwurf mit KV-Diagrammen
Aufstellen der Tabellen für die Übergangs- und Ausgabefunktion.Festlegung der Zustandscodierung.
⇒ ⇒
BA
CD
V
BCDA
H
BA
CD
R
BA
C
D
V H R
KLMNK
LMN
KLM
N 0010
1011
KLMN
1011
CD
0010
VHR
000110 01
00
1011
00011011
000110
11
00
011011
00 01 10
00011011
000110
11
00
011011
00 01 10
gangs und Ausgabefunktiongangs und Ausgabefunktionsymbolorientierte Uber- bitvektororientierte Uber-
s+ = fs(x, s)
s x :
AB
s x :
s+ = fs(x, s)
codierungZustands-
y = fa(x, s) y = fa(x, s)
Die drei bzw. vier symbolischen Werte für die Eingabe, dieAusgabe und den Zustand verlangen mindestens je zwei Bit. DieEingabecodierung ist im Beispiel willkürlich gewählt. DieAusgabecodierung ist so gewählt, das die Übergangs- und dieAusgabefunktion identisch sind. Das Zustandsregister muss zweiBit breit sein. Der Initialisierungswert �A� ist mit "00" codiert.Zustandscodierung ist so gewählt, dass y = s+ gilt.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 19/138
1. Automaten 3. Entwurf mit KV-Diagrammen
Aufstellen der KV-Diagramme
Für jedes Zustands- und jedes Ausgabebit ist ein KV-Diagrammaufzustellen. Wegen y = s+ genügen im Beispiel zwei:
s1 s1
x1
x0
s0 s0
0
1
0
1 0 1
0 1
- - - -
1
1 1
0
0
1 0 1
0
- - - -
1 0 0 1
s+0 = y0s+1 = y1
0
V
H
R
-
A B D C A B D C
0 1aa
b
aaa
d
c
b e
y0 = s+0 = s0x0 ∨ s0x0
y1 = s+1 = s1s0x1x0 ∨ s1s0x1 ∨ s1s0x1 ∨ s1x0 ∨ s1s0x1
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 20/138
1. Automaten 3. Entwurf mit KV-Diagrammen
Vom KV-Diagramm zur Schaltung
Im nächsten Schritt sind die minimierten logischen Funktionendurch verfügbare digitale Bausteine nachzubilden. Früher, als derdigitale Schaltungsentwurf noch überwiegend Handarbeit war,wurden vorzugsweise Schaltkreise mit mehreren NAND-Gatterneingesetzt (vergl. Foliensatz F1). Die Gleichungsumformung ausder AND-OR-Form in die NAND-NAND-Form erfolgt mit Hilfeder de morganschen Regeln:
y0 = s+0 = s0x0 ∨ s0x0 = (s0x0) (s0x0)
y1 = s+1 = s1s0x1x0 ∨ s1s0x1 ∨ s1s0x1 ∨ s1s0x1 ∨ s1x0
= (s1s0x1x0) (s1s0x1) (s1s0x1) (s1s0x1) (s1x0)
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 21/138
1. Automaten 3. Entwurf mit KV-Diagrammen
y0 = s+0 = (s0x0) (s0x0)
y1 = s+1 = (s1s0x1x0) (s1s0x1) (s1s0x1) (s1s0x1) (s1x0)
Umsetzung der logischen Funktionen in eine Gatterschaltung.Ergänzung der Speicherzellen des Zustandsregisters, des Taktsund des Initialisierungssignals.
&Rx
s0s0 x1x1s1s1 x0x0
Rx
s0
y0
&
&
&
&
&
&
&
y1
s1&
x0
x1
I
T⇒Web-Projekt:
P2.2/Test VRZ.vhdl
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 22/138
1. Automaten 3. Entwurf mit KV-Diagrammen
Mit dem hier dargestellten Entwurfs�uss wurden noch vorwenigen Jahrzehnten Rechner und andere digitale Schaltungenentworfen.
Die Klausur zum Semesterende enthält traditionell eine Aufgabevon diesem Typ.
Für Übergangs- und Ausgabefunktionen mit mehr als vierEingabebits funktioniert der Bleistift-und-Papier-Entwurf nurnoch begrenzt. Übergang zu rechnergestützten Verfahren wieQuine und McCluskey.
Heute Beschreibung in einer Hochsprache mitFallunterscheidungen und Synthese.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 23/138
1. Automaten 4. Beschreibung in VHDL
Beschreibung in VHDL
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 24/138
1. Automaten 4. Beschreibung in VHDL
VHDL-Fallunterscheidung als Tabellenfunktion
} =>{ |WertWert
{Anweisung Anweisung}A0 A1 An
. . .
. . .
w0 w1
ssonst
case Ausdruck is
when
{when
} =>{ |WertWert
end case
=>
;{Anweisung }]]
{Anweisung Anweisung}} A1w1
A0
w0
Auswahlgroßeswi Auswahlwert(e) i
Anweisungsfolge iAi
An[[when others
Anweisung
s
Die aus Zustandsgraphen abgeleitete Übergangs- und Ausgabe-funktionen lassen sich am besten mit Auswahlanweisungen undFallunterscheidungen beschreiben, z.B.:
case Zustand is
when Zi => if Eingabe=... then Zustand <= Zj; ...
...when other => Zustand <= <Anfangswert 1>; end case;
1Siehe später absturzsichere Automaten in VHDL, Folie 35.Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 25/138
1. Automaten 4. Beschreibung in VHDL
Beispielbeschreibung für einen Mealy-Automaten
Zielstruktur
fs xI
00
0110
0/1
1/0
1/1
1/10/0
Ablaufgraph
0/0 s+ ysx
I
T T
fy
Teil des Automatenerforderlich, aber nicht
Eingabemenge: {0, 1} ⇒ BitZustandsmenge: {00, 01, 10} ⇒ 2-Bit-VektorAusgabemenge: {0, 1} ⇒ Bit
signal x, y, T, I: STD_LOGIC;signal s: STD_LOGIC_VECTOR(1 downto 0);
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 26/138
1. Automaten 4. Beschreibung in VHDL
Übergangsfunktion als Abtastprozess
s+
Ifsx
xI
T
s
00
0110
0/1
1/01/10/0
1/1
0/0
process(I, T)
variable sx: STD_LOGIC_VECTOR(2 downto 0);
beginif I='1' thens <= "00";
elsif RISING_EDGE(T) thensx := s & x;2
case sx iswhen "00"&'0' | "10"&'0' => s <= "00";
when "01"&'0' | "00"&'1' => s <= "01";
when "10"&'1' | "01"&'1' => s <= "10";
when others => s <= "00"; �- Neuinitialisierung
end case; �- bei Zustandsfehlern
end if;end process;
2Auswahl ist hier die Konkatenation aus Zustand und Eingabe.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 27/138
1. Automaten 4. Beschreibung in VHDL
Ausgabefunktion als kombinatorischer Prozess
00
0110
0/1
1/01/10/0
0/0
1/1process(x, s)
variable sx: STD_LOGIC_VECTOR(2 downto 0);
beginsx := s & x;
case sx iswhen "00"&'1' | "01"&'0' | "10"&'0' => y <= '0';
when others => y <= '1';
end case;end process;
Auswahl wieder Konkatenation aus Zustand und Eingabe3.3Von unserem Entwurfssystem als schlechter Entwurfsstil bemängelt. Die
empfohlene Beschreibung mit einer Case-Anweisung für die Zustands- und
If-Anweisungen für die Eingabeunterscheidung passt aber nicht auf Folien.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 28/138
1. Automaten 4. Beschreibung in VHDL
Beispiel Moore-Automat
process(s)begincase s iswhen "01" => y <= '0';
when others => y <= '1';
end case;end process; x
I
T
001 1
100
011001
1
0
s+ s
I
T
xy
fyfs
Die Eingabe-, Zustands- und Ausgabemenge sowie Übergangs-funktion und damit die Schnittstellenbeschreibung und derAbtastprozess sind wie im Beispiel zuvor. Die Ausgabe hängtvom Zustand ab und ist als kombinatorischer Prozess mit demZustand in der Weckliste beschrieben.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 29/138
1. Automaten 5. Redundante Zustände
Redundante Zustände
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 30/138
1. Automaten 5. Redundante Zustände
Beispiel Johnson-Zähler
0000
1000 1100 1110 1111
011100110001 s0 s1 s2 s3
II+
T
x
I I I
x x x
Ein Johnson-Zähler ist ein mit einem Inverter rückgekoppeltesSchieberegister. Ausgehend vom Initialzustand "0000" läuft erzyklisch zuerst mit Nullen und dann wieder mit Einsen voll. DieZykluslänge ist 2 · n (n � Bitanzahl des Zustandsregisters). Dieeinfache Übergangsfunktion erlaubt hohe Taktfrequenzen.Anwendung z.B. als Vorteiler für die Frequenzmessung imGigahertz-Bereich.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 31/138
1. Automaten 5. Redundante Zustände
Beschreibung in VHDLs0 s1 s2 s3
I
x
I I I
x x x
TI
signal T, I: STD_LOGIC;
signal s: STD_LOGIC_VECTOR(3 downto 0);
...
process(I, T)
beginif I='1' then s <= "0000";
elsif RISING_EDGE(T) thens <= s(2 downto 0) & (not s(3));
end if;end process;
Bestimmte Automatenformen wie der Johnson-Zähler lassen sichviel kompakter als mit Fallunterscheidungen nach Zuständen undEingabe beschreiben.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 32/138
1. Automaten 5. Redundante Zustände
Redundante Zustände und Systemabsturz
Viele Automaten nutzen nur einen kleinen Teil der 2n (n � Bitan-zahl des Zustandsregisters) Zustände, der 4-Bit-Johnson-Zählerz.B. nur 8 von 16 Zuständen. Was passiert, wenn der Automat ineinen ungenutzten (unzulässigen) Zustand übergeht?
0100
1011
Fehl-funktion
keinRuck-weg
s3s2s1s0
Soll-Funktion Funktion nach einem Absturz
0000
111111101100
1000
0001 0011
0111 0101
00101001
01101101
1010
Der Johnson-Zähler durchläuft seine acht ungenutzten (unzuläs-sigen) Zustände zyklisch. Bis zur Neuinitialisierung keinesinnvolle Reaktion mehr. Nicht nur bei Rechnern, sondern auchbei kleinen Automaten gibt es Abstürze.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 33/138
1. Automaten 5. Redundante Zustände
Absturzsichere Automaten
Schaltung zur automatischen Neuinitialisierung
0000.0
1111.0
I
T
xs0
I
x
I
x
s1 s2
&
I+
s3
I
xI+r≥1
- - - -.1
unzulassige Zustande Zyklus der zulassigen Zustande
Ubergange durchFehlfunktionen
s3s2s1s0.I
0111.00011.00001.0
1110.01100.01000.01101.0
0101.01001.00100.0
1010.0 0110.0
0010.0
1011.0
Erweiterung um eine Funktion zur automatischenNeuinitialisierung bei Erreichen eines unzulässigen Zustands. ImBeispiel automatisches Rücksetzen bei Erkennen der Zustände�1101� und �0101�.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 34/138
1. Automaten 5. Redundante Zustände
Absturzsichere Automaten in VHDL
Die pragmatische, wenn auchnicht unbedingt aufwands-
ärmste Lösung ist dieNeuinitialisierung bei
�allen anderen Zu-ständen�:
process(I, T)
beginif I='1' thens <= <Anfangswert >;
elsif RISING_EDGE(T) thencase s iswhen <1. genutzter Zustand > =>
if <Eingabe> then ... end if;
when <2. genutzter Zustand > =>
if <Eingabe> then ... end if;
...
when others =>
s <Anfangswert >; �- Neuinitialisierung
end case; �- bei Zustandsfehlern
end if;end process;
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 35/138
1. Automaten 5. Redundante Zustände
Watchdoguberwachter Automat Watchdog
RW
RA
RA
RW
Ein Uberlauf des Watchdogs initialisiert den Automaten neu
Bei einem bestimmten, regelmaßig stattfindenen Zustands-ubergang wird der Watchdog neu initialisiert
Bei einem programmierten Rechner mit Tausenden oder Millionenvon gespeicherten Bits gibt es unzählig ungenutzte (unzulässige)Zustände. Es ist nicht ausschlieÿbar, dass hin wieder einer dieserZustände, z.B. durch Entwurfsfehler, Eingabefehler oderStörungen erreicht wird. Rechner, vor denen kein Bediener sitzt,haben in der Regel einen Watchdog, der, wenn das System einegewisse Zeit nicht reagiert, es neu initialisiert.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 36/138
1. Automaten 6. Beispiel Zahlenschloss
Beispiel Zahlenschloss
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 37/138
1. Automaten 6. Beispiel Zahlenschloss
Entwurf der Steuerung eines Zahlenschlosses
Ein elektronisches Zahlenschloss wartet auf eine bestimmte Folgevon Eingaben. Bei der richtigen Eingabefolge ö�net das Schloss,sonst wird ein Eingabefehler signalisiert4. Präzisierung für dennachfolgenden Beispielentwurf:
Eingabefolge: Reset + richtige Zahlenfolge ⇒ leuchtendeAusgabe-LEDEingabefolge: Reset + falsche Zahlenfolge ⇒ LED bleibt aus
Entwurfsablauf:Schaltungsskizze mit dem Automaten als Black-Box,Spezi�kation des Zustandsgraphen für den Automaten,Beschreibung in VHDL,Simulation, Synthese, Test.
4Zwischending aus einem Transductor und einem Akzeptorautomaten.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 38/138
1. Automaten 6. Beispiel Zahlenschloss
Schaltungsskizze
xI
&x xU
x+
x+m−1
fs
sfy
xU’
s+
y
TI+
x+0
UV
· · ·x+1
I
m Zi�erntasten + Reset-Taste; asynchron prellend;Abtastung z.B. mit TP ≈ 10ms; �0� wenn gedrücktgültige Eingabe: Abtastfolge keine Taste - eine Tastebetätigt; mehrere Tasten gilt als falsche TasteAusgabe-LED + Vorwiderstand; leuchtet bei y = 0Moore-Automat (zustandszugeordnete Ausgabe)Neuinitialisierung mit abgetastetem Reset-Wert �0�xU � UND-Verknüpfung der Tasten; �1�, wenn imAbtastmoment keine Taste gedrückt, sonst �0�
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 39/138
1. Automaten 6. Beispiel Zahlenschloss
Spezi�kation des Ablaufs1110∗ 0111∗ 1101∗
LED ausZ2 Z3
LED einLED ausZ0 Z1
LED aus
LED ausF
sonst∗ sonst∗sonst∗
∗ ∧(xU = 0) ∧ (xU’= 1)
Akzeptorautomat; Zi Zustandsname; i � Nummer dernächsten GeheimzahlÜbergangsbedingung: aktive Takt�anke ∧ xU = 0 (Tastegedrückt) ∧ xU' (Abtastschritt zuvor keine Taste gedrückt)∧s 6= F ∧ s 6= Z3 (kein Endzustand)richtige Zahlenfolge 0-3-1 ⇒ Eingabefolge 1110-0111-1101(m = 4 Zi�erntasten)falsche Eingabe ⇒ Fehlerzustand Fdie Endzustände F und Z3 werden nur durchNeuinitialisierung verlassen
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 40/138
1. Automaten 6. Beispiel Zahlenschloss
Beschreibung in VHDL
xI
&x xU
x+
x+m−1
fs
sfy
xU’
s+
y
TI+
x+0
UV
· · ·x+1
I
signal T, I_next, I, xu, xu_del: STD_LOGIC;
signal s: STD_LOGIC_VECTOR(2 downto 0);
signal x_next, x: STD_LOGIC_VECTOR(3 downto 0);...
process(T) beginif RISING_EDGE(T) thenx <= x_next;
I <= I_next;
xu_del <= xu;
end if;end process;
xu <= x(0) and x(1) and x(2) and x(3);Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 41/138
1. Automaten 6. Beispiel Zahlenschloss
Endzustande: 1- -
000
100010001
111
Z0
Z1
Z2
Z3
F
Zustand Codierung
Z1
LED aus LED ausZ2
LED ausZ0 Z3
LED ein
∗ ∧(xU = 0)∧xU’= 1)LED aus
F
1110∗ 0111∗
sonst∗sonst∗
1101∗
sonst∗
process(I, T)
variable v: STD_LOGIC_VECTOR(6 downto 0);
beginif I='0' thens <= "000";
elsif RISING_EDGE(T) and xu='0'
and xu_del ='1' and s(2)='0' thenv:= s & x;
case v iswhen "000" & "1110" => s<="001";
when "001" & "0111" => s<="010";
when "010" & "1101" => s<="100";
when others => s <= "111";
end case;end if;end process;�- nebenläufige Anweisung zur Bildung von y
y <= not s(2) or s(1) or s(0);Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 42/138
1. Automaten 6. Beispiel Zahlenschloss
Zusammenfassung
Ein Automat ist ein mathematisches Modell, das sich gut für dieSpezi�kation von Steuerabläufen in digitalen Schaltungen eignet.Die Schaltung eines Automaten besteht aus einemZustandsregister, der Übergangs- und der Ausgabefunktion.Anfangszustand ist der Initialwert des Registers. DieÜbergangszeitpunkte legt der Takt fest. Der Schaltungsentwurfmit Automaten besteht in der Regel aus1 einem Schaltungsentwurf mit dem Automaten als Black-Box,2 der Spezi�kation des Zustandsgraphen und3 der Beschreibung der Gesamtfunktion in VHDL.
Der kreative Aufgabenteil steckt in den beiden erstenTeilaufgaben. Die abschlieÿende Beschreibung in VHDL ist nurnoch Fleiÿarbeit.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 43/138
1. Automaten 7. Aufgaben
Aufgaben
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 44/138
1. Automaten 7. Aufgaben
Aufgabe 1.1: Rückgekoppeltes Schieberegister
b)a)
x
I
x
I00
10
10
10
10
x
IT
y
s0 s1
T
x
I
s1s0
y
=1=1
1 Bestimmen Sie die Folgezustände s+1 s
+0 und den
Ausgabewert y für alle Variationen des Ist-Zustands s1s0
und des Eingabewerts von x.2 Zeichnen Sie den Ablaufgraphen.3 Ergänzen Sie die Signalverläufe für s1s0 und y in derAbbildung rechts.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 45/138
1. Automaten 7. Aufgaben
Aufgabe 1.2: Automat
Gegeben sind der Ablauf-graph und die Zustands-codierung. Zustands-wechsel bei steigenderTakt�anke und Initialisie-rung mit high-aktivemInitialisierungssignal.
Z1
y<=’0’
y<=’1’
Z4
Z2
y<=’1’
x=’1’
x=’1’
x=’1’
y<=’0’
Z3
x=’0’x=’0’
x=’0’
x=’1’
x=’0’
symbolische Zustandsbezeichnung Z1 Z2 Z3 Z4
Zustandsvektor �00� �01� "10" �11�
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 46/138
1. Automaten 7. Aufgaben
1 Füllen Sie die nachfolgende Übergangstabelle aus:
Eingabe 0 1 0 1 0 1 0 1
Zustand 00 00 01 01 10 10 11 11
Folgezustand
Ausgabe
2 Skizzieren Sie die Gesamtschaltung (Eingabeabtastung,Zustandsregister, Übergangsfunktion, Ausgabefunktion).
3 Wie viele Speicherzellen benötigt der Automat?4 Beschreiben Sie die Gesamtschaltung in VHDL (Entity- undArchitecture-Teil).
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 47/138
1. Automaten 7. Aufgaben
Aufgabe 1.3: Automatenentwurf
s0
s1
s2
s0
s1
s2
x x
s2s1s0
x/y
0/0
000
010
100
111
011 001
1/0 1/0
1/0
0/10/0
1/0
1/0
1/0 0/1
0/0
0/1
s+0y
s+2 s+1
1 Füllen Sie die KV-Diagramme rechts aus.2 Entwerfen Sie für den gegebenen Ablaufgraphen eineSchaltung aus Gattern und Registern.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 48/138
1. Automaten 7. Aufgaben
Aufgabe 1.4: Automatensynthese
Gegeben sind die Schaltungsstruktur eines Automaten undTabellen für die Übergangs- und Ausgabefunktion.
0100
1011
00011011
000110
11
00
011011
00 01 10
00011011
000110
11
00
011011
00 01 10
d)
s x :
s+ = fs(x, s)y
x xI
ss+
2
2
2
y = fa(x, s)fa(x, s)
I T
fs(x, s)
1 Beschreiben Sie die Funktion der Schaltung in VHDL ineiner synthesegerechten Form.
2 Entwerfen Sie mit Hilfe von KV-Diagrammen eine Schaltungfür den Automaten aus Gattern und Registern.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 49/138
1. Automaten 7. Aufgaben
Aufgabe 1.5: Überwachung eines Sendesignals
Für ein Sendesignal ist zu überwachen, dass die Di�erenz ∆ derAnzahl der gesendeten Einsen minus Anzahl gesendete Nullenden Bereich von −3 bis 3 nicht überschreitet. Bei ÜberschreitungFehlersignal y aktivieren. Beispielsignalverlauf:
x 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 . . .
∆ 0 1 0 -1 -2 -3 -3 -2 -3 -2 -1 0 1 2 3 3
y 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 . . .
(x � Eingabe; ∆ � Anz. �0� minus Anz. �1�; y � Fehlersignal)
1 Beschreiben Sie die Funktion durch einen Ablaufgraphen.2 Beschreiben Sie die Funktion synthesegerecht in VHDL(Schnittstelle, Architecture).
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 50/138
2. Operationssteuerung
Operationssteuerung
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 51/138
2. Operationssteuerung
Steuerung von Operationsabläufen
Die Zustands- und Kantenanzahl eines Automaten wächstexponentiell mit der Anzahl der Eingabe- und Zustandsbits. Fürkomplexere Zielfunktionen ist eine Trennung zwischen denOperationen und dem Ablauf erforderlich, z.B. in Form einerSchrittkettenbeschreibung5 (engl. sequential control).
Eine Schrittkette besteht aus Schritten und Transaktionen. DenSchritten sind Aktionen zugeordnet. Eine Transaktion ist eineSchaltbedingung, die den Übergang von einem Schritt zumnächsten bestimmt und dazu auÿer Eingaben auchOperationsergebnisse auswertet.
Bereits eine Zähloperation kann die Beschreibung einessequentiellen Ablaufs drastisch vereinfachen.
5Schrittketten zur Beschreibung von Ablaufsteuerungen stammen von der
SPS-Programmierung.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 52/138
2. Operationssteuerung
Dreiecksignalgenerator
Aufgabe sei die zyklische Erzeugung des nachfolgendenSignalverlaufs:
Zeitablauf
000000010010
11101101
1111
0 15 30
y
Schritt
Ein Automat für diese Aufgabe hat 30 Zustände, die zyklischdurchlaufen werden, denen in Folge die nacheinanderauszugebenden Werte zugeordnet sind. Eine Ablaufsteuerungkommt mit zwei Schritten (Automatenzuständen) aus:
aufwärtszählen undabwärtszählen.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 53/138
2. OperationssteuerungBeschreibungen des Dreiecksignalgenerators:
Z0
0000Z1
0001Z2
0010Z14
1110Z15
1111
16Z17Z29Z30 Z28
11111110001000010000
z <= z − 1abwartszahlen
aufwartszahlenz <= z + 1
z =”0001”
z =”1110”
I = ’1’z <=”0000”
Initialisierungsschritt
Schritt
Transaktion
Beschrei-bung alsAutomat
Operationsablaufals Schrittkette
Schrittketten sind anschaulicher und, wie auf der nächsten Foliegezeigt, in VHDL einfach zu beschreiben.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 54/138
2. Operationssteuerung
z <= z − 1abwartszahlen
aufwartszahlenz <= z + 1
z =”0001”
z =”1110”
I = ’1’z <=”0000”
000000010010
11101101
1111
0 15 30 Schritt
y <= zAusgabefunktion:
∗1Neuinitialisierung bei Zustandsfehlern.
signal T, I, S: std_logic;signal y, z: unsigned(3 downto 0);...process(I, T)beginif I='1' thenS <= '0'; z <= "0000";elsif rising_edge(T) thencase S iswhen '0' => z <= z +"1";if y="1110" then s<='1'; end if;
when '1' => z <= z -"1";if y="0001" then s<='0'; end if;
when others∗1 =>S<='0'; z <= "0000";end case;end if;end process;�- Ausgabefunktion
y<=z;Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 55/138
2. Operationssteuerung
Weitere Beschreibungsmittel für Schrittketten
Schritt 2a
Schritt 3
Schritt 1
Schritt 2b Schritt 2a
Schritt 3
Schritt 1
Schritt 2b
Alternativverzweigung Parallelverzweigung
Alternativverzeigung: Als nächstes folgt der Schritt, dessenTransitionsbedingung zuerst wahr ist. Für Gleichzeitigkeitmuss es eine Vorrangregel geben.Parallelverzeiweigung: Nebenläu�ge Abarbeitung vonmehreren Schritten oder Teilschrittketten. Der nächstegemeinsame Schritt kann frühstens folgen, wenn alleParallelverzweigungen abgearbeitet sind.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 56/138
2. OperationssteuerungIn einer SPS-Beschreibung ist der Initialzustand einausgezeichneter Wartezustand, der verlassen wird, wenn dieStarttransition für die Ablaufkette eintritt. Für digitaleSchaltungen gilt als Starttransition in der Regel dieInitalisierung, bei der ein Übergang von einem beliebigenZustand in einen Anfangszustand erfolgt. Der dargestellteInitialisierungsschritt ist entsprechend kein richtiger Schritt,sondern nur eine Beschreibung der Inititialwertezuweisungen.
aufwartszahlenz <= z + 1
I = ’1’z <=”0000”
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 57/138
2. Operationssteuerung 1. Serieller Addierer
Serieller Addierer
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 58/138
2. Operationssteuerung 1. Serieller Addierer
Das Funktionsmodell eines (Ripple-) Addierers ist eine Schleifevom niedrigsten zum höchstwertigen Operandenbit mit derbitweisen Summen- und Übertragsfunktion im Schleifenkörper.
c
sVA
c
sVA
c
sVA
tdVA
cin
b0
a0
an−1
bn−1cout
a1b1
s0
s1
sn−1
signal a,b,s:std_logic_vector(n-1 downto 0);
signal cin, cout: std_logic;...
process(a, b, cin)
variable c: std_logic;
beginc:=cin;
for i in 0 to n-1 loops(i)<=a(i) xor b(i) xor c;
c:=(a(i) and b(i)) or (a(i) and c)or (b(i) and c);
end loop;cout<=c;
end process;
Da sich die Verzögerungen addieren, ist es naheliegend, dieBitadditionen auf aufeinanderfolgende Takte aufzuteilen.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 59/138
2. Operationssteuerung 1. Serieller Addierer
Addition in n+ 1 Taktensignal a,b,s:std_logic_vector(n-1 downto 0);
signal c, cin, cout: Start, busy: std_logic;...
processbeginbusy<='0';
wait on Start='1' and RISING_EDGE(T);
busy<='1'; c<=cin; a<=...; b<=...;
wait on RISING_EDGE(T);
for i in 0 to n-1 loops(i)<=a(i) xor b(i) xor c;
c<=(a(i) and b(i)) or (a(i) and c) or (b(i) and c);wait on RISING_EDGE(T);
end loop;end process; cout <= c;
Warte auf Eingabebereitschaft. Warte einen Takt aufDatenübernahme. Warte einen Takt nach jeder Bitaddition.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 60/138
2. Operationssteuerung 1. Serieller Addierer
Für die Ausführung der Addition selbst genügt jetzt ein einzigerVolladdierer, weil in jedem Takt nur ein Bit addiert wird. DerÜbertrag muss in einem Register immer von einem zum nächstenTakt gespeichert werden.
ts tdr
Start
10001010a U
10010011b U
c U
tdVAtdmux
01
si
T
c
sVA
cin
bi
ai
c
c+
T
busyStart
s0s1s2s3
U
U
U
U
cout
Ein serieller Addierer ist bei minimaler Taktperiode:
TP ≥ tdr + tdVA + tdmux + ts
etwas halb so schnell wie ein Ripple-Addierer.Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 61/138
2. Operationssteuerung 1. Serieller Addierer
Ablaufsteuerung (Entwurf 1)
Die Ablaufsteuerung für die serielleAddition braucht zwei Zustände:
Bereit für die Übernahme vonOperanden und das Abholen desErgebnisses undAddieren.
I = ’1’
Start = ’1’
i = n− 1
ubernahme (busy=’0’)
a <= ...; b <= ...;i <= 0; c <= ...;
bereit zur Operanden-
beschaftigt(busy=’1’)
c : si <= ai + bi + ci <= i+ 1
Im ersten Zustand wird zusätzlich derBitzähler zurückgesetzt. Im anderenSchritt erfolgen in jedem Takt eine Bitaddition und die Erhöhungdes Bitzählers. Die Übergangsbedingung in den Zustand�beschäftigt� sei die Aktivierung eines Startsignals und für denÜbergang zurück, dass der Bitzähler auf das höchstwertige Bitzeigt. Der Zustand ist gleichzeitig das Besetztsignal für dieumgebende Schaltung.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 62/138
2. Operationssteuerung 1. Serieller Addierer
Alternativlösung mit Schieberegistern (Entwurf 2)
Bei einem Hardware-Entwurfwerden zur Aufwands- undVerzögerungsminimierunggern mehrere Lösungsvariantenausprobiert. Für die bitweiseOperandenbereitstellung undErgebnisspeicherung gibt eseine aufwandsärmere undschnellere Alternative,Schieberegister.
I = ’1’
i = n− 1
c <= c slr 1; i <= i+ 1a <= a slr 1; b <= b slr 1;
b0b1b2b3 c
sVA
s0s1s2s3a0a1a2a3
+1c ct
ubernahme (busy=’0’)
a <= ...; b <= ...;i <= 0; c <= ...;
bereit zur Operanden-
beschaftigt(busy=’1’)
Start = ’1’
c : sn−1 <= a0 + b0 + c
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 63/138
2. Operationssteuerung 1. Serieller Addierer
I = ’1’
i = n− 1
c <= c slr 1; i <= i+ 1a <= a slr 1; b <= b slr 1;
ubernahme (busy=’0’)
a <= ...; b <= ...;i <= 0; c <= ...;
bereit zur Operanden-
beschaftigt(busy=’1’)
Start = ’1’
c : sn−1 <= a0 + b0 + c
signal a,b,s:std_logic_vector(3 downto 0);
signal T,c,Start,busy: std_logic;
signal ct: unsigned(1 downto 0);...process(T) beginif I='1' then busy<='0';else if rising_edge(T) thenif busy<='1' thens<= (a(0) xor b(0) xor c)
& s(3 downto 1);
c<=(a(0) and b(0)) or (a(0) and c)or (b(0) and c);
a<= a slr 1; b<= b slr 1; s<= s slr 1;
ct <= ct + "1";
if ct = "11" then busy<= '0'; end if;elsect<="00";
if Start='1' then busy<='1'; end if;end if;end process;
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 64/138
2. Operationssteuerung 1. Serieller Addierer
Ergebnissimulation
b0b1b2b3 c
sVA
s0s1s2s3a0a1a2a3
+1c ct
ct 00 01 10 11 00
a 00000001001001011010UUUU
b 0011 0001 0000UUUU
s 1UUU 01UU 101U 1101UUUU
I = ’1’
i = n− 1
c <= c slr 1; i <= i+ 1a <= a slr 1; b <= b slr 1;
ubernahme (busy=’0’)
a <= ...; b <= ...;i <= 0; c <= ...;
bereit zur Operanden-
beschaftigt(busy=’1’)
Start = ’1’
c : sn−1 <= a0 + b0 + c
StartT
busy
c U
Ab dieser Entwurfskomplexität ist eine Simulation des Entwurfsdringend zu empfehlen. Ein typischer Denkfehler ist zu vergessen,dass an Signale zugewiese Werte erst einen Takt später da sind.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 65/138
2. Operationssteuerung 2. Divisionswerk
Divisionswerk
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 66/138
2. Operationssteuerung 2. Divisionswerk
Division von Binärzahlen
a
b= q +
r
b(a � Dividend; b � Divisor; q � (ganzzahliger) Quotient; r � Rest).
Rest
Quotient
negativ negativ
Schritt 1Start Schritt 2 Schritt 3 Schritt 4
Differenz:
a
b
q
Linksverschiebung mit bedingter Ubernahme des Subtraktionsrestseinfache Linksverschiebung
00001011
0 110
0000
0001011 001011 00001011 010 0000
0 010 0 010
0001
0 110
000
0 110
00
0 110 0 110
0
0
00
00
1
00 11
Wiederhole n-mal (n � Bitanzahl):a := a sll 1; q := q slr 1Subtraktion d := a− b;wenn d ≥ 0, dann q0 := '1'; a2n−1:n := d;
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 67/138
2. Operationssteuerung 2. Divisionswerk
Testprogramm für den Divisionsalgorithmus6
Testprozess: processvariable b, q, d: unsigned(3 downto 0);
variable a: unsigned(8 downto 0);
beginread("a= ", a(3 downto 0));
read("b= ", b);
a(7 downto 4):="0000";
for i in 3 downto 0 loopa := a sll 1; q := q slr 1;
d := a-b;
if d(3) = '0' thenq(0):='1'; a(7 downto 4):=d;
end if;
end loop;write("q= " & str(q) & " r=" & str(a(7 downto 4)));
end process;6Algorithmus so auch in einer anderen Sprache testbar, z.B. in C.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 68/138
2. Operationssteuerung 2. Divisionswerk
Aufrollen der Schleife zu einem Matrix-Dividierer
langster Pfad mit der großten Verzogerung
sll
sll
sll
sll
sll
sll
a3
q3...· · ·
· · ·
q0
b
a0
· · ·Sub
01
a1.n−1:0
a1.2n−1:n d1
d1.n−1
q1.n−1:1
Sub
01
a2.n−1:0
a2.2n−1:n d1
d2.n−1
q1q2.n−1:1
q0
Der längste Pfad geht durch alle Subtrahierer7. QuadratischeZunahme der Laufzeit mit der Bitanzahl. Im Vergleich dazunimmt die Laufzeit eines Matrixmultiplizierers nur linear mit derBitbreite zu. Dividierer arbeiten deshalb in der Regel sequentiell.
7Ein kompletter Dividierer ist zum Zeichnen zu groÿ.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 69/138
2. Operationssteuerung 2. Divisionswerk
Serielle Dividierer
Ergänzen von Registern für die Signale a, b und q undRückführung der Zwischenergebnisse.
sll
sll
Sub
an−1:0
a2n−1:n
a
b
q q1.n−1:1 q0
dn−1
01
01
01
d
T
busy
Bitzähler, Ablaufschritte, Startsignal etc. wie beim seriellenAddierer.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 70/138
2. Operationssteuerung 3. Beispiel Wegemessung
Beispiel Wegemessung
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 71/138
2. Operationssteuerung 3. Beispiel Wegemessung
Beispiel Wegemessung mit Quadratur-Encoder
vorwartsruckwarts
vorwarts ruckwarts
1 2 30 44 5 3 2 1 0
a’
b’ b”
a”0000
0 0 000 1
10
000
111
0 10 01 1
111
000
1 01 10 0
111
111
1 11
10
0
b’a” b” a’
−1
−1+1
+1
+1−1
+1−1
ct
T
0
01
1b’
a’
ct
a
b
Lochscheibe auf der Radachse z.B. eines mobilen Roboters.Bei einer Vorwärtsdrehung ändert sich das Signal a und beieiner Rückwärtsdrehung das Signal b zuerst.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 72/138
2. Operationssteuerung 3. Beispiel Wegemessung
vorwarts ruckwarts
00000 0 0
00 110
000
111
0 10 01 1
111
000
1 01 10 0
111
111
1 11
10
0
b’a” b” a’
−1
−1+1
+1
+1−1
+1−1
ct
1 2 30 44 5 3 2 1 0
0
01
1b’
a’
ct
Halt / nicht zählen: a�b� = a'b'unzulässig: a�b� = a'b'
Rotation vorwärts / vorwärts zählen:zuerst schaltet a ein (a�b�a'b' = 0010)dann b ein (a�b�a'b' = 1011)dann a aus (a�b�a'b' = 1101) undzum Schluss b aus (a�b�a'b' = 0100).
Rotation rückwärts / rückwärts zählen:zuerst schaltet b ein (a�b�a'b' = 0001)dann a ein(a�b�a'b' = 0111)dann b aus (a�b�a'b' = 1110) undzum Schluss a aus (a�b�a'b' = 1000)
Übergangsfunktion:a�b� <= a'b'
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 73/138
2. Operationssteuerung 3. Beispiel Wegemessung
library Tuc; use Tuc.Numeric_Sim.all;...signal T, I, I_del: STD_LOGIC;signal ab: STD_LOGIC_VECTOR(1 downto 0);signal ab_del: STD_LOGIC_VECTOR(3 downto 0);signal ct: signed(15 downto 0);
�- Abtastprozess ohne Initialisierung
process(T)beginif RISING_EDGE(T) thenI_del <= I;
ab_del(1 downto 0) <= ab;
ab_del(3 downto 2) <=
ab_del(1 downto 0);
end if;end process;
a’
b’ b”
a”a
b
T
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 74/138
2. Operationssteuerung 3. Beispiel Wegemessung
00000 0 0
00 110
000
111
0 10 01 1
111
000
1 01 10 0
111
111
1 11
10
0
b’a” b” a’
−1
−1+1
+1
+1−1
+1−1
ct
�- Zählerprozess
process(I_del, T)beginif I_del='1' thenct <= "0000000000000000";elsif RISING_EDGE(T) thencase ab_del iswhen "0010" |"1011" |"1101" |"0100" => ct <= ct +"1";when "0001" |"0111" |"1110" |"1000" => ct <= ct -"1";when "0000" |"0101" |"1010" |"1111" => null;when others => ct <="X...(16×X)...XX";end case;end if;end process;
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 75/138
2. Operationssteuerung 3. Beispiel Wegemessung
Zusammenfassung
Funktionsvorgabe als Ablaufgraph; rezeptartige Umsetzungin VHDL und weiter in eine Schaltung
Zustand ⇒ Zustandsregister, AbtastprozessAnfangswert ⇒ Initialwert des ZustandsregistersÜbergangs- und Ausgabefunktion ⇒ Abtast- oder komb.Prozess mit Fallunterscheidung nach Zustand und Eingabe
redundante Zustände; Absturzgefahr; typischeFehlerbehandlung Neuinitialisierung; Resettaste, Watchdogkomplexere Funktionen mit groÿen Eingabe- undZustandsmengen
Nachbildung der Zielfunktion durch eine OperationsfolgeSpezi�kation der Operanden und Operatoren alsRegister-Transfer-FunktionenOperationsablaufgraphrezeptartige VHDL-Nachbildung
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 76/138
2. Operationssteuerung 4. Aufgaben
Aufgaben
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 77/138
2. Operationssteuerung 4. Aufgaben
Aufgabe 2.1: Taktteiler
Entwerfen Sie eine Taktteilerschaltung mit dem Teilerfaktor 2 · n,die mit jeder n-ten Eingabetakt�anke den Ausgabetakt invertiert.
1 Skizzieren Sie die Signalverläufe des Eingabe- und desAusgabetakts für n = 2.
2 Beschreiben Sie die Zielfunktion als Schrittkette einemZähler.
Hinweis: Der Datentyp für den Zähler kann auch ein Zahlentypsein (INTEGER, NATURAL oder POSITIVE).
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 78/138
2. Operationssteuerung 4. Aufgaben
Aufgabe 2.2: Morse-Empfänger
4 6 8 102
A R I SP
0
1
0x
t in s
Morse-Zeichen bestehen auskurzen Pulsen (Punkt, tP = 200...300 ms) undlangen Pulsen (Strich, tS = 600...900 ms).
Taktfrequenz: fT = 20 HzPrellzeit viel kleiner als Taktperiode.zwei low-aktive Tasteneingänge
Signal x: Morse-SignalSignal I: Initialisierungssignal
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 79/138
2. Operationssteuerung 4. Aufgaben
Drei bitorientierte Ausgänge, zu aktivieren für je einen Takt
Signal p: nach einem PunktSignal s: nach einem StrichSignal err: nach einem Puls unzulässiger Breite
Skizze der Gesamtschaltung mit Tasten, Abtastregistern,Zustandsregister und der Übergangs- und Ausgabefunktionals Black-Box.
Operationsablaufgraph unter Verwendung eines Zählers
VHDL-Beschreibung (nur Vereinbarungen der Datenobjekteund Beschreibung der Prozesse)
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 80/138
2. Operationssteuerung 4. Aufgaben
Aufgabe 2.3: Entwurf eines Divisionswerks
Beschreiben Sie die Ablaufsteuerung des seriellen Dividierersals Schrittkette.
Entwerfen Sie in VHDL eine 8-Bit seriellen Dividierer.
Bestimmen Sie mit dem Simulator die Signalverläufe für dieBeispieldivision:
10010110 : 00001101
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 81/138
3. Zeitverhalten
Zeitverhalten
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 82/138
3. Zeitverhalten
Zeitverhalten
Bisher wurde in der Vorlesung immer unterstellt, dass dieFunktion der Schaltung nicht von Verzögerungszeiten abhängt,bzw. dass die Verzögerungszeiten im zulässigen Bereich liegen.Das war auch bei den behandelten Beispiellösungen so, mitAusnahme der Schaltungen mit Latches, von denen abgeratenwurde.
Dieser Abschnitt untersucht das Zeitverhalten noch einmalgenauer.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 83/138
3. Zeitverhalten 1. Halte- und Verzögerungszeiten
Halte- und Verzögerungszeiten
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 84/138
3. Zeitverhalten 1. Halte- und Verzögerungszeiten
Beschreibung der Verzögerung als Toleranzbereich
Die Verzögerungszeiten sind nur mit begrenzter Genauigkeitbekannt. Bei jedem Wechsel ist ein Signal kurzzeitig ungültig.
y
x
f(x) yx
th, td
th
f(wi+1)
wi+1
td
t
wi
f(wi)
Signalwert ungultig
Die Verzögerung einer Verarbeitungsfunktion lässt sich alsToleranzbereich aus Halte- und Verzögerungszeit beschreiben:
th Haltezeit, Zeit, die der alte gültige Ausgabewert nacheiner Eingabeänderung garantiert noch erhalten bleibt.td Verzögerungszeit, Zeit, nach Anliegen des neuen gültigenEingabe bis die Ausgabe spätestens gültig ist.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 85/138
3. Zeitverhalten 1. Halte- und Verzögerungszeiten
Beschreibung in VHDL
x
y
f(x) yx
th, td
wi+1wi
f(wi+1)f(wi)
tdth
Signalwert ungultig
Ungültig kann bedeuten, dass sein Wertim verbotenen Bereich liegt, nicht sicherist, dass die Änderung schon begonnenoder noch nicht abgeschlossen ist oderGlitches, d.h. mehrfache Signalwechselzwischen null und eins.
Zur Beschreibung in VHDL werden dem Ausgabesignal bei jederEingabeänderung zwei Ausgabeänderungen zugewiesen,�ungültig� nach der Haltezeit und der neue gültige Wert nachder Verzögerungszeit:
y <= ungültig after th, f(x) after td;
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 86/138
3. Zeitverhalten 1. Halte- und Verzögerungszeiten
Inverter mit Halte- und Verzögerungszeit
signal x, y: STD_LOGIC;
...
�- Erzeuge Signal mit mehreren Änderungenx <= '0' after 0.5 ns, 'X' after 4 ns, '1' after 4.5 ns,
'X' after 8 ns, '0' after 9.5 ns, '1' after 12 ns,
'0' after 12.5 ns;
�- Modellierung des Invertersy <= 'X' after 1 ns, not x after 2 ns;
10y
0 2 4 6 8 10
thtd
tsim
10x
nicht initialisiert (U) ungultig (X)
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 87/138
3. Zeitverhalten 1. Halte- und Verzögerungszeiten
Schaltung mit mehreren Gattern th, td1
th, td1
th, td2&G1
G2
G3z2
z1
&x4
x3
x2
x1
≥1 y
signal x1, x2, x3, x4,
z1, z2, y: STD_LOGIC;
constant th: DELAY_LENGTH:= 500 ps8;
constant td1: DELAY_LENGTH:= 1 ns;
constant td2: DELAY_LENGTH:= 2 ns;
...G1:z1<= 'X' after th, x1 and x2 after td1;
G2:z2<= 'X' after th, x3 and x4 after td1;
G3: y<= 'X' after th, z1 or z2 after td2;
Eingabe: process begin
wait for 1 ns; x3<='1';
wait for 2 ns; x1<='1'; x4<='1';
wait for 4 ns; x2<='1'; wait for 3 ns; x4<='0';
wait for 2 ns; x3<='0'; wait;
end process;8Verzögerungszeiten haben den Typ delay_length. Zeitangaben
bestehen aus einem positiven Wert und ein Maÿeinheit (ps, ns, us, ...).Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 88/138
3. Zeitverhalten 1. Halte- und Verzögerungszeiten
G1:z1<= 'X' after th, x1 and x2 after td1;
G2:z2<= 'X' after th, x3 and x4 after td1;
G3: y<= 'X' after th, z1 or z2 after td2;
x1
x2
x3
x4
z1
z2
y
0 5 10 15 20
01
01
01
01
01
01
01
nicht initialisiert (U) ungultig (X)
tsim
ohne th
In der Beispielsimulation ist die Ausgabe die meiste Zeitungültig, d.h. für die Richtigkeit kann nicht garantiert werden.Die Verarbeitung ungültiger Signalwerte führt zu schwer zulokalisierbaren Fehlern, z.B. auch Abstürzen von Automaten.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 89/138
3. Zeitverhalten 2. Laufzeitanalyse
Laufzeitanalyse
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 90/138
3. Zeitverhalten 2. Laufzeitanalyse
Laufzeitanalyse
Die Laufzeitanalyse berechnet die Halte- und Verzögerungszeiteiner übergeordneten Schaltung aus den Halte- undVerzögerungszeiten der Teilschaltungen durch Addition entlangaller Pfade.
x5
x4
x3
x2
x1
td3 = 2nsth3=1ns
td4=3nsth4=1ns
td1=2nsth1=1ns td5 = 2ns
th5 = 1ns
G3
G4y2
&
&
td2=3nsth2=1ns
&G1
G2&
G5& y1
Pfade∑
th.i∑
td.i
G1-G3-G5 3 ns 6 ns
G2-G3-G5 3 ns 7 ns
G2-G4-G5 3 ns 8 ns
G2-G4 2 ns 6 ns
G4-G5 2 ns 5 ns
G4 1 ns 3 ns
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 91/138
3. Zeitverhalten 2. Laufzeitanalyse
Die automatische Laufzeitanalyse im Rechner arbeitet mitZeitgruppen. Eine Zeitgruppe ist eine Zusammenfassung vonSignalen, z.B. aller Eingabesignale.
x1
x2
x4
x3
x5
1
&&
&&
td4th4
td5th5
Zeitgruppe
y1td2th2
&
y2
th1 td1 th3 td30
2
3
4
5
6
78 9
Halte- und Verzögerungszeiten zwischen Zeitgruppen:
Zeitgruppe th td
von 0 bis 1 th1 td1
von 0 bis 2 th2 td2
von 0 bis 3 min (th1, th2) max (td1, td2)Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 92/138
3. Zeitverhalten 2. Laufzeitanalyse
Die Berechnung der Halte- und Verzögerungszeiten von Gruppe 0zu allen anderen Zeitgruppen bis hin zum Ausgang besteht ausfortgesetzter Additionen, Minimum- und Maximumbildung.
td.2
th.4
th.2
th.1
td.1
td.3
td.4
th.5
th.3
td.5
0 bis 1
0 bis 20 bis 3
0 bis 50 bis 4
0 bis 60 bis 7
0 bis 80 bis 9
Zeitgr.
max(tdS.5, Td.6)
tdS.0 + td.2
tdS.3 + td.3
tdS.2 + td.4
tdS.7 + td.5max(tdS.6, tdS.9)
tdS.0 + td.1
max(tdS.0, tdS.2)
tdS.i
tdS.0
tdS.0 + td.2
thS.0 + th.2min(thS.1, thS.2)
thS.3 + th.3
min(thS.5, th.6)
thS.7 + th.5min(thS.6, thS.9)
thS.0 + th.1
thS.i
thS.0
thS.0 + th.4
min(thS.0, thS.2)
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 93/138
3. Zeitverhalten 3. Speichervor- und Nachhaltezeiten
Speichervor- und Nachhaltezeiten
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 94/138
3. Zeitverhalten 3. Speichervor- und Nachhaltezeiten
Register als Abtastelement
Die Ergebnisse einer Verarbeitungsfunktion dürfen nur innerhalbder Gültigkeitsfenster weiterverarbeitet oder gespeichert werden.Die laufzeitrobusteste Art der Abtastung ist mit einem Register.Ein Register übernimmt seine Eingaben mit der aktivenTakt�anke.
tstn
ts, tn
AbtastfensterWert ungultig
VorhaltezeitNachhaltezeit
thr, tdr
n n
T
x y
Verzogerungszeittdrthr Haltezeit
y
T
x
thrtdr
tn
w1w0
ts
w2
w2w1
ts tn
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 95/138
3. Zeitverhalten 3. Speichervor- und Nachhaltezeiten
ts, tn
AbtastfensterUngultigkeitsfenster
f(...)n
y
thr, tdr
n
T
thf , tdf
x
y
T
x
thrtdr
tn
w1w0
ts
w2
w2w1
ts tn
Wegen der unvermeidlichen Laufzeittoleranzen und Taktversätzezwischen den einzelnen Speicherzellen eines Registers müssen dieEingabedaten bereits um eine Vorhaltezeit ts vor und bis zu einerNachhaltezeit tn nach der aktiven Takt�anke gültig sein. EinRegister hat genau wie eine Verarbeitungsfunktion eine Haltezeitthr und eine Verzögerungszeit tdr. Diese beziehen sich auf dieaktive Takt�anke. Das verringert die Breite derUngültigkeitsfenster durch die Verarbeitung.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 96/138
3. Zeitverhalten 3. Speichervor- und Nachhaltezeiten
Registerbeschreibung mit Zeitverhalten
tstn
ts, tn
AbtastfensterWert ungultig
VorhaltezeitNachhaltezeit
Verzogerungszeittdrthr Haltezeit
thr, tdr
n n
T
x y
y
T
x
thrtdr
tn
w1w0
ts
w2
w2w1
ts tn
process(T)beginif RISING_EDGE(T) thenif x'LAST_EVENT>ts thenx_del <= ungültig after
thr, x after tdr;wait for tn;
if x'LAST_EVENT<tn thenx_del <= ungültig;
end if;elsex_del <= ungültig after thr;
end if;end if;end process;
Das Zeitverhalten eines Register inkl. Vor-und Nachhaltezeit ist in VHDL abbildbar.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 97/138
3. Zeitverhalten 3. Speichervor- und Nachhaltezeiten
Verarbeitung mit Abtastung
Das zu prüfende Gültigkeitsfenster verschiebt sich durch dieHalte- und Verzögerungszeit der Verarbeitungsfunktion vor dieaktive Takt�anke.
process(T) beginif RISING_EDGE(T) thenif x'DELAYED(thf)'LAST_EVENT>tdf+ts-thf then
y<= ungültig9 after thr,
f(x) after tdr;
elsey<= ungültig after thr;
end if;end if;end process;
ts
ts
notwendigesGultigkeitsfenster
x
y
T
f(x)x
thf , tdf
T
thr, tdr
yy+
y+
thftdf + ts
wi
f(wi)tdrthr
f(wi−1) f(wi)
9Für std_logic 'X'; für std_logic_vector "XX...X".
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 98/138
3. Zeitverhalten 3. Speichervor- und Nachhaltezeiten
Verarbeitung abgetasteter Signale
ts
ts
y
T
x
tdfthf
f(wi−1) f(wi)
thr, tdr
f(x)
thf , tdf
yx’
xwi
thftdf
x’ wi−1 wi
T
process(T)beginif RISING_EDGE(T) thenif x'LAST_EVENT>ts theny<= ungültig after thr+thf,
f(x) after tdr+tdf;
elsey<= ungültig after thr+thf;
end if;end if;end process;
Vergröÿerung derHalte- und Verzögerungs-
zeit nach der Abtast�anke.Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 99/138
3. Zeitverhalten 4. Register-Transfer-Funktionen
Register-Transfer-Funktionen
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 100/138
3. Zeitverhalten 4. Register-Transfer-Funktionen
Register-Transfer-Funktion
Bei einer Register-Transfer-Funktion beginnt die Verarbeitungmit der aktiven Takt�anke und endet mit der nächsten aktivenTakt�anke.
thr, tdr
y
TP
w2
tdf
tdrthr
tdrthr
w1x’
thfthftn
y = f(x)x y’
T
TP
x’ y
x’, y’TP
abgetastete Werte
ts, tn
ts
thf , tdf
T
f(w1)f(w0)
w0
Taktperiode
Die Werte von y sind im weiÿen Zeitfenster gültig und müssenzur korrekten Übernahme im roten Zeitfenster gültig sein. Das istmit einer Laufzeitanalyse kontrollierbar und erfordert keineBerücksichtigung im Simulationsmodell.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 101/138
3. Zeitverhalten 4. Register-Transfer-Funktionen
y
TP
w2
tdf
tdrthr
tdrthr
w1x’
thfthftnts
T
f(w1)f(w0)
w0Die Summe aus den Verzögerungs-zeiten des Registers und der Ver-arbeitungsfunktion darf nicht gröÿerals die Taktperiode sein
TP ≥ TPmin = tdr + tdf + ts
und die Nachhaltezeit des Registers darf nicht gröÿer als dieSumme der Haltezeiten sein:
tn ≤ tnmax = thr + thf
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 102/138
3. Zeitverhalten 4. Register-Transfer-Funktionen
Taktversatz
Abtastfenster
ts
t∆T12
yf(x’)
x′ y′
ts, tn
VerzogerungT2T1
x
thr, tdr
a)
Ubernahmeflanke Eingaberegister
Ubernahmeflanke Ausgaberegister0
t∆T12
T1
T2
y
b)
TP
tdr
tdf
thr
thf
x′
thf , tdf
t
tn
Die Takt�anken zwischen Eingangs- und Ausgangsregisterkönnen um einen Zeit t∆T12 versetzt sein, absichtlich zurErhöhung der max. Taktfrequenz oder unbeabsichtigt durchunterschiedliche Verzögerungen von der gemeinsamen Taktquelle.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 103/138
3. Zeitverhalten 4. Register-Transfer-Funktionen
Abtastfenster
ts
t∆T12
yf(x’)
x′ y′
ts, tn
VerzogerungT2T1
x
thr, tdr
a)
Ubernahmeflanke Eingaberegister
Ubernahmeflanke Ausgaberegister0
t∆T12
T1
T2
y
b)
TP
tdr
tdf
thr
thf
x′
thf , tdf
t
tn
Die Bedingung für eine korrekte Datenübernahme mitTaktversatz lauten:
tdr + tdf + ts ≤ TP + t∆T12
thr + thf ≥ tn + t∆T12
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 104/138
3. Zeitverhalten 4. Register-Transfer-Funktionen
tdr + tdf + ts ≤ TP + t∆T12
thr + thf ≥ tn + t∆T12
Aus diesen Bedingungen ergibt sich für den maximal zulässigenTaktversatz:
t∆T12 ≤ thr + thf − tnMit dem maximal zulässigen Taktversatz beträgt die maximaleTaktfrequenz:
fT ≤1
tdr + tdf + ts +−tn − (thr + thf)
Die maximal mögliche Anzahl von Berechnungsschritten pro Zeithängt nicht von der Verzögerung, sondern von der Di�erenz ausVerzögerungs- und Haltezeit ab. Man kann sogar Rechenwerkebauen, die gleichzeitig mehr als eine Berechnung durchführen,eine sog. Wellen-Pipeline.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 105/138
3. Zeitverhalten 5. Constraints
Constraints
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 106/138
3. Zeitverhalten 5. Constraints
Zeit-Constraints
Constraints sind Zusatzinformationen für die Synthese in dieUCF-Datei. Der Zeit-Constraints umfassen
Mindesttaktfrequenzen bzw. Obergrenzen für dieTaktperiode, für unsere Versuchsbaugruppe:
clk=50MHz
Zeitgruppen von Ein- und Ausgabesignale undMaximalverzögerungen zwischen Zeitgruppen.
Mit demselben Takt abgetastete Signale bilden immer eineZeitgruppe. Die Obergrenze der Register-Register-Verzögerunggibt das Takt-Constraint vor, das nie fehlen sollte. Zeitgruppenetc. werden für die Kopplung mit anderen schnellen Schaltkreisen(d.h. nicht in unseren praktischen Übungen) benötigt undgehören zur fortgeschrittenen Magie des digitalenSchaltungsentwurfs.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 107/138
3. Zeitverhalten 5. Constraints
Zusammenfassung
Ergebnisse müssen innerhalb der Gültigkeitsfensterabgetastet werden. Dazu dienen Register.Register werden durch Abtastprozesse beschrieben.Abtastprozesse haben nur den Takt in der Weckliste;Datenübernahme nur bei aktiver Takt�anke; wenn vor- oderNachhaltebedingung verletzt, Übernahme �ungültig�.Abtastprozesse können auch vor- oder nachgelagerteFunktionen mit einschlieÿen; vereinfacht die Simulation.Einrahmung in Ein- und Ausgaberegister ⇒Register-Transfer-Funktion; Zeitbedingungen mit einerLaufzeitanalyse kontrollierbar; stark vereinfachteSimulationsmodelle.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 108/138
3. Zeitverhalten 6. Aufgaben
Aufgaben
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 109/138
3. Zeitverhalten 6. Aufgaben
Aufgabe 3.1: Beschreibung als Abtastprozess
thr, tdr
y+
ts
Abtastfensterungultig
t3t4
t5
x1x0
y+
y
t6t7
t1t2
x2
T
a)
G1G2
& y
TReg
=1x0
x1
x2
th1, td1 th2, td2
b)
signal x0, x1, x2, y_next, T, y: STD_LOGIC;Beschreibung von t1 bis t7 als Funktion der Werte von th..,td... etc.Beschreibung der Gesamtschaltung als Abtastprozess
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 110/138
3. Zeitverhalten 6. Aufgaben
Aufgabe 3.2: Register-Transfer-Funktion
x+ 1
xn−1
0
1
n
nn
x
nn
y+
tdr = 1ns
T
td1 = 0,5 ns td2 = n · 1 ns td3 = 2nsts = 0,5 ns
Gesucht:maximal zulässige Taktfrequenz in Abhängigkeit von derBitbreite n?maximal zulässige Taktfrequenz für n = 16?
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 111/138
3. Zeitverhalten 6. Aufgaben
Aufgabe 3.3: Taktversatz
thr = 0nstdr = 1ns
Takt 1
x y
Takt 2
y = f(x)
thf = 5nstdf = 11ns
tn = 0ts = 2ns
In welchem Zeitbereich muss der Taktversatz t∆T12 liegen, damitbei Taktfrequenz fT = 100MHz die Vorhalte- und dieNachhaltebedingungen für das Ausgaberegisters erfüllt sind?
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 112/138
4. Asynchrone Eingabe
Asynchrone Eingabe
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 113/138
4. Asynchrone Eingabe 1. Abtastung
Abtastung
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 114/138
4. Asynchrone Eingabe 1. Abtastung
Asynchrone Eingabe
Asynchron bedeutet, dass die Eingabe nicht zeitlich zumSystemtakt ausgerichtet ist. Damit kann das Signal auch imAbtastfenster ungültig sein. Erfordert spezielle Schaltungen.
Ein abgetastetes Bitsignal hat auch, wenn es im Abtastmomentungültig ist, den Abtastwert �0� oder �1�. Der abgetastete Wertim Register ist immer glitch-frei und für eine Taktperiode stabil.
TP
T
x
x’
x′x
ts thr, tdr
T
ts ts ts ts
txT txT
tdrthr
tdrthr
tdrthr
tdrthr
Erste Regel: Asynchrone Eingaben vor der Verarbeitung abtasten!
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 115/138
4. Asynchrone Eingabe 1. Abtastung
Fehler: Verarbeitung nicht abgetasteter Eingaben
x
y
y′
a a′
T
x f(..)y
th, td
w1 w2
f(w1, 1) f(w2, 1)f(w1, 0)
f(w0, 0) XX f(w2, 1)
y′
ts th
ts
ththtdtd td
a
T
a
T
Das Signal y wird aus einem zum Takt ausgerichteten Signal xund einem nicht ausgerichteten Signal a gebildet. Änderungenvon y, ausgelöst durch Änderungen von x sind zur nächsten akti-ven Takt�anke immer gültig, aber von a ausgelöste Änderungennicht. Wenn y ein Bitvektor ist, wird bei Abtastung auÿerhalbdes Gültigkeitsfensters ein nicht vorhersehbarer Bitvektor ausNullen und Einsen abgetastet. Unvorhersagbare Wirkung.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 116/138
4. Asynchrone Eingabe 1. Abtastung
x
y
y′
a a′
T
x f(..)y
th, td
w1 w2
f(w1, 1) f(w2, 1)f(w1, 0)
f(w0, 0) XX f(w2, 1)
y′
ts th
ts
ththtdtd td
a
T
a
T
Fakt 1
Jedes asynchrone Signal ist vor der Weiterverarbeitungabzutasten.
Vor der Verarbeitungsfunktion ist in den Signalpfad von a einRegister einzufügen.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 117/138
4. Asynchrone Eingabe 2. Entprellen
Entprellen
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 118/138
4. Asynchrone Eingabe 2. Entprellen
Entprellen von Schaltern und Tastern
Mechanische Eingabeelemente (Taster und Schalter) prellen. BeiBetätigung ist es schwer auszuschlieÿen, dass der Kontakt durchmechanische Schwingungen mehrfach ö�net und schlieÿt. ZuVerhinderung, dass das abgetastete Signal bei einerEinzelbetätigung mehrfach ein- und ausschaltet, ist dieAbtastperiode länger als die maximale Prellzeit zu wählen.
tPr
Abtastperiodemaximale Prellzeit
tP > tPr
&
Schaltung zur Erkennung derfallenden Flanken
tP
tPr
1011 00 01 11
T
x
x’
x”
x”x’
x”x’y
x
T
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 119/138
4. Asynchrone Eingabe 2. Entprellen
Zur Erzeugung eines Impulses bei einer Tasterbetätigung ist dasEingabesignal ein zweites mal abzutasten. Tasterbetätigungensind dann an der Abtastfolge �01� bzw. �10� zu erkennen.
tPr
Abtastperiodemaximale Prellzeit
tP > tPr
&
Schaltung zur Erkennung derfallenden Flanken
tP
tPr
1011 00 01 11
T
x
x’
x”
x”x’
x”x’y
x
T
Achtung, dass funktioniert nicht ohne die erste Abtastung, weil ysonst von einem asynchronen Signal abhängt.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 120/138
4. Asynchrone Eingabe 2. Entprellen
Beschreibung in VHDL
x
Tx’ x”
y&
th, td
y’
(Takt)
signal T, x, x_del, x_del2, y:
STD_LOGIC;
...
process(T)beginif RISING_EDGE(T) thenx_del <= x; �- Synthesebeschreibung
x_del2 <= x_del; �- der beiden Register
end if;end process;y <= not x_del and x_del2;
Wichtig ist, dassdas erste Register nicht vergessenund der Abtasttakt nicht gröÿer als die maximale Prellzeitgewählt wird.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 121/138
4. Asynchrone Eingabe 3. Asynchrone Initialisierung
Asynchrone Initialisierung
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 122/138
4. Asynchrone Eingabe 3. Asynchrone Initialisierung
Register mit asynchroner Initialisierung
Register haben in der Regel einen asynchron wirkenden Initiali-sierungseingang, der Vorrang vor der Datenübernahme mit demTakt hat, der aber nicht asynchron angesteuert werden darf.
I
x yx
I
T
signal x, y: tTyp;
signal T, I: std_logic;
...
process(T, I)
beginif I='1' theny <= aw;
elsif RISING_EDGE(T) theny <= x;
end if;end process;
(tTyp � std_logic oderstd_logic_vector;
aw � Anfangswert, den das Registerbei Initialisierung übernehmen soll).
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 123/138
4. Asynchrone Eingabe 3. Asynchrone Initialisierung
Potentielle Fehlfunktionen
Pulsdauer des Initialisierungssignals zu kurz:
01
01
w1 w2w0
w1 w2
T
x′x
I
f()
tsthf , tdfthr, tdr
yx’I
x
I
x
T≪ TP
y’
Selbst wenn das Eingaberegister seinen Anfangswert korrektübernimmt, liegt der Initialwert am Registerausgang zu kurzeZeit stabil an, so dass das nachfolgende Register im ersten Schritteinen ungültigen Wert übernimmt.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 124/138
4. Asynchrone Eingabe 3. Asynchrone Initialisierung
Bei Master-Slave-Registern wirkt die asynchrone Initialisierungauf den Slave. Sie muss mindestens eine Taktperiode anliegenund in der Masterphase deaktiviert werden.
Zeitfenster fur die Deaktivierungdes Initialisierungssignals
01
01T
I
w1 w2
w0 w1 w2
w0
z
y w1 w2
EEx
E
I
T
Symbol
Ix yI
zx
I
x
T
zSlaveMaster
x
II
yx
AW
Bei Deaktivierung in der Slave-Phase liegt der anschlieÿendübernommene Wert zu kurz am Registerausgang an, so dass dasRegister hinter den nachfolgenden Verarbeitungsfunktionmöglicherweise einen ungültigen Wert abtastet.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 125/138
4. Asynchrone Eingabe 3. Asynchrone Initialisierung
01
01
01
01
EEx
E
zyx
I
x
T
zy
SlaveMaster
x
II
I
T
Symbol
Ix yI
T
I
w1 w2
w0 w1 w2
w0
z
y w1 w2
AW oder w0
in der Slave-PhaseDeaktivierung von I
am Ende der Slave-PhaseDeaktivierung von I
T
I
w1 w2
w0 w1 w2
w0
z
y w0 w1 w2
≪ TP
x
AWAW
Bei Deaktivierung am Ende der Slave Phase ist es unsicher, obder Slave den Initialisierungswert behält oder den Wert vomMaster übernimmt.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 126/138
4. Asynchrone Eingabe 3. Asynchrone Initialisierung
Laufzeitrobuste Lösung Power-on-Reset-
Schaltung
≥1
T
I
TasteReset-
Abtasten
UVsignal T, I, I_POR,
I_Tast: STD_LOGIC;
...
I_POR <= '1', '0'
after 1 ms;
process(T)
begin
if RISING_EDGE(T) then
if I_POR='0' or I_Tast='0' then I<='1';
else I<='0';
end if;
end if;
end process;
Bildung eines Gesamtinitialisierungssignals und Ausrichtung ander aktiven Takt�anke durch Abtasten.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 127/138
4. Asynchrone Eingabe 4. Eingabesynchronisation
Eingabesynchronisation
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 128/138
4. Asynchrone Eingabe 4. Eingabesynchronisation
Unterschiedlich getaktete Teilsysteme
Beim Datenaustausch zwischen Teilsystemen mit zeitlichunausgerichteten Takten benötigt der Empfänger eineZusatzinformation über die Gültigkeitszeitpunkte. Bei einersynchronen Übertragung wird der Takt des Senders mitübertragen, bei der Fern- und Funkübertragung werden dieGültigkeitszeitpunkte an den Änderungszeitpunkten derDatensignale ermittelt.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 129/138
4. Asynchrone Eingabe 4. Eingabesynchronisation
Synchrone Schnittstelle
Im nachfolgenden Beispiel einer parallelen Datenübertragungwird der Sendetakt mit übertragen. Die übertragenen Daten sindjeweils ab der Takt�anke von Tx für eine Dauer tg gültig.
xw1 w2 w3 w4 w5
G
G
Tx’Tx
=1
x’
abgetastetes EingabesignalSystemtaktSendetaktasynchrones Eingabesignalx
Tx
Gx’
Gultigkeitssignal fur x’
T
T
Tx”
TPtg
w2w1w0 w3 w4 w5
w0x
Tx
T
x’
Tx’
Tx”
Der Empfänger muss Daten und Takt mit einer TaktperiodeTp < tg abtasten, um garantiert jeden gültigen Wert mindestenseinmal zu erfassen.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 130/138
4. Asynchrone Eingabe 4. Eingabesynchronisation
xw1 w2 w3 w4 w5
G
G
Tx’Tx
=1
x’
abgetastetes EingabesignalSystemtaktSendetaktasynchrones Eingabesignalx
Tx
Gx’
Gultigkeitssignal fur x’
T
T
Tx”
TPtg
w2w1w0 w3 w4 w5
w0x
Tx
T
x’
Tx’
Tx”
Die Eingabedaten sind immer genau dann neu und gültig, wennsich der Abtastwert des Sendetakts vom vorherigen Abtastwertunterscheidet d.h., wenn die EXOR-Verknüpfung des ein- undzweimal abgetasteten Sendetakts eins ist.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 131/138
4. Asynchrone Eingabe 4. Eingabesynchronisation
VHDL-Beschreibung der Synchronisationsschaltung
signal T, Tx, Tx_del, Tx_del2, G: STD_LOGIC;
signal x, y: STD_LOGIC_VECTOR(...);
...process(T)beginif RISING_EDGE(T) theny<= x;
if Tx='1' then tx_del <= '1';
else tx_del <= '0';
end if;tx_del2 <= Tx_del;
end if;end process;G <= Tx_del xor Tx_del2;
x
Tx’f(...)
=1G
schaltungSynchronisations-
y
TTx
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 132/138
4. Asynchrone Eingabe 4. Eingabesynchronisation
Zusammenfassung
Asynchrone Signale sind vor ihrer Verarbeitung abzutasten.Bei prellenden Signalen von mechanischen Kontakten mussdie Abtastperiode gröÿer als die maximale Prelldauer sein.Auch asynchrone Initialisierungssignale müssen vor denRegistern durch Abtasten synchronisiert werden.An Schnittstellen zwischen Systemen mit unterschiedlichenTakten muss der Empfänger der Empfangsdatensynchronisieren, d.h. am eigenen Takt ausrichten. DieGültigkeit wird erst danach anhand der abgetasteten Wertebestimmt.
Vergessen Abtastung hat manchem Studierenden imArbeitsbereich eine wochenwährende Fehlersuche eingebracht.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 133/138
4. Asynchrone Eingabe 5. Aufgaben
Aufgaben
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 134/138
4. Asynchrone Eingabe 5. Aufgaben
Aufgabe 4.1: Addition Schaltereingabe
UV Versorgungsspannung
Addiererschaltung
(Signalwert Eins)
(Signalwert Null)Bezugspotential
· · ·
T
+
UV
xn−1
x1
x0+
Unter welchen Betriebsbedingungen kann es zu einemunerwarteten Fehlverhalten kommen?Wie ist die Schaltung zu verändern, damit sie zuverlässigarbeitet?
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 135/138
4. Asynchrone Eingabe 5. Aufgaben
Aufgabe 4.2: Asynchrone parallele Übertragung
Bei einer asynchronen Übertragung seien die mit dem Signal xübertragenen Datenworte immer dann gültig, wenn das mitübertragene Gültigkeitssignal g 6= 0 ist:
Maximaldauer g =X
Periodendauer von gTPg
tgx
Mindestdauer g = 1tg1
Mindestdauer g = 0tg0
0g
x wi+1wi
tg1
TPg
tgxtg0
1
Mit welcher Taktfrequenz muss die Empfangsschaltung diebeiden Signale abtasten10?Wie ist das Gültigkeitssignal für die abgetastetenDatenworte zu bilden, damit es für jedes abgetastete gültigeDatenwort genau einen Takt lang aktiv ist?
10Zeit für g = 0 gleich Zeit für g = 1
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 136/138
4. Asynchrone Eingabe 5. Aufgaben
Aufgabe 4.3: Handtakt
Entwurf einer Schaltung mit Eingabetaste x, Eingabetakt T(fT = 50 MHz) und internem Taktteiler zur Erzeugung einesglitch- und prellfreien Handtakt Tout:
entity Handtakt isport(x: in std_logic; -- Eingabesignal von der Taste
T: in std_logic; -- 50MHz-Eingabetakt
Tout: out std_logic); -- glitch- und prellfreier Handtakt
end entity;
maximalen Prelldauer 20msminimale Betätigungszeit 100ms.Teilerverhältnis des Taktteilers sei eine Zweierpotenz.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 137/138
4. Asynchrone Eingabe 5. Aufgaben
1 Welchen Vorteil hat eine Zweierpotenz als Teilerverhältnis?(Hinweis, die Schaltung hat keinen Initialisierungseingang.)
2 Welche Werte darf das Taktteilerverhältnis haben?
3 Zeichnen der Gesamtschaltung mit dem Taktteiler alsBlack-Box.
4 Beschreiben der Gesamtschaltung in VHDL.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 138/138
top related