Upload
others
View
12
Download
0
Embed Size (px)
Citation preview
2.
Entwurf digitaler Schaltungen (F2)
Kapitel 1, Teil 2
Modellbildung und SimulationAbschnitte 1.3 Laufzeittoleranz
bis 1.6 Sequentielle Schaltungen
Prof. G. Kemnitz
Institut fur Informatik, Technische Universitat Clausthal24. April 2013
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 1/129
2.
Laufzeittoleranz1.1 Glitches1.2 Verzogerungsmodell1.3 Simulation mit Laufzeittoleranz1.4 Laufzeitanalyse1.5 Aufgaben
Register2.1 Register als Abtastelement2.2 VHDL-Abtastprozesse2.3 Verarbeitung + Abtastung2.4 Register-Transfer-Funktion2.5 Taktversatz2.6 Aufgaben
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 1/129
2.Asynchrone Eingabe
3.1 Abtasten Einzelbits3.2 Entprellen von Tasten3.3 Asynchrone Initialisierung3.4 Parallele Schnittstelle3.5 Aufgaben
Sequentielle Schaltungen4.1 Endlicher Automat4.2 Automat ⇒ VHDL4.3 Systemabsturz4.4 Zahlenschloss4.5 Operationsablauf4.6 Quadratur-Encoder
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 1/129
3. Laufzeittoleranz4.7 Aufgaben
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 2/129
3. Laufzeittoleranz
Laufzeittoleranz
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 2/129
3. Laufzeittoleranz
Schwachen des bisherigen Modells
signalfuhrende Großen andern sich stetig, nicht sprunghaft
sind zwischen den Werteanderungen kurzzeitig ungultig
eine Eingabeanderung kann Mehrfachanderungen amAusgang verursachen
Verzogerungszeiten nie genau bekannt / abhangig von derTemperatur, vor Fertigungsstreuungen, von der Alterung, ...
Eine digitale Schaltung arbeitet nur dann zuverlassig, wenn ihreFunktion nicht von Zeitparametern abhangt, solange dieseinnerhalb ihrer zulassigen Toleranzbereiche liegen.
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 3/129
3. Laufzeittoleranz 1. Glitches
Glitches
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 4/129
3. Laufzeittoleranz 1. Glitches
Glitches, Wettlaufe
Glitches: kurze Pulse, die bei der Signalverarbeitung entstehenund Fehlfunktionen verursachen konnen
10
tx
Mogliche Ursachen:
Wettlaufe: fast zeitgleiche Anderungen an mehrerenEingangen und unterschiedliche Verzogerung
td1 td1
Impulse durch Wettlaufe
10
10
10
10
x2
ztd2td2
x1
x1
x2
td1
z
td2td2
td2
& y
y
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 5/129
3. Laufzeittoleranz 1. Glitches
Hazard
auch wenn gleichzeitig nur der Wert an einem Eingangwechselt, kann das an den Ausgangen eine Folge vonSignalwechseln zur Folge habenUrsache: rekonvergenter Signalfluss (verzweigenderSignalfluss, der wieder zusammen trifft)
Hazard
td1 td1 td1td1
td1
&&
&x1
x2y2
td2td1
10
10
10
10
10
10
x2
x1 y1
td2
z1
td1
Schaltung
vereinfacht
z2
td2 td2 td2
x1
z1
x2
y1
td2 td2
z2
y2Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 6/129
3. Laufzeittoleranz 1. Glitches
das Auftreten von Wettlaufen und Hazards
ist nicht von der Funktion, sondern von der Strukturabhangig (vorherige Folie unten links)die Anzahl und die Lange der Glitches sind laufzeitabhangigund damit von Fertigungsstreuungen, der Temperatur derAlterung etc. abhangigin Synthesevorgaben sind Glitches weder einplanbar nochausschließbar
das bisherige Laufzeitmodell ist fur laufzeitempfindlicheEffekte wie Glitches sehr ungenau (siehe spater)
Fakt 1
Digitale Schaltungen sind moglichst so zu entwerfen, dassGlitches entweder ausgeschlossen werden konnen oder dass siedie Funktion nicht beeintrachtigen.
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 7/129
3. Laufzeittoleranz 2. Verzogerungsmodell
Verzogerungsmodell
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 8/129
3. Laufzeittoleranz 2. Verzogerungsmodell
Verzogerungsmodell einer Signalzuweisung
Glitches vervielfachen die Signalereignisse
Signalzuweisung unterdrucken kurz aufeinanderfolgendeSignalwechsel; einstellbar mit dem Verzogerungsmodell
Signalbezeichner <= [VM] Ausdruck after td;VM ⇒ transport|[reject tr] inertial]
VM -- optionale Angabe des Verzogerungsmodells
td -- Verzogerungszeit
tr -- Ruckweiszeit
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 9/129
3. Laufzeittoleranz 2. Verzogerungsmodell
’0’
’1’
’0’
’1’
t in ns
’0’
’1’
’1’
’0’
t in ns
TransportverzogerungsmodellStandardverzogerungsmodell
0 10 20 30 40 50 0 10 20 30 40 50
after transporty <= x 10 ns; y <= x after 10 ns;
x
y
x
y
Standardverzogerungsmodell: Zuweisung loscht alleschwebenden Anderungen
Transportverzogerungsmodell: Zuweisung loscht nurschwebende Anderungen, die spater als die zugewiesenAnderungen wirksam werden
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 10/129
3. Laufzeittoleranz 2. Verzogerungsmodell
’0’
’1’
’1’
’0’
t in ns
durch eine spatere Ande-rung geloscht wird
schwebende Anderung, die
0 10 20 30 40 50
Verzogerungsmodell mit Ruckweiszeit
normal abgearbeitet wird
nicht eingestellt wird, weilder Wert gleich bleibt
reject inertialy <= 5 ns x after 10 ns;
x
y
unterdruckt nur Pulse bis zur Breite der Ruckweiszeit trloschen aller schwebenden Zuweisungen fur Zeitpunktespatere td − tr geloscht; Ausnahme. schwebendeZuweisungen vor der neuen Zuweisung, die bereits denselbenWert zuweisen
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 11/129
3. Laufzeittoleranz 2. Verzogerungsmodell
Ein Simulationsbeispiel
signal y1, y2, y3: NATURAL;...y1 <= 1 after 1 ns, 2 after 2 ns, 3 after 3 ns, 4 after 4 ns,5 after 5 ns;y2<=y1; y3<=y2; wait for 2.1 ns;
y1 <= 8 after 3 ns, 9 after 4 ns;y2 <= transport 8 after 3 ns, 9 after 4 ns;y1 <= reject 1.5 ns inertial 8 after 3 ns, 9 after 4 ns;wait;
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 12/129
3. Laufzeittoleranz 3. Simulation mit Laufzeittoleranz
Simulation mit Laufzeittoleranz
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 13/129
3. Laufzeittoleranz 3. Simulation mit Laufzeittoleranz
Beschreibung der Verzogerung als Toleranzbereich
y
x
f(x) yx
th, td
th
f(wi+1)
wi+1
td
t
wi
f(wi)
Signalwert ungultig
th Haltezeit, Zeit, die der alte gultige Ausgabewert nacheiner Eingabeanderung garantiert noch erhalten bleibttd Verzogerungszeit, Zeit, nach Anliegen des neuen gultigenEingabewerts, bis die Ausgabe spatestens den neuengultigen Funktionswert ubernimmt
ungultig:
Wert im verbotenen Bereich; Anderungszeitpunkt nichtgenauer bekannt; Glitch-Gefahr
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 14/129
3. Laufzeittoleranz 3. Simulation mit Laufzeittoleranz
Beschreibung in VHDL
x
y
f(x) yx
th, td
wi+1wi
f(wi+1)f(wi)
tdth
Signalwert ungultig
process(x)
begin
if vorherige Eingabe gultig then
y <= ungultig after th;
end if;
if neuer Eingabewert gultig then
y <= transport f(x) after td;(1)
end if;
end process;(1) Transportmodell, damit schwebende Anderung nach ungultig nichtgeloscht wird
Kurzschreibweise
y <= ungultig after th, f(x) after td;
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 15/129
3. Laufzeittoleranz 3. Simulation mit Laufzeittoleranz
Simulation eines Inverters
signal x, y: STD LOGIC;
...
x <= ’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;
y <= ’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 fur Informatik, Technische Universitat Clausthal 24. April 2013 16/129
3. Laufzeittoleranz 3. Simulation mit Laufzeittoleranz
10y
0 2 4 6 8 10
thtd
tsim
10x
nicht initialisiert (U) ungultig (X)
Prozess �x-Zuweisung� wird nur zum Simulationsbeginngeweckt; einmalige Zuweisung mehrerer AnderungenProzess �y-Zuweisung� wird auch bei jeder Anderung von xgeweckt; Zuweisung zwei AnderungenStandardverzogerungsmodell, jede Neuzuweisung loschtschwebende Anderungenbei schwebender Anderung nach �X� ubernimmt die neueZuweisung den alten Zuweisungszeitpunkt
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 17/129
3. Laufzeittoleranz 3. Simulation mit Laufzeittoleranz
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 ps;
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;
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 18/129
3. Laufzeittoleranz 3. Simulation mit Laufzeittoleranz
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
Ausgabe im Beispiel meiste Zeit ungultigungultig bedeutet hier �nicht unbedingt richtig�
Schaltungen, die ungultige Signalwerte verarbeiten, konnenfunktionieren, aber nicht zuverlassig; schwer zu debuggen
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 19/129
3. Laufzeittoleranz 4. Laufzeitanalyse
Laufzeitanalyse
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 20/129
3. Laufzeittoleranz 4. Laufzeitanalyse
Laufzeitanalyse
Berechnung der Halte- und Verzogerungszeit einer uberge-ordneten Schaltung aus den Parametern der Teilschaltungen
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 fur Informatik, Technische Universitat Clausthal 24. April 2013 21/129
3. Laufzeittoleranz 4. Laufzeitanalyse
Aufsummierung der Halte- und Verzogerungszeiten entlangaller Pfade
die Haltezeit der Gesamtschaltung ist die des Pfades mit derkurzesten Haltezeit
die Verzogerungszeit der Gesamtschaltung ist die des Pfadesmit der langsten Verzogerungszeit
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 22/129
3. Laufzeittoleranz 4. Laufzeitanalyse
Algorithmus fur große Schaltungen
die Pfadanzahl wachst exponentiell; besser Alg. mit lin.Ordnung:
Wiederhole von den Eingangen beginnend fur jedeSignalgruppe
Berechnung der Halte- und Verzogerungszeit bis zu ihr
x1
x2
x4
x3
x5
1
&&
&&
td3th3
td4th4
td5th5
td1th1
y2
y1td2th2
&
Signalgruppen
0
2
3
4
5
6
78 9
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 23/129
3. Laufzeittoleranz 4. Laufzeitanalyse
td.2
th.4
th.2
th.1
td.1
td.3
td.4
th.5
th.3
gruppeSignal-
td.5
0
98
76
1
23
54
max(tdS.5, Td.6)
tdS.0 + td.2
tdS.3 + td.3td.2
tdS.2 + td.4
tdS.7 + td.5max(tdS.6, tdS.9)
tdS.i
0 (Definition)
tdS.0 + td.1
max(tdS.1, tdS.2)thS.0 + th.2
min(thS.1, th.2)
thS.3 + th.3thS.0
thS.0 + th.4min(thS.5, th.6)
thS.7 + th.5min(thS.6, thS.9)
thS.i
0 (Definition)
thS.0 + th.1
lineare Ordnung ⇒ auch fur große Schaltungen beherrschbar
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 24/129
3. Laufzeittoleranz 5. Aufgaben
Aufgaben
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 25/129
3. Laufzeittoleranz 5. Aufgaben
Aufgabe 1.9: Hazard
01
0 2 4 6 8 10tsim
01
01x0
x2
x1
z0 4 ns
2 ns
==
&1,5 ns
& y
G2
G4
G3
G1
x0
x1
x2
1 ns z1
z2
VHDL-Beschreibung der Schaltung durch nebenlaufigeSignalzuweisungenVHDL Beschreibung der EingabesignalerzeugungBestimmung der Signalverlaufe fur z1, z2 und yWelche Eingabeanderung verursacht einen Glitch?
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 26/129
3. Laufzeittoleranz 5. Aufgaben
Aufgabe 1.10: VHDL-Verzogerungsmodelle
signal y: STD LOGIC;...
--- nebenlaufige Zuweisungeny <= ’0’, ’X’ after 3 ns, ’1’ after 7 ns, ’X’ after 8 ns,
’1’ after 10 ns, ’0’ after 11 ns, ’1’ after 13 ns,’1’ after 15 ns, ’X’ after 18 ns, ’0’ after 20 ns;
wait for 5 ns;y <= ’1’ after 12 ns;
--- y <= transport ’1’ after 12 ns;
--- y <= reject 8 ns inertial ’1’ after 12 ns;
Welche der schwebenden Anderungen werden geloscht, wenn diezweite Signalzuweisung
1 mit dem Standardverzogerungsmodell2 mit dem Verzogerungsmodell �transport�
3 mit dem Verzogerungsmodell �reject 8 ns inertial� erfolgt?
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 27/129
3. Laufzeittoleranz 5. Aufgaben
Aufgabe 1.11: Laufzeitanalyse
--- Vereinbarungsteil der Entwurfseinheitsignal x: STD LOGIC VECTOR(4 downto 0):=”01011”;signal z: STD LOGIC VECTOR(4 downto 0);signal y: STD LOGIC;
--- Anweisungsteil der EntwurfseinheitG1: z(0) <= ’X’ after 4 ns, x(0) and x(1) after 8
ns;
G2: z(1) <= ’X’ after 5 ns, x(2) or x(3) after 6 ns;
G3: z(2) <= ’X’ after 3 ns, z(0) or z(1) after 6 ns;
G4: z(3) <= ’X’ after 4 ns, z(1) and x(3) after 7
ns;
G5: z(4) <= ’X’ after 3 ns, z(3) or x(4) after 5 ns;
G6: y <= ’X’ after 5 ns, z(2) or z(4) after 7 ns;
1 Zeichnen Signalflussplan mit eingezeichneten Halte- und dieVerzogerungszeiten
2 Bestimmen der Halte- und Verzogerungszeit derGesamtschaltung.Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 28/129
4. Register
Register
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 29/129
4. Register
Gultigkeitsfenster und Abtastung
≥1&z3
z1z2
Gultigkeitsdauer am PfadanfangGultigkeitsdauer am PfadendetGE
tGA
0
10
1z3
z4
0
1
1z1
z2 0th3, td3th1, td1
z4≥1
th2, td2
00
td3td1 td2 tGE
th2 th3tGA th1
1
Breite des Gultigkeitsfensters am Ausgang:
tGA = tGE +
3∑i=1
thi −3∑
i=1
tdi
Abnahme mit der Lange der VerarbeitungsketteVerbreiterung der Gultigkeitsfenster ⇒ Abtasten (Register)
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 30/129
4. Register 1. Register als Abtastelement
Register als Abtastelement
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 31/129
4. Register 1. Register als Abtastelement
Register als Abtastelement
ts, tn
tTyp tTypx
T
T
x
thrtdr
tn
w1w0
ts
w2
w2w1
x’
thr, tdr
x’
ts tn
Register: Ubernahme der Eingabedaten mit der aktivenTaktflanke1, sonst Speichernts Vorhaltezeit, Zeit die die Eingabedaten vor der aktivenTaktflanke stabil sein mussentn Nachhaltezeit, Zeit die die Eingabedaten nach der aktivenTaktflanke stabil sein mussen; oft vernachlassigbarthr, tdr Halte- und Verzogerungszeit des RegisterstTyp: Datentyp, �STD LOGIC�, Vektortyp davon, ...
1steigende, fallende Flanke oder beide Flanken
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 32/129
4. Register 1. Register als Abtastelement
Taktsignale
ts, tn
tTyp tTypx
T
T
x
thrtdr
tn
w1w0
ts
w2
w2w1
x’
thr, tdr
x’
ts tn
Takte sind Spezialsignale, die periodisch zwischen �0� und�1� wechseln und andere Signale zeitlich ausrichten
Modellierung als idealisiertes Signal (ohne �X�)die Zeittoleranzen stecken mit in den Registerparameterndie Taktsignale mussen zeitgenau und glitch-frei sein;erfordert Spezialschaltungen
aktive Taktflanke/Ubernahmeflanke (fallend, steigend,beide)
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 33/129
4. Register 1. Register als Abtastelement
Notation fur abzutastende und abgetastet Signale
Abtasten ist eine Grundfunktion digitaler Schaltungen;Vereinbarung folgender Notationen:
Registereingabesignal zum abgetasteten Signal x wird als x+
(Folgezustand) bezeichnet (in VHDL x next)
das abgetastete Signal von x wird mit x’, das zweimalabgetastet Signal mit x” etc. bezeichnet (in VHDL x del,x del2 etc.)
(x next) (x del) (x del2)
x+ x x’ x”
T
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 34/129
4. Register 2. VHDL-Abtastprozesse
VHDL-Abtastprozesse
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 35/129
4. Register 2. VHDL-Abtastprozesse
VHDL-Abtastprozess
Verhalten eines Abtastprozesses
Abtastprozess: process(T)
begin
if aktive Taktflanke then
Ausgabesignal <= ungultig after th,
Eingabewert after td;
Kontrolle Vorhaltebedingung
Kontrolle Nachhaltebedingung
end if;
end process;
Erforderliche, noch nicht eingefuhrte Beschreibungsmittel:
FallunterscheidungFlankenabfrage (Signalattribute)Kontrollanweisungen fur die Vor- und Nachhaltebedingung
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 36/129
4. Register 2. VHDL-Abtastprozesse
Signalattribute, Beschreibungsmittel zur Abfrage zusatzlicherSignaleigenschaften:
signal s: tTyp;
constant t: DELAY LENGTH;
s’EVENT → BOOLEAN True, wenn der Prozess durch eineAnderung von s geweckt wurde
s’STABLE(t) → BOOLEAN True, wenn seit einer Zeit t keinSignalereignis stattgefunden hat
s’LAST EVENT →DELAY LENGTH
Zeit seit der letzten Anderung von s
s’LAST VALUE → tTyp Wert vor der letzten Anderung von s
s’DELAYED(t) → tTyp das um t verzogerte Signal zu s
. . .
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 37/129
4. Register 2. VHDL-Abtastprozesse
Funktionen zur Abfrage, ob ein Prozess von der aktivenFlanke geweckt wurde (Package IEEE.STD LOGIC 1164):
function RISING EDGE(signal T: STD LOGIC) return BOOLEAN isbeginreturn T’EVENT and T=’1’;
end function;
function FALLING EDGE(signal T: STD LOGIC) return BOOLEAN isbeginreturn T’EVENT and T=’0’;
end function;
Kontrolle von Vor- und Nachhaltebedingungen:
s’STABLE(t); s’LAST EVENT
Binare Fallunterscheidungen im Kontrollfluss:
if b then
{sequentielle Anweisung;}
end if;
(b – Bedingung vom Typ BOOLEAN, z.B. �RISING EDGE(T)�Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 38/129
4. Register 2. VHDL-Abtastprozesse
Kontrollanweisung:
assert b [report m ] [severity sl ];
( m – erganzender Text fur die Fehlermeldung; sl –Fehlerschwere; Datentyp:
type SEVERITY LEVEL is (
NOTE, --- Kontrollausgabe
WARNING, --- Warnung
ERROR, --- Fehler
FAILURE); --- schwer Fehler/Simulationsabbruch
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 39/129
4. Register 2. VHDL-Abtastprozesse
einfaches Registermodelltdr
x
y
T
w1 w3
w0 w1 w2
td
w2
ytTyptTyp
x
Tsignal T: STD LOGIC;
signal x, y: tTyp;
constant tdr: DELAY LENGTH:=...;
...
process(T)
begin
if RISING EDGE(T) then
y <= x after tdr;
end if;
end process;
Prozess nur mit dem Takt in der Wartelistenur Ausgabezuweisung bei steigender TaktflankeRISING EDGE(T) ⇒ �T’EVENT and T=’1’�; wenn der Prozessaufwacht ist �T’EVENT� immer �TRUE�; AusnahmeSimulationsbeginn
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 40/129
4. Register 2. VHDL-Abtastprozesse
Modell komplett
tn
ts
ts, tn
AbtastfensterWert ungultig
Registerparameter:
Signale:
abzutastendes SignalTakt
xT
x’ (x del) abgetastetesSignal
VorhaltezeitNachhaltezeitHaltezeitVerzogerungszeittdr
thr
Typ des DatensignaltTyp
T
x
thrtdr
tn
w1w0
ts
w2
w2w1
T
x
thr, tdr
x’tTyp tTyp
x’
Signalwertwi
ts tn
process(T)beginif RISING EDGE(T) thenif x’LAST EVENT>ts thenx del<= ungultig after thr, x after tdr;wait for tn;
if x’LAST EVENT<tn thenx del <= ungultig;
report "Nachhaltebed. verletzt"
severity WARNING;
end if;elsex del <= ungultig after thr;
report "Vorhaltebed. verletzt"
severity WARNING;
end if;end if;
end process;Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 41/129
4. Register 2. VHDL-Abtastprozesse
Nachhaltezeit tn = 0 und ohne Warnungen
process(T)beginif rising edge(T) thenif x’last event>ts theny <= ungultig after thr, x after tdr;
elsey <= ungultig after thr;
end if;end if;
end process;
im Weiteren verwendete Beschreibungsschablone fur dieSimulation von Registern
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 42/129
4. Register 3. Verarbeitung + Abtastung
Verarbeitung + Abtastung
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 43/129
4. Register 3. Verarbeitung + Abtastung
Verarbeitungsfunktion mit Ergebnisabtastung
ts
notwendigesGultigkeitsfenster
ts T
x
y
f(x)x
thf , tdf
wi
thftdf + ts
f(wi)
f(wi)f(wi−1)
tdrthr
T
thr, tdr
yy+
y+
process(T)beginif RISING EDGE(T) thenif x’DELAYED(thf)’LAST EVENT>tdf+ts-thf then
y<= ungultig(1) after thr, f(x) after tdr;
elsey<= ungultig(1) after thr;
end if;end if;
end process;(1) fur STD LOGIC ’X’; fur STD LOGIC VECTOR ”XX...X”
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 44/129
4. Register 3. Verarbeitung + Abtastung
Verarbeitung abgetasteter Signale
ts
ts
y
T
x
f(wi)f(wi−1)
T
thr, tdr
f(x)
thf , tdf
y
wiwi−1
thftdf
tdfthf
x’x
x’
wi
process(T)beginif RISING EDGE(T) thenif x’LAST EVENT>ts theny<= ungultig after thr+thf,
f(x) after tdr+tdf;
elsey<= ungultig after thr+thf;
end if;end if;
end process;
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 45/129
4. Register 4. Register-Transfer-Funktion
Register-Transfer-Funktion
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 46/129
4. Register 4. Register-Transfer-Funktion
Register-Transfer-Funktion
von Registern eingerahmte Verarbeitungsfunktionen
thr, tdrthr, tdr
x’, y’TP
abgetastete Werte, in der VHDL-Bescheibung x del, y del
y
TP
w2
tdf
tdrthr
tdrthr
w1x’
thfthftn
y = f(x)
ts, tn
x y’
T
TP
ts, tn
x’ y
ts
thf , tdf
T
Taktperiodef(w1)f(w0)
w0
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 47/129
4. Register 4. Register-Transfer-Funktion
thr, tdrthr, tdr
x’, y’TP
abgetastete Werte, in der VHDL-Bescheibung x del, y del
y
TP
w2
tdf
tdrthr
tdrthr
w1x’
thfthftn
y = f(x)
ts, tn
x y’
T
TP
ts, tn
x’ y
ts
thf , tdf
T
Taktperiodef(w1)f(w0)
w0
Bedingung fur die Abtastung gultiger Ausgabewerte
TP ≥ TPmin = tdr + tdf + ts
tn ≤ tnmax = thr + thf
Kontrolle beider Bedingungen mittels Laufzeitanalyse (vorder Simulation)Es genugt ein stark vereinfachtes Simulationsmodell
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 48/129
4. Register 4. Register-Transfer-Funktion
thr, tdr
f(...)
TP
yx’x
T
ts, tn
y’
Verarbeitung: process(T):
begin
if RISING EDGE(T) thenif x’LAST EVENT>ts thenx del <= x; else x <= ungultig ;
end if;
y del <= ungultig after th, f(x del) after td;
end if;
end process;
Vereinfachung gegenuber zwei normalen Abtastprozessen
unverzogerte Zuweisung an x’ (x del)kein Kontrolle der Vorhaltebedingung fur y
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 49/129
4. Register 5. Taktversatz
Taktversatz
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 50/129
4. Register 5. Taktversatz
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
Taktversatz t∆T12: Zeitversatz zwischen den aktivenTaktflanken des Eingabe- und des Ausgaberegistersabsichtlich zur Erhohung der max. Taktfrequenzunbeabsichtigt durch unterschiedliche Verzogerungen
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 51/129
4. Register 5. 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
Bedingungen fur korrekte Datenubernahme:
tdr + tdf + ts ≤ TP + t∆T12
thr + thf ≥ tn + t∆T12
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 52/129
4. Register 5. Taktversatz
Bedingungen fur korrekte Datenubernahme:
tdr + tdf + ts ≤ TP + t∆T12
thr + thf ≥ tn + t∆T12
Maximal zulassiger Taktversatz:
t∆T12 ≤ thr + thf − tnMaximale Taktfrequenz:
fT ≤1
tdr + tdf + ts +−tn − (thr + thf)
Kehrwert aus der Differenz aus der Summe derVerzogerungs-, der Vorhalte- und der Nachhaltezeit und derSumme der Haltezeiten.Schaltungen mit einer großen Haltezeit konnen bei der Wahleines geeigneten Taktversatzes schneller getaktet werden alsohne Taktversatz.
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 53/129
4. Register 5. Taktversatz
Zusammenfassung
Ergebnisse mussen innerhalb der Gultigkeitsfensterabgetastet werden. Dazu dienen Register.Register werden durch Abtastprozesse beschrieben.Abtastprozesse haben nur den Takt in der Weckliste;Datenubernahme nur bei aktiver Taktflanke; wenn vor- oderNachhaltebedingung verletzt, Ubernahme �ungultig�.Abtastprozesse konnen 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 fur Informatik, Technische Universitat Clausthal 24. April 2013 54/129
4. Register 6. Aufgaben
Aufgaben
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 55/129
4. Register 6. Aufgaben
Aufgabe 1.12: 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 fur Informatik, Technische Universitat Clausthal 24. April 2013 56/129
4. Register 6. Aufgaben
Aufgabe 1.13: 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 zulassige Taktfrequenz in Abhangigkeit von derBitbreite n?maximal zulassige Taktfrequenz fur n = 16?
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 57/129
4. Register 6. Aufgaben
Aufgabe 1.14: 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 = 100 MHz die Vorhalte- und dieNachhaltebedingungen fur das Ausgaberegisters erfullt sind?
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 58/129
5. Asynchrone Eingabe
Asynchrone Eingabe
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 59/129
5. Asynchrone Eingabe
asynchron: �ohne zeitliche Abstimmung�
der Zeitversatz zwischen der Eingabeanderung und deraktiven Taktflanke ist eine gleichverteilte Zufallsgroße imBereich:
txT ∈ {0, TP}auch Werte asynchroner Signale durfen nur innerhalb ihrerGultigkeitsfenster ausgewertet werden
verlangt spezielle Schaltungslosungen und spezielleBeschreibungsschablonen
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 60/129
5. Asynchrone Eingabe 1. Abtasten Einzelbits
Abtasten Einzelbits
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 61/129
5. Asynchrone Eingabe 1. Abtasten Einzelbits
Abtasten binarer Eingabesignale
ein Bitsignal hat auch, wenn es im Abtastmoment ungultigist, den Abtastwert �0� oder �1�; Abtastwerte sindglitch-frei und fur eine Taktperiode stabil
TP
T
x
x’
x′x
ts thr, tdr
T
ts ts ts ts
txT txT
tdrthr
tdrthr
tdrthr
tdrthr
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 62/129
5. Asynchrone Eingabe 1. Abtasten Einzelbits
Entwurfsfehler: Verarbeitung nicht abgetasteterEingaben
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
(verarbeitete) asynchrone Eingaben sind mit einer gewissenHaufigkeit im Abtastmoment ungultigAbtastwert von �ungultig�: a′ ∈ {0, 1}n, meist falsch, oftunzulassig, nicht vorhersagbares VerhaltenWorkaround: zusatzlich bitorientierte Eingabe abtasten
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 63/129
5. Asynchrone Eingabe 2. Entprellen von Tasten
Entprellen von Tasten
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 64/129
5. Asynchrone Eingabe 2. Entprellen von Tasten
Entprellen von Schaltern und Tastern
typ. 1-Bit-Eingabeelemente: mechanische Taster undSchalterPrellen: mehrfaches Offnen und Schließen durch mechanischeSchwingungenEntprellung: Abtasten mit Abtastperiode großer PrellzeitFlankenerkennung: zweimal abtasten, Differenz auswerten
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, ohne erste Abtastung unzuverlassigProf. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 65/129
5. Asynchrone Eingabe 2. Entprellen von Tasten
x
Tx’ x”
y&
th, td
y’
(Takt)
signal T, x, x del, x del2, y:
STD LOGIC;
...
process(T)beginif RISING EDGE(T) then
if x=’1’ then x del<=’1’;else del<=’0’; end if;x del2 <= x del;
end if;end process;y <= ’X’ after th not x del and x del2 after td;
Abtastung x: �’1’7→’1’, sonst 7→’0’� (Beschreibungsschablonefur �Abtastwert∈ {0, 1}kombinatorische Ausgabe nach jedem Takt kurzzeitigungultig; Glitches moglichum y als Takt verwenden zu konnen, nochmal abtasten
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 66/129
5. Asynchrone Eingabe 3. Asynchrone Initialisierung
Asynchrone Initialisierung
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 67/129
5. Asynchrone Eingabe 3. Asynchrone Initialisierung
Register mit Initialisierungseingang
I
x yx
I
T
signal x, y: tTyp;
signal T, I: STD LOGIC;
constant aw: tTyp:=...;
...
process(T, I)
beginif I=’1’ theny <= aw;
elsif RISING EDGE(T) theny <= x;
end if;end process;
Registerzustand vor der Initialisierung ”UU...U” (ungultigaufgrund fehlender Initialisierung)�aw� beliebiger gultiger Wert
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 68/129
5. 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 korrektubernimmt, liegt der Initialwert am Registerausgang zukurze Zeit stabil an, so dass das nachfolgende Register imersten Schritt einen ungultigen Wert ubernimmt.
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 69/129
5. Asynchrone Eingabe 3. Asynchrone Initialisierung
Register aus Master-Slave-Flipflops:
Master-Ubernahme vor der aktiven Taktflanke
Slave-Ubernahme und Ausgabe nach der aktiven Taktflanke
I initialisiert den Slave
01
01
01
01
w0
w1 w2
T
I
x
x′ w2
ungultig statt w1
w2w1w0
w2w1
T
I
x
x′
≪ TP
Deaktivierung von Iin der Slave-Phase am Ende der Slave-Phase
Deaktivierung von I
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 70/129
5. Asynchrone Eingabe 3. Asynchrone Initialisierung
Laufzeitrobuste Losung 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;
Power-On-Reset: Aktivierung beim Einschalten furtPOR ≈ R · CAbtasten zur Ausrichtung an der aktiven Taktflanke
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 71/129
5. Asynchrone Eingabe 4. Parallele Schnittstelle
Parallele Schnittstelle
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 72/129
5. Asynchrone Eingabe 4. Parallele Schnittstelle
Asynchrone parallele Schnittstelle
der Empfanger fur asynchrone parallele Daten benotigt einZusatzsignal fur die �Gultigkeit�, z.B. Takt des Sendersim Beispiel sei x immer ab Zeitpunkt �Flanke von Tx� furtg gultig
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”
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 73/129
5. Asynchrone Eingabe 4. Parallele Schnittstelle
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”
alle Eingabedaten mit Abtastperiode: TP < tg abtastenTakt zweites mal abtastenabgetastete Daten sind gultig, wenn sich der einfachabgetastet Sendetakt vom doppelt abgetasteten Sendetaktunterscheidet
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 74/129
5. Asynchrone Eingabe 4. Parallele Schnittstelle
x
SYNC y
G
x
Tx
Symbol
f(...)Tx’ =1
TTx
G
Synchronisationsschalt.y
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;
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 75/129
5. Asynchrone Eingabe 4. Parallele Schnittstelle
Zusammenfassung
asynchrone Signale vor ihrer Verarbeitung abtasten
Signale von mechanischen Kontakten zusatzlich entprellen;Abtastperiode großer als die maximale Prelldauer
asynchrone Initialisierungssignale abtasten
zu asynchronen parallelen Eingabesignalen ist einGultigkeitssignal mitzuubertragen; abtasten mitSynchronisationsschaltung
fehlende Abtastung verursacht nicht reproduzierbareFehlerwirkungen; schwer zu lokalisieren; Beeintrachtigungder Zuverlassigkeit
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 76/129
5. Asynchrone Eingabe 5. Aufgaben
Aufgaben
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 77/129
5. Asynchrone Eingabe 5. Aufgaben
Aufgabe 1.15: 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 verandern, damit sie zuverlassigarbeitet?
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 78/129
5. Asynchrone Eingabe 5. Aufgaben
Aufgabe 1.16: Asynchrone parallel Ubertragung
Bei einer asynchronen Ubertragung seien die mit dem Signal xubertragenen Datenworte immer dann gultig, wenn das mitubertragene Gultigkeitssignal 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 abtasten2?Wie ist das Gultigkeitssignal fur die abgetastetenDatenworte zu bilden, damit es fur jedes abgetastete gultigeDatenwort genau einen Takt lang aktiv ist?
2Zeit fur g = 0 gleich Zeit fur g = 1
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 79/129
5. Asynchrone Eingabe 5. Aufgaben
Aufgabe 1.17: 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 20 msminimale Betatigungszeit 100 ms.Teilerverhaltnis des Taktteilers sei eine Zweierpotenz.
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 80/129
5. Asynchrone Eingabe 5. Aufgaben
1 Welchen Vorteil hat eine Zweierpotenz als Teilerverhaltnis?(Hinweis, die Schaltung hat keinen Initialisierungseingang.)
2 Welche Werte darf das Taktteilerverhaltnis haben?
3 Zeichnen der Gesamtschaltung mit dem Taktteiler alsBlack-Box.
4 Beschreiben der Gesamtschaltung in VHDL.
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 81/129
6. Sequentielle Schaltungen
Sequentielle Schaltungen
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 82/129
6. Sequentielle Schaltungen
Sequentielle Schaltungen
(im deutschen Sprachraum auch als Schaltwerk)
Abtastelement
a) b)S0
S0
X1
S1
X2
S1
tdth
S2
s’
s
x
x
th, td
fy(x, s)y
fs(x, s)s s’
Abtastzeitpunkt
x+y’
Wert ungultig
sequentiell: zeitlich nacheinanderBerechnung der Schaltungsausgaben in mehrerenZeitschrittenkombinatorischen Schaltungen + Registern furErgebnisabtastung und -aufbewahrung
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 83/129
6. Sequentielle Schaltungen 1. Endlicher Automat
Endlicher Automat
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 84/129
6. Sequentielle Schaltungen 1. Endlicher Automat
Endlicher Automat
engl. FSM finite state machine; allgemeines Funktionsmodell zurBeschreibung sequentieller Ablaufe; Definition der Wertebereicheals Symbolmengen:
Eingabemenge: Σ = {E1, E2, . . .}Zustandsmenge: S = {Z1, Z2, . . .} (ein Anfangszustand)Ausgabemenge: Π = {A1, A2, . . .}Ubergangsfunktion: fs : S × Σ→ SAusgabefunktion: fa : S × Σ→ Π
Nachbildung mit einer digitalen Schaltung:
Symbole 7→ Bitmuster; Ein- und Ausgabe 7→ SignaleZustand 7→ Register; Ubergangs- und Ausgabefunktion 7→kombinatorische Schaltungentaktsynchrone ZustandswechselStartzustand = Initialisierungswert des Zustandsregisters
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 85/129
6. Sequentielle Schaltungen 1. Endlicher Automat
Beschreibung als Zustandsgraph
UbergangsbedingungZustandsubergang
Name des ZustandsZustand
Ausgabe
Neuinitialisierungdie Anfang undStartzustand furKennzeichnung als
Z3
AZ1
Z1
AK3.1
E1.1
Z2
AZ2
AZ2
AK2.1
AK1.1
AK2.2
AK2.1
E2.1
E2.2E1.2
E3.1
Ausgabe nur vom Zustand abhangig / den Knotenzugeordnet / fur alle abgehenden Kanten gleich 7→Moore-AutomatAusgabe auch von der Eingabe abhangig / den Kantenzugeordnet 7→ Mealy-Automat
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 86/129
6. Sequentielle Schaltungen 1. Endlicher Automat
Vorwarts-/Ruckwartszahler als Mealy-Automaten
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
Bedeutung der Eingabesymbole: H – halt; V – vorwarts; R –ruckwarts
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 87/129
6. Sequentielle Schaltungen 1. Endlicher Automat
⇒ ⇒
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)
Zustandsgraphen: anschaulich, gut zur Spezifikation derZiefunktion geeignetdaraus ablesbar Ubergangs- und Ausgabefunktion alsTabellenZustandscodierung: Festlegung der Bitvektordarstellung furdie SymboleUmrechnung in bitorientierte Funktionen
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 88/129
6. Sequentielle Schaltungen 1. Endlicher Automat
Vorwarts-/Ruckwartszahler als Moore-Automaten
s
y
Zustand
Ausgabewert
Eingabewertx
fs(...)fa(...)
xss+
y AusgabeUbergangsfunktionAusgabefunktion
FolgezustandIst-ZustandEingabe
BA
CD
KLMN
V
BCDA
H
BA
CD
{K,L,M,N} Ausgabemenge{A,B,C,D}{H,V,R}
ZustandsmengeEingabemenge
RV
V
R
V
RD
A B
C
K L
MN
H H
H
ba
H
s x :
s+ = fs(x, s) y = fy(s)
R
BA
C
D
R V
die Ausgabe ist nur vom Zustand abhangig
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 89/129
6. Sequentielle Schaltungen 1. Endlicher Automat
Autonome Automaten
keine Eingabe; eine abgehende Kante je Zustand
A B C D
E G HFb)
A B C D
EFGHa)
a) zyklischer Automat; Beispielanwendung Taktteilerb) zyklenfreier Automat, der im Endzustand verbleibt;Beispielanwendung Initialisierungsablaufe
Wenn im Zustandsgraphen keine Ausgaben zugeordnet sind, istder Zustand gleichzeitig die Ausgabe.
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 90/129
6. Sequentielle Schaltungen 2. Automat ⇒ VHDL
Automat ⇒ VHDL
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 91/129
6. Sequentielle Schaltungen 2. Automat ⇒ VHDL
Schaltungsstruktur fur Automaten
Abtastelement
a) b)S0
S0
X1
S1
X2
S1
tdth
S2
s’
s
x
x
th, td
fy(x, s)y
fs(x, s)s s’
Abtastzeitpunkt
x+y’
Wert ungultig
das Eingabe- und das Initialisierungssignal mussen am Taktausgerichtet sein
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 92/129
6. Sequentielle Schaltungen 2. Automat ⇒ VHDL
I Ixfs(x, s)
fy(x, s)
x
y’
s
x+
I+y
T
th, td
die optionalen Ein- und Ausgaberegister zahlen in der Regelnicht zum AutomatenInitialisierung des Zustandsregisters ⇒ Ubergang in denStartzustandZustandsregister + Ubergangsfunktion ⇒ Abtastprozess mitInitialisierung (T , I in der Weckliste)Ausgabefunktion ohne Abtastregister ⇒ kombinatorischerProzess (x, s in der Weckliste)
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 93/129
6. Sequentielle Schaltungen 2. Automat ⇒ 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
aus Zustandsgraphen abgeleitete Ubergangs- und Ausgabe-funktionen lassen sich am besten mit Auswahlanweisungenund Fallunterscheidungen beschreiben, z.B.:
case Zustand is
when Zi => if Eingabe=... then Zustand <= Zj; ...
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 94/129
6. Sequentielle Schaltungen 2. Automat ⇒ VHDL
Beispiel fur 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 Automatenvorhanden, 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 fur Informatik, Technische Universitat Clausthal 24. April 2013 95/129
6. Sequentielle Schaltungen 2. Automat ⇒ VHDL
Ubergangsfunktion 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;
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 <= "XX";
end case;end if;
end process;
Auswahlausdruck: Konkatenation Zustand und EingabeProf. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 96/129
6. Sequentielle Schaltungen 2. Automat ⇒ 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 "00"&’0’ | "01"&’1’ | "10"&’1’ => y <= ’1’;
when others => y <= ’X’;
end case;end process;
Auswahlausdruck ist wieder eine Konkatenation des Zustands-und des Eingabesignals
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 97/129
6. Sequentielle Schaltungen 2. Automat ⇒ VHDL
Beispiel Moore-Automat
process(s)begincase s iswhen "01" => y <= ’0’;
when "00"|"10" => y <= ’1’;
when others => s <= ’X’;
end case;end process; x
I
T
001 1
100
011001
1
0
s+ s
I
T
xy
fyfs
Eingabe-, Zustands- und Ausgabemenge sowieUbergangsfunktion wie im Bsp. zuvorAusgabe hangt nur vom Zustand ab
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 98/129
6. Sequentielle Schaltungen 2. Automat ⇒ VHDL
Autonomer Automat, Beispiel Johnson-Zahler
0000
1000 1100 1110 1111
011100110001 s0 s1 s2 s3
II+
T
x
I I I
x x x
Schieberegister, das abwechselnd mit Nullen und Einsen volllauftZykluslange 2 · n (n – Bitanzahl des Zustandsregisters)sehr geringe Register-Register-Verzogerung; hohe zulassigeTaktfrequenzAnwendung als schneller Vorteiler, z.B. zurFrequenzmessung im Gigahertz-Bereich
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 99/129
6. Sequentielle Schaltungen 2. Automat ⇒ VHDL
0000
1000 1100 1110 1111
011100110001 s0 s1 s2 s3
II+
T
x
I I I
x x x
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;
Fur bestimmte Automaten konnen die Ubergangs- undAusgabefunktionen wesentlich kompakter als mit einerAuswahlanweisung beschrieben werden.
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 100/129
6. Sequentielle Schaltungen 3. Systemabsturz
Systemabsturz
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 101/129
6. Sequentielle Schaltungen 3. Systemabsturz
Unzulassige Zustande und Systemabsturz
n Speicherzellen hat 2n Zustande; nicht alle genutztWas passiert in den ungenutzten (unzulassigen) Zustanden?
Beispiel 4-Bit-Johnson-Zahler:
0100
1011
Fehl-funktion
keinRuck-weg
s3s2s1s0
Soll-Funktion Funktion nach einem Absturz
0000
111111101100
1000
0001 0011
0111 0101
00101001
01101101
1010
Automat durchlauft zyklisch unzulassigen Zustandebis zur Neuinitialisierung keine sinnvolle Reaktion mehr⇒Absturz
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 102/129
6. Sequentielle Schaltungen 3. Systemabsturz
Absturzfreie 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
Einzeichnen der unzulassigen Zustande; Definition vonKanten zum Verlassenim Beispiel automatisches Rucksetzen bei Erkennen derZustande �1101� und �0101�
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 103/129
6. Sequentielle Schaltungen 3. Systemabsturz
Watchdog uberwachter 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
N = 1000 Speicherzellen ⇒ 21000 Zustande, die meistenunzulassig; Verfahren Folie zuvor unpraktikabelAlternative Zeituberwachung: wenn innerhalb einesvorgegebenen Zeitintervalls kein Zustand erreicht wird, derden Watchdog rucksetzt, initialisiert dieser das System neuStandardlosung fur Prozessrechner
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 104/129
6. Sequentielle Schaltungen 4. Zahlenschloss
Zahlenschloss
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 105/129
6. Sequentielle Schaltungen 4. Zahlenschloss
Entwurf der Steuerung eines Zahlenschlosses
Eingabefolge: Reset + richtige Zahlenfolge ⇒ leuchtendeAusgabe-LEDEingabefolge: Reset + falsche Zahlenfolge ⇒ LED bleibt aus
Entwurfsablauf:
Schaltungsskizze Eingabeelemente, Ausgabeelemente,Abtastregister, Taktversorgung; Ubergangs- undAusgabefunktion als noch zu entwerfende FunktionsblockeSpezifikation des ZustandsgraphenZustandscodierung (wenn nicht spezifiziert Eingabe- undAusgabecodierung)Beschreibung in VHDLSimulationSynthese, ...
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 106/129
6. Sequentielle Schaltungen 4. Zahlenschloss
Schaltungsskizze
xI
&x xU
x+
x+m−1
fs
sfy
xU’
s+
y
TI+
x+0
UV
· · ·x+1
I
m Zifferntasten + Reset-Taste; asynchron prellend;Abtastung z.B. mit TP ≈ 10 ms; �0� wenn gedrucktgultige Eingabe: Abtastfolge keine Taste - eine Tastebetatigt; mehrere Tasten gilt als falsche TasteAusgabe-LED + Vorwiderstand; leuchtet bei y = 0Moore-Automat (zustandszugeordnete Ausgabe)Neuinitialisierung mit abgetastetem Reset-Wert �0�
xU – UND-Verknupfung der Tasten; �1�, wenn imAbtastmoment keine Taste gedruckt, sonst �0�
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 107/129
6. Sequentielle Schaltungen 4. Zahlenschloss
Spezifikation des Ablaufs
1110∗ 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 dernachsten GeheimzahlUbergangsbedingung: aktive Taktflanke ∧ xU = 0 (Tastegedruckt) ∧ xU’ (Abtastschritt zuvor keine Taste gedruckt)∧s 6= F ∧ s 6= Z3 (kein Endzustand)richtige Zahlenfolge 0-3-1 ⇒ Eingabefolge 1110-0111-1101(m = 4 Zifferntasten)falsche Eingabe ⇒ Fehlerzustand Fdie Endzustande F und Z3 werden nur durchNeuinitialisierung verlassen
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 108/129
6. Sequentielle Schaltungen 4. 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 fur Informatik, Technische Universitat Clausthal 24. April 2013 109/129
6. Sequentielle Schaltungen 4. 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;--- nebenlaufige Anweisung zur Bildung von y
y<= not s(2) or s(1) or s(0);Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 110/129
6. Sequentielle Schaltungen 4. Zahlenschloss
Zusammenfassung
Die Zuruckfuhrung einer Aufgabe auf einen Automatenentwurf:
Schaltungsskizze mit dem Automat als Black-Box (kreativ)
Spezifikation des Ablaufs als Zustandsgraph (kreativ)
Umsetzung der Beschreibung in VHDL (rezeptartig)
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 111/129
6. Sequentielle Schaltungen 5. Operationsablauf
Operationsablauf
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 112/129
6. Sequentielle Schaltungen 5. Operationsablauf
Operationsablaufgraph
Die Zustands- und Kantenanzahl eines Zustandsgraphen wachstexponentiell mit der Anzahl der Eingabe- und Zustandsbits.
Wie lasst sich die Information besser strukturieren?Wie bei einem Rechner:
als Operationsablauf, der Datenoperationen steuertbeschrankte Operationsmenge: Addition, Zahlen, bitweiseLogikoperationen ...
Operationsablaufgraph: erweiterter Zustandsgraph, derzuatzlich Operationen steuert und fur die KantenubergangeOperationsergebnisse auswertet
Definition der Operanden und Operationen zur Nachbildungder Zielfunktion als Register-Transfer-FunktionenBeschreibung des Operationsablaufs als Graph
Bereits eine Zahloperation kann die Beschreibung einessequentiellen Ablaufs drastisch vereinfachen.
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 113/129
6. Sequentielle Schaltungen 5. Operationsablauf
Dreiecksignalgenerator
Zeitablauf
000000010010
11101101
1111
0 15 30
y
Schritt
Autonomer Automat, der periodisch 30 Zustande durchlauft.Zustandsraum teilbar in Zahlrichtung (aufwarts oderabwarts) und Zahlstand (�0000� bis �1111�)Die zwei fehlenden Tupel des kartesischen Produktes(�0000�, abwarts) und (�1111�, aufwarts) sind unzulassig.Benotigte Zahloperationen: clr (mit �0000� initialisieren),inc (aufwartszahlen) und dec (abwartszahlen)
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 114/129
6. Sequentielle Schaltungen 5. Operationsablauf
+1
0000 y
Zeitablauf
Operationen des Zahlregisters
y
y
inc
dec
clr
−1
Operationsablaufgraph
0inc
1dec
y=1110
y=0001
clrI=1
sonstsonst
000000010010
11101101
1111
0 15 30
y
Schritt
library Tuc;
use Tuc.Numeric Sim.all;...signal T, I, s: STD LOGIC;
signal y: tUnsigned(3 downto 0);...process(I, T)beginif I=’1’ thens <= ’0’; y <= ”0000”;
elsif RISING EDGE(T) thencase s iswhen ’0’ => y <= y +”1”;
if y=”1110” then s<=’1’; end if;when ’1’ => y <= y -”1”;
if y=”0001” then s<=’0’; end if;when others => y <= ”XXXX”;
end case;end if;
end process;Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 115/129
6. Sequentielle Schaltungen 6. Quadratur-Encoder
Quadratur-Encoder
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 116/129
6. Sequentielle Schaltungen 6. Quadratur-Encoder
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 Vorwartsdrehung andert sich das Signal a und beieiner Ruckwartsdrehung das Signal b zuerst.
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 117/129
6. Sequentielle Schaltungen 6. Quadratur-Encoder
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 zahlen: a”b” = a’b’unzulassig: a”b” = a’b’
Rotation vorwarts / vorwarts zahlen:
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 ruckwarts / ruckwarts zahlen:
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)
Ubergangsfunktion:a”b” <= a’b’
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 118/129
6. Sequentielle Schaltungen 6. Quadratur-Encoder
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: tSigned(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 fur Informatik, Technische Universitat Clausthal 24. April 2013 119/129
6. Sequentielle Schaltungen 6. Quadratur-Encoder
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
--- Zahlerprozess
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 fur Informatik, Technische Universitat Clausthal 24. April 2013 120/129
6. Sequentielle Schaltungen 6. Quadratur-Encoder
Zusammenfassung
Funktionsvorgabe als Ablaufgraph; rezeptartige Umsetzungin VHDL und weiter in eine Schaltung
Zustand ⇒ Zustandsregister, AbtastprozessAnfangswert ⇒ Initialwert des ZustandsregistersUbergangs- und Ausgabefunktion ⇒ Abtast- oder komb.Prozess mit Fallunterscheidung nach Zustand und Eingabe
redundante Zustande; Absturzgefahr; typischeFehlerbehandlung Neuinitialisierung; Resettaste, Watchdogkomplexere Funktionen mit großen Eingabe- undZustandsmengen
Nachbildung der Zielfunktion durch eine OpertionsfolgeSpezifikation der Operanden und Operatoren alsRegister-Transfer-FunktionenOperationsablaufgraphrezeptartige VHDL-Nachbildung
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 121/129
6. Sequentielle Schaltungen 7. Aufgaben
Aufgaben
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 122/129
6. Sequentielle Schaltungen 7. Aufgaben
Aufgabe 1.18: Ruckgekoppeltes Schieberegister
b)a)
x
I
x
I00
10
10
10
10
x
IT
y
s0 s1
T
x
I
s1s0
y
=1=1
Bestimmung der Folgezustande s+1 s
+0 und des Ausgabewerts
y fur alle Variationen des Ist-Zustands s1s0 und desEingabewerts von xZeichnen des ZustandsgraphenErganzen der Signalverlaufe fur s1s0 und y in der Abbildungrechts.
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 123/129
6. Sequentielle Schaltungen 7. Aufgaben
Aufgabe 1.19: Automat
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”
Zustandswechsel bei steigender TaktflankeInitialisierung mit high-aktivem Initialisierungssignal
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 124/129
6. Sequentielle Schaltungen 7. Aufgaben
1 Ausfullen der Ubergangstabelle
Eingabe 0 1 0 1 0 1 0 1
Zustand 00 00 01 01 10 10 11 11
Folgezustand
Ausgabe
2 Skizze der Gesamtschaltung (Eingabeabtastung,Zustandsregister, Ubergangsfunktion, Ausgabefunktion)
3 Wie viele Speicherzellen benotigt der Automat?
4 Beschreibung in VHDL (Entity- und Architecture-Teil).
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 125/129
6. Sequentielle Schaltungen 7. Aufgaben
Aufgabe 1.20: Uberwachung eines Sendesignals
Fur ein Sendesignal ist zu uberwachen, dass die Differenz ∆ derAnzahl der gesendeten Einsen minus Anzahl gesendete Nullenden Bereich von −3 bis 3 nicht uberschreitet. Bei UberschreitungFehlersignal 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)
gesucht:
ZustandsgraphVHDL-Vereinbarungen + Prozessbeschreibung(en)
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 126/129
6. Sequentielle Schaltungen 7. Aufgaben
Aufgabe 1.21: Taktteiler
Entwerfen Sie eine Taktteilerschaltung mit dem Teilerfaktor 2 · n,die mit jeder n-ten Eingabetaktflanke den Ausgabetaktinvertiert. Gesucht:
Skizze der Signalverlaufe des Eingabe- und desAusgabetakts fur n = 2.Beschreibung der Zielfunktion mit einemOperationsablaufgraphen und einem Zahler.VHDL-Beschreibung. Der Parameter n ist als Konstante zuvereinbaren.
Hinweis: Der Typ fur den Zahler kann auch ein Zahlentyp sein(INTEGER, NATURAL oder POSITIVE).
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 127/129
6. Sequentielle Schaltungen 7. Aufgaben
Aufgabe 1.22: Morse-Empfanger
4 6 8 102
A R I SP
0
1
0x
t in s
Morsezeichen bestehen aus
kurzen Pulsen (Punkt, tP = 200...300 ms) undlangen Pulsen (Strich, tS = 600...900 ms).
Taktfrequenz: fT = 20 HzPrellzeit viel kleiner als Taktperiode.zwei low-aktive Tasteneingange
Signal x: Morse-SignalSignal I: Initialisierungssignal
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 128/129
6. Sequentielle Schaltungen 7. Aufgaben
Drei bitorientierte Ausgange, zu aktivieren fur je einen Takt
Signal p: nach einem PunktSignal s: nach einem StrichSignal err: nach einem Puls unzulassiger Breite
Skizze der Gesamtschaltung mit Tasten, Abtastregistern,Zustandsregister und der Ubergangs- und Ausgabefunktionals Black-Box.
Operationsablaufgraph unter Verwendung eines Zahlers
VHDL-Beschreibung (nur Vereinbarungen der Datenobjekteund Beschreibung der Prozesse)
Prof. G. Kemnitz · Institut fur Informatik, Technische Universitat Clausthal 24. April 2013 129/129