entwurf digitaler schaltungen (f3) - tu clausthaltech · inhalt f2: handwerkszeug teil 2 automaten...
TRANSCRIPT
Entwurf digitaler Schaltungen (F3)
Handwerkszeug Teil 2
Prof. G. Kemnitz
Institut für Informatik, Technische Universität Clausthal23. Juni 2015
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 1/140
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
Operationsabläufe2.1 Dreiecksignalgenerator2.2 Serieller Addierer2.3 Divisionswerk2.4 Aufgaben
Zeitverhalten3.1 Simulation von
Laufzeittoleranzen3.2 Laufzeitanalyse3.3 Register3.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 23. Juni 2015 2/140
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 23. Juni 2015 3/140
1. Automaten
Automaten
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 4/140
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 23. Juni 2015 5/140
1. Automaten 1. Modellierung und Klassi�kation
Modellierung und Klassi�kation
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 6/140
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 23. Juni 2015 7/140
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 23. Juni 2015 8/140
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 23. Juni 2015 9/140
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 23. Juni 2015 10/140
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 23. Juni 2015 11/140
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 23. Juni 2015 12/140
1. Automaten 2. Automat als Schaltung
Automat als Schaltung
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 13/140
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 23. Juni 2015 14/140
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 23. Juni 2015 15/140
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 23. Juni 2015 16/140
1. Automaten 3. Entwurf mit KV-Diagrammen
Entwurf mit KV-Diagrammen
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 17/140
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 23. Juni 2015 18/140
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 23. Juni 2015 19/140
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 23. Juni 2015 20/140
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 23. Juni 2015 21/140
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 23. Juni 2015 22/140
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 23. Juni 2015 23/140
1. Automaten 4. Beschreibung in VHDL
Beschreibung in VHDL
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 24/140
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 23. Juni 2015 25/140
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 23. Juni 2015 26/140
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 23. Juni 2015 27/140
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 23. Juni 2015 28/140
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 23. Juni 2015 29/140
1. Automaten 5. Redundante Zustände
Redundante Zustände
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 30/140
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 23. Juni 2015 31/140
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 23. Juni 2015 32/140
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 23. Juni 2015 33/140
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 23. Juni 2015 34/140
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 23. Juni 2015 35/140
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 23. Juni 2015 36/140
1. Automaten 6. Beispiel Zahlenschloss
Beispiel Zahlenschloss
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 37/140
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 23. Juni 2015 38/140
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 23. Juni 2015 39/140
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 23. Juni 2015 40/140
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 23. Juni 2015 41/140
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 23. Juni 2015 42/140
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 23. Juni 2015 43/140
1. Automaten 7. Aufgaben
Aufgaben
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 44/140
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 23. Juni 2015 45/140
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 23. Juni 2015 46/140
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 23. Juni 2015 47/140
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 23. Juni 2015 48/140
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 23. Juni 2015 49/140
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 23. Juni 2015 50/140
2. Operationsabläufe
Operationsabläufe
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 51/140
2. Operationsabläufe
Steuerung von Operationsabläufen
Die Zustands- und Kantenanzahl eines Automaten wächst expo-nentiell mit der Anzahl der Eingabe- und Zustandsbits. Bei zuvielen Zuständen Aufteilung in Ablaufzustände und Operanden.
Erweiterung der bisherigen Ablaufgraphen:Aktionen: bisher nur Ausgabezuweisung. Ab jetzt beliebigelogische und arithmetische Operationen.Übergangsbedingungen: Bisher nur Eingabewerte. Ab jetztbeliebige logische Ausdrücke von Eingaben und Operanden.Initialierung: Zusätzliche Operandeninitialisierung.
Z <= Z + 1
Zustand 0
Z <= Z−1
Zustand 1Z > 3Z <= 0
Bereits ein einzelner Zähler kann die Beschreibung einessequentiellen Ablaufs drastisch vereinfachen.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 52/140
2. Operationsabläufe 1. Dreiecksignalgenerator
Dreiecksignalgenerator
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 53/140
2. Operationsabläufe 1. Dreiecksignalgenerator
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 Zuständen aus:
Aufwärtszählen undAbwärtszählen.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 54/140
2. Operationsabläufe 1. Dreiecksignalgenerator
Beschreibungen als autonomer Automat in der bisherigen Form:
Z0
0000Z1
0001Z2
0010Z14
1110Z15
1111
16Z17Z29Z30 Z28
11111110001000010000
Beschreibung als Operationsablauf:
Abwartszahlenz <= z − 1
Aufwartszahlenz <= z + 1
z =”1110”
z =”0001”sonst sonst
z <=”0000”
kleiner,skalierbar undeinfacher zu programmieren.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 55/140
2. Operationsabläufe 1. Dreiecksignalgenerator
Beschreibung in VHDL
000000010010
11101101
1111
0 15 30 Schritt
Aufwartszahlenz <= z + 1
z <= z − 1Abwartszahlen
z <=”0000”
z =”0001”
z =”1110”
signal T, I, S: std_logic;signal 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 z="1110" then s<='1'; end if;
when others => z <= z -"1";if z="0001" then s<='0'; end if;
end case;end if;end process;
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 56/140
2. Operationsabläufe 2. Serieller Addierer
Serieller Addierer
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 57/140
2. Operationsabläufe 2. 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)<=VA_sum(a(i), b(i), c);
c:=VA_carry(a(i), b(i), c);
end loop;cout<=c;
end process;
Maximale Verzögerung:
tdRAdd ≈ n · tdVAProf. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 58/140
2. Operationsabläufe 2. Serieller Addierer
Die Funktionbeschreibungen für die Summen- und Übertrags-berechnung können im Deklarationsteil der �Architecture� oderdes �Process� oder besser in einem Package stehen:
function VA_sum(a, b, c: std_logic) return std_logic is
begin
return a xor b xor c;
end function;
function VA_carry(a, b, c: std_logic) return std_logic is
begin
return (a and b) or (a and c) or (b and c);
end function;
Ein serieller Addierer addiert pro Takt nur ein Bit undbraucht mindestens n Takte mit der Periode TP = 1..2 · tdVA.
Nur ein statt n Volladdierer und nicht viel langsamer aus einRipple-Addierer mit tdRAdd = n · tdVA.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 59/140
2. Operationsabläufe 2. Serieller Addierer
Aufteilung in Zeitschritte
Im einfachsten Fall durch Einfügen von Warteanweisungen:
signal a,b,s:std_logic_vector(n-1 downto 0);
signal c, cin, Start, busy: std_logic;...
processbeginbusy<='0';
wait until Start='1' and RISING_EDGE(T);
busy<='1'; c<=cin; -- cin, a, b seien bereit
wait until RISING_EDGE(T); -- warte vor erster Bitadd.
for i in 0 to n-1 loops(i)<=VA_sum(a(i), b(i), c);
c<=VA_carry(a(i), b(i), c);
wait until RISING_EDGE(T); -- w. nach jeder Bitadd.
end loop;end process;
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 60/140
2. Operationsabläufe 2. Serieller Addierer
Simulation
Nach Aktivierung von Start wird busy aktiviert, ein Taktgewartet, vier Takte addiert und busy deaktiviert.
Die Operanden a und b müssen während der gesamten Additionverfügbar sein.
Kontrolle und Optimierung der Abläufe.Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 61/140
2. Operationsabläufe 2. Serieller Addierer
Operationsablaufbeschreibung, VHDL-Entwurf 2
signal a, a_in, b , b_in, s:std_logic_vector(3 downto 0);
signal init, T, c, c_in, Start, busy: std_logic;
signal i: natural;
process(init,T)beginif init='1' then busy<='0';
elsif rising_edge(T) then
if busy='0' and Start='1' then
busy<='1'; i<=0;
a <= a_in; b<=b_in; c<= c_in;
elsif busy='1' then
s(i) <= VA_sum(a(i), b(i), c);
c <=VA_carry(a(i), b(i), c); i<= i+1;
if i=3 then busy<='0';end if;end if;
end if;end process;
Start=’1’c<=c ina<=a inb<=b ini<=0
busy=’0’
busy=’1’
i=3
i<=i+1c<=VA carry(a(i),b(i),c)s(i)<=VA sum(a(i),b(i),c)
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 62/140
2. Operationsabläufe 2. Serieller Addierer
Simulation
Als Verbesserung werden die Operanden a und b zwischen-gespeichert und müssen nur während Start=1 gültig sein.Synthesefähige Beschreibung.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 63/140
2. Operationsabläufe 2. Serieller Addierer
Schaltung und Verbesserung
E4
Ec
sVA
+1
E
E
E
E
Dec2:4
4
2
s(0)
s(1)
s(2)
s(3)
cStart
c in
b in
a in
In �s(i) <= VA_sum(a(i), b(i), c);� verlangtadressiertes Lesen und Schreiben.Einfacher sind Schieberegister.
b0b1b2b3 c
sVA
s0s1s2s3a0a1a2a3
+1c ct
c<=c in; i<=0a<=a in; b<=b in
Start=’1’ i=3
busy=’0’
c<=VA carry(a(0),b(0),c)s<=s(3:1)&VA sum(a(0),b(0),c)
a<a srl 1; b<=b srl 1; i<=i+1
busy=’1’
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 64/140
2. Operationsabläufe 2. Serieller Addierer
Operationsablauf mit Schieberegistern in VHDL
signal a, a_in, b, b_in, s:std_logic_vector(3 downto 0);signal init, T, c, c_in, Start, busy: std_logic;
signal i: natural range 0 to 3;
process(init,T)beginif init='1' then busy<='0';
elsif rising_edge(T) then
if busy='0' and Start='1' then
busy<='1'; i<=0;
a <= a_in; b<=b_in; c<= c_in;
elsif busy='1' then
s <= s(2 downto 0) & VA_sum(a(0), b(0), c);
c <= VA_carry(a(0), b(0), c); i<= i+1;
a <= '0' & a(3 downto 1); b <= '0' & b(3 downto 1);
if i=3 then busy<='0';end if;end if; end if;
end process;
busy=’0’
c<=VA carry(a(0),b(0),c)s<=s(3:1)&VA sum(a(0),b(0),c)
a<a srl 1; b<=b srl 1; i<=i+1
busy=’1’
c<=c in; i<=0a<=a in; b<=b inStart=’1’i=3
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 65/140
2. Operationsabläufe 2. Serieller Addierer
Simulationsergebnis mit Schieberegistern
Ab dieser Entwurfskomplexität ist eine Simulation des Entwurfsdringend zu empfehlen.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 66/140
2. Operationsabläufe 2. Serieller Addierer
Zusammenfassung
Der serielle Addierer wurde in drei Schritten entworfen:Aufteilung der Addition in Zeitschritte mitWait-Anweisungen, um den Ablauf zu simulieren, aufPlausibilität zu prüfen und nachzubessern.Nachbildung durch einen Operationsablaufgraphen.Nachbildung des Operationsablaufs durch einesynthesefähige Beschreibung.Abschätzen der zu erwartenden Schaltung.Aufwandsbewertung. Nachbesserung des Operationsablaufsund darauf aufbauend der VHDL-Beschreibung.
Wenn Sie selbst eine so komplexe Schaltung entwerfen, sollten Siebeim ersten mal dafür Wochen und nicht nur Stunden anArbeitszeit einplanen.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 67/140
2. Operationsabläufe 3. Divisionswerk
Divisionswerk
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 68/140
2. Operationsabläufe 3. Divisionswerk
Division von Binärzahlen
a
b= q +
r
b(a � Dividend; b � Divisor; q � (ganzzahliger) Quotient; r � Rest).
. . .
qr
diffb
r.a .i = 0 i = 1 i = 2 i = 3
RestQuotient
0001
0001
0110 110
0000
1111000 10 00 1000 100 00 100
0 110
00 0
1
00
00
10 110
1111
010
0 110
0
0101 100
001
0 1101 0 00
1100
010
Operation für jedes Bit:for i in 0 to 3 loop
diff := ('0' & r) - b;
q := q(2 downto 0) & not diff(4);
if diff(4)='0' then r := diff(3 downto 0); end if;
r:=r(2 downto 0) & a(2); a := a(1 downto 0) & '0';
end loop;Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 69/140
2. Operationsabläufe 3. Divisionswerk
Programmrahmen zur Simulation:signal a_in, b:std_logic_vector(3 downto 0);
signal T: std_logic;
process -- Erzeugung der Testbeispiele
begin
T <= '0' after 5 ns, '1' after 10 ns;
a_in <= "1011"; b<="0011";
wait until rising_edge(T);
T <= '0' after 5 ns, '1' after 10 ns;
a_in <= "1101"; b<="0101";
wait;
end process;
process
variable a, aa: std_logic_vector(2 downto 0);
variable diff: std_logic_vector(4 downto 0);
variable r, rr, q: std_logic_vector(3 downto 0);
begin
... -- Divisionsalgorithmus
end process;Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 70/140
2. Operationsabläufe 3. Divisionswerk
Division mit Textausgaben
Nutzt Tuc.Ausgabe.all und ieee.numeric_std.all.wait until rising_edge(T);
write(lf&"Divident="&str(a_in)&" Divisor="&str(b));
r := "000"&a_in(3); a := a_in(2 downto 0);
for i in 0 to 3 loop
rr := r; aa:=a; �- Aufbewahrung zur Ausgabediff := std_logic_vector5(unsigned('0'&r) - unsigend(b));
q := q(2 downto 0) & not diff(4);
if diff(4)='0' then r := diff(3 downto 0); end if;
write("i=" & str(i) & " | r.a=" & str(rr) & '.'&str(aa) &
"-" & str(b) & "=" & str(diff) & " | Rest="&str(r) &
" Quotient=" & str(q));
r:=r(2 downto 0) & a(2); a := a(1 downto 0) & '0';
end loop;
5tTyp(x) Konvertierungsfunktion nach tTyp, hier um dieSubtraktion von unsigned für std_logic_vector nutzen zu können.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 71/140
2. Operationsabläufe 3. Divisionswerk
Programmausgabe
. . .
qr
diffb
r.a .i = 0 i = 1 i = 2 i = 3
RestQuotient
0001
0001
0110 110
0000
1111000 10 00 1000 100 00 100
0 110
00 0
1
00
00
10 110
1111
010
0 110
0
0101 100
001
0 1101 0 00
1100
010
Divident=1011 Divisor=0011
i=0 | r.a=0001.011-0011=11110 | Rest=0001 Quotient=UUU0
i=1 | r.a=0010.110-0011=11111 | Rest=0010 Quotient=UU00
i=2 | r.a=0101.100-0011=00010 | Rest=0010 Quotient=U001
i=3 | r.a=0101.000-0011=00010 | Rest=0010 Quotient=0011
Divident=1101 Divisor=0101
i=0 | r.a=0001.101-0101=11100 | Rest=0001 Quotient=0110
i=1 | r.a=0011.010-0101=11110 | Rest=0011 Quotient=1100
i=2 | r.a=0110.100-0101=00001 | Rest=0001 Quotient=1001
i=3 | r.a=0011.000-0101=11110 | Rest=0011 Quotient=0010
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 72/140
2. Operationsabläufe 3. Divisionswerk
Aufrollen der Schleife zu einem Matrix-Dividierer
for i in 0 to 3 loop
diff := ('0' & r) - b;
q := q(2 downto 0) & not diff(4);
if diff(4)='0' then r := diff(3 downto 0); end if;
r:=r(2 downto 0) & a(2); a := a(1 downto 0) & '0';
end loop;
Pfad mit der großten Verzogerung: tDiv ≈ n · tAdd ∼ n2
sll sll
sll
Sub
01
r
d4Sub
01
d4
q2
”000”&a in
b
”XXXX”
a
r
q3
r
a
r
”XXXq3” · · ·
· · ·
· · ·· · ·
a
r
· · ·
”XXq3q2”sll
Logisch Linksverschiebung um ein Bit (einfache Verbindungen)sll
Dauer: ≈ tAdd ∼ nDivisionsschritt
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 73/140
2. Operationsabläufe 3. Divisionswerk
Serieller Dividierer busy=’0’
busy=’1’
div:=(’0’& r) - b;if div(4)=0 vr:=div(3:0)else vr:=rq<=q(2:0) & not div(4)a<=a(1:0) & ’0’r<=vr(2:0) & a(2)i<=i+1
Start=’1’
r<=”000” & a in(3)a<=a in(2:0)i<=0
sll
sll
Sub
01
d4
q2
r
a
r
b
q
i=3n Div.-Schritte, tSerDiv ≈ n · tAdd ∼ n2
Nur einen statt n Subtrahierer undetwa dieselbe Ausführungszeit wie ein Array-Dividierer.
Division erfolgt deshalb in der Regel seriell statt in einem Schritt.Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 74/140
2. Operationsabläufe 3. Divisionswerk
Zusammenfassung
Auch der Dividierer wurde wieder in Schritten entworfen:
Formulierung eines Beispielablaufs.
Nachbildung mit einem Programm und Beispielsimulationen.
Untersuchung der resultierenden Schaltung.
Beschreibung als Operationsablauf, ...
Die nächst Stufe wäre die Aufstellung einer synthesefähigenVHDL-Schaltung. Die Entwicklung eines generischen Modells füreinen n-Bit-Dividierer, Testrahmenentwicklung, Simulation bishin zum Test hat den Arbeistumfang einer halben Bachelorarbeit.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 75/140
2. Operationsabläufe 4. Aufgaben
Aufgaben
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 76/140
2. Operationsabläufe 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 Operationsablaufgraphmit einem Zähler.
3 Beschreibung als VHDL-Prozess.Hinweis: Der Datentyp für den Zähler kann auch ein Zahlentypsein (INTEGER, NATURAL oder POSITIVE), z.B.
signal i: natural range 0 to 3;
Die Wertebereichsbeschränkung, hier auf den Bereich von 0 bis 3,braucht die Synthese für die Bestimmung der Bitanzahl.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 77/140
2. Operationsabläufe 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 23. Juni 2015 78/140
2. Operationsabläufe 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 23. Juni 2015 79/140
2. Operationsabläufe 4. Aufgaben
Aufgabe 2.3: Entwurf eines seriellen Divisidierers
1 Beschreiben Sie den seriellen 4-Bit-Dividierer mit demOperationsablaufgraph auf Folie 74 in VHDL.
2 Entwicklen Sie einen Testrahmen zur Simulation derDivision mit den Beispielen auf Folie 72.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 80/140
2. Operationsabläufe 4. Aufgaben
Aufgabe 2.4: Schrittzähler für 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 23. Juni 2015 81/140
2. Operationsabläufe 4. Aufgaben
(a', b' sind die einmal abgetastet, a�, b� die zweimal abgetastetSensorsignale. Übergangsfunktion:
a�b� <= a'b'
Aufgaben:1 Aufstellen von je einem KV-Diagramm für die Bildung einesInc- (Increment) und eines Dec- (Decrement) Signals6.
2 Beschreibung der Schrittzählschaltung in VHDL.Schnittstelle:entity SchrittZaehler isport ( T, I: in STD_LOGIC; �- Takt und Init.-Signal7
a, b: in STD_LOGIC; �- Sensorausgangssignale
y: out signed(15 downto 0) �- Zaehler
);6Inc soll für Zähloberation �+1� und �Dec� für Zähloperation �-1� eins
und sonst null sein.7 Bei I=1 ist der Zähler y<= 0 zu setzen.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 82/140
3. Zeitverhalten
Zeitverhalten
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 83/140
3. Zeitverhalten
Zeitverhalten
Foliensatz F2, Abschnitt 1 (Simulation) wurde u.a. eingeführt,wie das Zeitverhalten von Schaltungen simuliert wird:
Verarbeitungsfunktionen mit konstanter Verzögerung,Verarbeitungsfunktionen mit Toleranzbereich für dieVerzögerung,Zeitverhalten von Latches, Registern und Blockspeichern.
Die Synthese erlaubt keine Vorgaben für das Zeitverhalten.
Dieser Abschnitt wiederholt die behandelten Beschreibungen desZeitverhaltes und erweitert um:
weitere Simulationsmodelle,Laufzeitanalyse zur Compile-Zeit undasynchrone Eingabe.
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 84/140
3. Zeitverhalten 1. Simulation von Laufzeittoleranzen
Simulation von Laufzeittoleranzen
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 85/140
3. Zeitverhalten 1. Simulation von Laufzeittoleranzen
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 23. Juni 2015 86/140
3. Zeitverhalten 1. Simulation von Laufzeittoleranzen
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 23. Juni 2015 87/140
3. Zeitverhalten 1. Simulation von Laufzeittoleranzen
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 23. Juni 2015 88/140
3. Zeitverhalten 1. Simulation von Laufzeittoleranzen
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 23. Juni 2015 89/140
3. Zeitverhalten 1. Simulation von Laufzeittoleranzen
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 23. Juni 2015 90/140
3. Zeitverhalten 2. Laufzeitanalyse
Laufzeitanalyse
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 91/140
3. Zeitverhalten 2. Laufzeitanalyse
Laufzeitanalyse
Die Laufzeitanalyse berechnet die Halte- und Verzögerungszeiteiner übergeordneten kombinatorischen Schaltung aus den Halte-und Verzögerungszeiten der Teilschaltungen durch Additionentlang aller 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 nsProf. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 92/140
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 23. Juni 2015 93/140
3. Zeitverhalten 2. Laufzeitanalyse
Zeitgruppenweise Berechnung der Halte- und Verzögerungszeitendurch fortgesetzte Additionen, Minimum- und Maximumbildung.
1
23
67
89
45
Zeitgruppenverzog.Zeitgruppenhaltezeit
td.2
th.4
th.2
th.1
td.1
td.3
td.4
th.5
th.3
td.5
Ungultigkeitsfenster ZG0
tD.1 = td.1
tD.3 = max(tD.1, tD.2)
tD.2 = td.2
tD.5 = tD.3 + td.3tD.4 = max(tD.2, 0)
tDs.6 = tD.4 + td.4tD.7 = max(tD.5, tD.6)
tD.8 = tD.7 + tD.5
tD.9 = max(tD.6, tD.8)
tH.1 = th.1
tH.3 = min(tH.1, tH.2)
tH.2 = th.2
tH.5 = tH.3 + th.3tH.4 = min(tH.2, 0)
tH.6 = tH.4 + th.4tH.7 = min(tH.5, tH.6)
tH.8 = tH.7 + th.5tH.9 = min(tH.6, tH.8)
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 94/140
3. Zeitverhalten 3. Register
Register
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 95/140
3. Zeitverhalten 3. Register
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 in einem kleinenZeitfenster im Bereich der aktiven Takt�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 23. Juni 2015 96/140
3. Zeitverhalten 3. Register
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 23. Juni 2015 97/140
3. Zeitverhalten 3. Register
Register nach dem Master-Slave-Prinzip
Master speichertSlave speichert
10
10
10
10
Ex
Ex
T
x
z
y
T
x y
AbtastfensterUbernahmeflanke
x
T
zy
SlaveMaster Symbol
Vor der aktiven Takt�anke übernimmt der Master und der Slavespeichert. Nach der aktiven Takt�anke gibt der Master diegespeicherten Daten an den Slave weiter. Die Eingabedatenbrauchen eine Vorhaltezeit (ts > 0), aber keine Nachhaltezeit(tn = 0).
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 98/140
3. Zeitverhalten 3. Register
Gepulstes Latch als Register
AbtastfensterWert ungultig
RegisterverzogerungRegisterhaltezeitNachhaltezeitVorhaltezeit
nn
tdr
thr
tn
01
10z
T
E10
x
y
td1
ts = 0 tn = td1
w1
w0 w1
td2
⇒Bezugszeit derUbernahme
Tz
td2
&E
E
x y
thL, tdL
td1 x
tdR = tdLthR = thL
Datenwert
td2
wi
ts
Erzeugung eines kurzen Freigabeimpulses für ein Latch an deraktiven Takt�anke. Halbe Latch-Anzahl gegenüber Master-Slave-Lösung. Emp�ndlicher gegenüber Laufzeitungenauigkeiten,d.h. schwerer zu entwerfen. Eingabedaten brauchen keineVorhaltezeit (ts = 0), dafür eine Nachhaltezeit (tn > 0).
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 99/140
3. Zeitverhalten 3. Register
Verarbeitung mit Abtastung
Bei der Abtastung von Verarbeitungsergebnissen ist derAbtastwert auch nur bei jeder aktiven Takt�anke neu zuberechnen. Halte und Verzögerungszeit sind die des Registers. DieEingabedaten für die Verarbeitung müssen vor der aktivenTakt�anke gültig sein von tdf + ts bis thf − tn (tn in derAbbildung vernachlässigt).
ts
notwendigesGultigkeitsfenster
ts
x
T
y
f(x)x
thf , tdf
T
thr, tdr
yy+
thftdf + ts
wi
f(wi)tdrthr
f(wi−1) f(wi)
y+
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 100/140
3. Zeitverhalten 3. Register
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; (Modell ohne Nachhaltezeit)Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 101/140
3. Zeitverhalten 4. Register-Transfer-Funktionen
Register-Transfer-Funktionen
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 102/140
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 23. Juni 2015 103/140
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 23. Juni 2015 104/140
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 23. Juni 2015 105/140
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 23. Juni 2015 106/140
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 23. Juni 2015 107/140
3. Zeitverhalten 5. Constraints
Constraints
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 108/140
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 23. Juni 2015 109/140
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 23. Juni 2015 110/140
3. Zeitverhalten 6. Aufgaben
Aufgaben
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 111/140
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 23. Juni 2015 112/140
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 23. Juni 2015 113/140
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 23. Juni 2015 114/140
4. Asynchrone Eingabe
Asynchrone Eingabe
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 115/140
4. Asynchrone Eingabe 1. Abtastung
Abtastung
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 116/140
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 23. Juni 2015 117/140
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 23. Juni 2015 118/140
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 23. Juni 2015 119/140
4. Asynchrone Eingabe 2. Entprellen
Entprellen
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 120/140
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 23. Juni 2015 121/140
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 23. Juni 2015 122/140
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 23. Juni 2015 123/140
4. Asynchrone Eingabe 3. Asynchrone Initialisierung
Asynchrone Initialisierung
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 124/140
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 23. Juni 2015 125/140
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 23. Juni 2015 126/140
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 23. Juni 2015 127/140
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 23. Juni 2015 128/140
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 23. Juni 2015 129/140
4. Asynchrone Eingabe 4. Eingabesynchronisation
Eingabesynchronisation
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 130/140
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 23. Juni 2015 131/140
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 23. Juni 2015 132/140
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 23. Juni 2015 133/140
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 23. Juni 2015 134/140
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 23. Juni 2015 135/140
4. Asynchrone Eingabe 5. Aufgaben
Aufgaben
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 136/140
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 23. Juni 2015 137/140
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 abtasten9?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?
9Zeit für g = 0 gleich Zeit für g = 1
Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 23. Juni 2015 138/140
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 23. Juni 2015 139/140
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 23. Juni 2015 140/140