Entwurf digitaler Schaltungen (F3)tech · Inhalt F2: Handwerkszeug Teil 2 Automaten 1.1...

138
·

Transcript of Entwurf digitaler Schaltungen (F3)tech · Inhalt F2: Handwerkszeug Teil 2 Automaten 1.1...

Entwurf digitaler Schaltungen (F3)

Handwerkszeug Teil 2

Prof. G. Kemnitz

Institut für Informatik, Technische Universität Clausthal17. Juni 2014

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 1/138

Inhalt F2: Handwerkszeug Teil 2

Automaten1.1 Modellierung und

Klassi�kation1.2 Automat als Schaltung1.3 Entwurf mit KV-Diagrammen1.4 Beschreibung in VHDL1.5 Redundante Zustände1.6 Beispiel Zahlenschloss1.7 Aufgaben

Operationssteuerung2.1 Serieller Addierer2.2 Divisionswerk2.3 Beispiel Wegemessung2.4 Aufgaben

Zeitverhalten3.1 Halte- und

Verzögerungszeiten3.2 Laufzeitanalyse3.3 Speichervor- und

Nachhaltezeiten3.4 Register-Transfer-Funktionen3.5 Constraints3.6 Aufgaben

Asynchrone Eingabe4.1 Abtastung4.2 Entprellen4.3 Asynchrone Initialisierung4.4 Eingabesynchronisation4.5 Aufgaben

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 2/138

Lernziele

Automaten: Beschreibung von Abläufen mit Automaten.Schaltungsentwurf für Automaten mit KV-Diagrammen.Beschreibung von Automaten in VHDL und Umgang mitredundanten Zuständen.

Operationssteuerungen: Erweiterung des Automatenmodells umdie Steuerung und Auswertung von Register-Transfer-Operatio-nen. Sequentiell arbeitende Rechenwerke.

Zeitverhalten: Modellierung und Kontrolle von Zeitbedingungen.

Asynchrone Eingabe: Robuste Datenübernahme von Schaltern,Tastern und Systemen mit einem anderen Takt.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 3/138

1. Automaten

Automaten

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 4/138

1. Automaten

Automaten

Automaten sind

ein Basismodell der Mathematik und der TheoretischenInformatik,

ein Mittel zur Spezi�kation von Abläufen und Testfällen beider Programmierung und

Steuerungen in der Automatisierungstechnik.

In der Digitaltechnik dienen Automaten vor allem zur Steuerungvon Hardware-Abläufen.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 5/138

1. Automaten 1. Modellierung und Klassi�kation

Modellierung und Klassi�kation

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 6/138

1. Automaten 1. Modellierung und Klassi�kation

Endlicher Automat (engl. FSM �nite state machine)

Ein endlicher Automat ist ein mathematisches Funktionsmodellzur Beschreibung sequentieller Abläufe. Er ist de�niert durch

eine Eingabemenge Σ = {E1, E2, . . .},eine Zustandsmenge S = {Z1, Z2, . . .},einen Anfangszustand aus der Zustandsmenge Z1 ∈ S,eine Ausgabemenge: Π = {A1, A2, . . .},eine Übergangsfunktion: fs : S × Σ→ S undeine Ausgabefunktion: fa : S × Σ→ Π.

In der Darstellung als Graph werden Zustände durch Knoten undZustandsübergänge durch Kanten dargestellt. Der Anfangs-zustand bekommt die Startkennung. Die Kanten sind mit denEingaben beschriftet, bei denen die Übergänge statt�nden.

Z1 Z2

E1

E2

ZustandsubergangKennzeichnung des Startzustands

Zustand

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 7/138

1. Automaten 1. Modellierung und Klassi�kation

Transduktor, Moore- und Mealy-Automat

Die für die Digitaltechnik interessanten Automaten sindTransduktoren. Sie generieren Ausgaben in Abhängigkeiten vonZustand und Eingabe und werden für Steuerungsaufgabeneingesetzt. Es wird zwischen zwei Typen unterschieden:

Moore-Automat: Die Ausgabe hängt nur vom Zustand ab.Mealy-Automat: Die Ausgabe ist den Zustandsübergängenzugeordnet.

R/N

A

D

V/K

H/K

H/N

B

C

R/L V/M

H/M

H/L

RV

D

A

K

N

H

H

B

C

L

M

R V

H

HV

R

V

R

Moore-Automat

V/L

R/K

R/M

V/N

Mealy-Automat

S = {A,B,C,D}

Π = {K,L,M,N}Ausgabemenge

Zustandsmenge

EingabemengeΣ = {H,V,R}

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 8/138

1. Automaten 1. Modellierung und Klassi�kation

Mit beiden Automatentypen lassen sich dieselben Zielfunktionenbeschreiben. Die Moore-Form braucht mehr Zustände, dieMealy-Form hat eine kompliziertere Ausgabefunktion und ist oftunübersichtlicher.

Wenn keine Ausgaben explizit zugeordnet sind, ist der Zustanddie Ausgabe. Kanten mit demselben Anfangs- und Endknotenkönnen weggelassen werden.

Eine weitere Sonderform sind autonome Automaten. Sie habenkeine Eingabe und schalten in jedem Schritt einen Zustandweiter. Zyklische autonome Automaten dienen z.B. als Taktteilerund zyklenfreie zur Steuerung von Initialisierungsabläufen.

A B C D

EFGH

A B C D

E G HF

zyklischer autonomer Automat zyklenfreier autonomer Automat

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 9/138

1. Automaten 1. Modellierung und Klassi�kation

Spezi�kation einer Türsteuerung

In der Digitaltechnik dienen Automaten hauptsächlich zurSteuerung von Abläufen, z.B. dem Ö�nen und Schlieÿen einerFahrstuhltür.

Eingangssignale der Türsteuerung:Sensorsignal �Tür ist komplett auf� (SA = 1),Sensorsignal �Tür ist komplett zu� (SZ = 1),Tastereingabe �Tür ö�nen� (TA = 1) undTastereingabe �Tür schlieÿen� (TS = 1).

Gesteuert wird der Schlieÿmotor der Tür. Die Ausgaben sind:�Motor aus� (A0),�Tür ö�nen� (AA) und�Tür schlieÿen� (AS).

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 10/138

1. Automaten 1. Modellierung und Klassi�kation

Der Steuerablauf in der Moore-Form hat die Zustände �auf�,�schlieÿen�, �zu� und �ö�nen�. Bei den Tastereingaben wechseltder Automat in die Zustände �ö�nen� bzw. �schlieÿen� und beiAktivierung der Endlagenschalter in die Zustände �auf� bzw.�zu�.

aufA0

zuA0

TS

Mealy-Automat

TA

Moore-Automat

TS

TA

TS

TASZ

SA

offnenAA AS

offnen

schließenschließen

wenn ”offnen”∧SA

sonst wenn ”schließen”∧SZ

sonst Ausgabe A0

Ausgabe AA

Ausgabe AA

In der Mealy-Form werden nur die Zustände �ö�nen� und�schlieÿen� unterschieden. Das Abschalten des Motors über dieEndlagenschalter ist in der Ausgabefunktion enthalten.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 11/138

1. Automaten 1. Modellierung und Klassi�kation

Die Automatenbeschreibung des Moore-Automaten ist nochfehlerhaft/unvollständig. Sie beschreibt z.B. nicht, was in denZuständen �ö�nen� und �schlieÿen� bei gleichzeitiger Aktivie-rung von Taster und Endlagenschalter passieren soll. Wenn beideTaster gedrückt sind, ist der permanente Wechsel zwischen�ö�nen� und �schlieÿen� sicher unerwünscht. Verbesserung:

aufA0

zuA0

offnenAA AS

schließen

Mealy-Automat

TA

More-Automat

TS ∧ SA ∧ TA

TA ∧ SZ

offnen

schließen

wenn ”offnen”∧SA

sonst wenn ”schließen”∧SZ

sonst Ausgabe A0

Ausgabe AA

Ausgabe AA

TS ∧ TATS

SZ

SA

TA

Die Ablaufspezi�kation mit Automaten ist vor allem deshalbbeliebt, weil sie anschaulich ist und solche Probleme aufdeckt.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 12/138

1. Automaten 2. Automat als Schaltung

Automat als Schaltung

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 13/138

1. Automaten 2. Automat als Schaltung

Automaten als Schaltung

Bei der Realisierung als digitale Schaltung sind die Eingaben,Zustände und Ausgaben Bitvektoren. Die Unterscheidung von mWerten verlangt mindestens

n ≥ log2 (m)

Bits. Der Zustand wird in einem Register gespeichert.Anfangszustand ist der Initialisierungswert des Register. DieZustandsübergänge erfolgen mit der aktiven Takt�anke. DieÜbergangs- und Ausgabefunktion sind Verarbeitungsfunktion:

I

II

fy(x, s)fs(x, s) Ubergangsfunktion

Ausgabefunktion

fs(x, s)

fy(x, s)

s

yx

T

Tsx Eingabe

Zustandy Ausgabe

TaktInitialisierungssignal

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 14/138

1. Automaten 2. Automat als Schaltung

Die Änderungen des Eingabe- und das Initialisierungssignalsmüssen zeitlich zur aktiven Takt�anke ausgerichtet sein. DieAusgabe wird in ihrem Gültigkeitsfenster, in der Regel mit dernächsten aktiven Takt�anke, abgetastet. Die dafür erforderlichenEin- und Ausgaberegister werden nicht zur Schaltung desAutomaten gezählt.

I

IIxfs(x, s)

fy(x, s)

xs

y

T

I+

x+ y’

S1 S2

S1S0 S2

x+ Eingabe einen Takt zuvorI+ Initialisierungssignal einen Takt zuvory’ Ausgabesignal einen Takt verzogert

Folgezustandswertes+

AbtastzeitpunktWert ungultig / ohne Bedeutung

X1 X2

X1 X2 X3

X3

Y1 Y2

Y1 Y2

I+

T

y’

y

s

s+

x

x+

s+

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 15/138

1. Automaten 2. Automat als Schaltung

Bei einem Moore-Automaten ist die Ausgabe nicht von derEingabe abhängig.

II

I

xsy

T

EingabeZustandAusgabeInitialisierungssignalTakt

sfs(x, s) fy(s) y

T

x

Ohne explizite Zuordnung von Ausgaben ist die Ausgabe derZustand.

I

Is

fs(x, s)

T

xy

Bei einem autonomen Automaten ist der Folgezustand nur eineFunktion des Ist-Zustands.

I

Is

y

T

fs(s)

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 16/138

1. Automaten 3. Entwurf mit KV-Diagrammen

Entwurf mit KV-Diagrammen

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 17/138

1. Automaten 3. Entwurf mit KV-Diagrammen

Vorwärts-/Rückwärtszähler

Die Funktion sei als Graph gegeben. Das Beispiel ist ein Zähler,der bei Eingabe �V� vorwärts, bei �R� rückwärts zählt und bei�H� seinen Zustand beibehält. Die Zählfolge ist �A�, �B�, ... DieAusgabe ist den Übergängen zugeordnet (Mealy-Automat):

Zustands

R/N

A B

CD

V/L

R/LV/KR/K

V/M

R/M

V/N

H/L

H/M

H/K

H/N

Π = {K,L,M,N}S = {A,B,C,D}Σ = {H,V,R}

Anfangszustand

Eingabemenge

Zustandsmenge

Ausgabemenge

x/y

Eingabewert

Ausgabewert

Ausgehend davon sind die Codierung der symbolischen Wertesowie die Gröÿe des Zustandsregisters festzulegen und dieÜbergangs- und Ausgabefunktion zu entwerfen.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 18/138

1. Automaten 3. Entwurf mit KV-Diagrammen

Aufstellen der Tabellen für die Übergangs- und Ausgabefunktion.Festlegung der Zustandscodierung.

⇒ ⇒

BA

CD

V

BCDA

H

BA

CD

R

BA

C

D

V H R

KLMNK

LMN

KLM

N 0010

1011

KLMN

1011

CD

0010

VHR

000110 01

00

1011

00011011

000110

11

00

011011

00 01 10

00011011

000110

11

00

011011

00 01 10

gangs und Ausgabefunktiongangs und Ausgabefunktionsymbolorientierte Uber- bitvektororientierte Uber-

s+ = fs(x, s)

s x :

AB

s x :

s+ = fs(x, s)

codierungZustands-

y = fa(x, s) y = fa(x, s)

Die drei bzw. vier symbolischen Werte für die Eingabe, dieAusgabe und den Zustand verlangen mindestens je zwei Bit. DieEingabecodierung ist im Beispiel willkürlich gewählt. DieAusgabecodierung ist so gewählt, das die Übergangs- und dieAusgabefunktion identisch sind. Das Zustandsregister muss zweiBit breit sein. Der Initialisierungswert �A� ist mit "00" codiert.Zustandscodierung ist so gewählt, dass y = s+ gilt.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 19/138

1. Automaten 3. Entwurf mit KV-Diagrammen

Aufstellen der KV-Diagramme

Für jedes Zustands- und jedes Ausgabebit ist ein KV-Diagrammaufzustellen. Wegen y = s+ genügen im Beispiel zwei:

s1 s1

x1

x0

s0 s0

0

1

0

1 0 1

0 1

- - - -

1

1 1

0

0

1 0 1

0

- - - -

1 0 0 1

s+0 = y0s+1 = y1

0

V

H

R

-

A B D C A B D C

0 1aa

b

aaa

d

c

b e

y0 = s+0 = s0x0 ∨ s0x0

y1 = s+1 = s1s0x1x0 ∨ s1s0x1 ∨ s1s0x1 ∨ s1x0 ∨ s1s0x1

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 20/138

1. Automaten 3. Entwurf mit KV-Diagrammen

Vom KV-Diagramm zur Schaltung

Im nächsten Schritt sind die minimierten logischen Funktionendurch verfügbare digitale Bausteine nachzubilden. Früher, als derdigitale Schaltungsentwurf noch überwiegend Handarbeit war,wurden vorzugsweise Schaltkreise mit mehreren NAND-Gatterneingesetzt (vergl. Foliensatz F1). Die Gleichungsumformung ausder AND-OR-Form in die NAND-NAND-Form erfolgt mit Hilfeder de morganschen Regeln:

y0 = s+0 = s0x0 ∨ s0x0 = (s0x0) (s0x0)

y1 = s+1 = s1s0x1x0 ∨ s1s0x1 ∨ s1s0x1 ∨ s1s0x1 ∨ s1x0

= (s1s0x1x0) (s1s0x1) (s1s0x1) (s1s0x1) (s1x0)

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 21/138

1. Automaten 3. Entwurf mit KV-Diagrammen

y0 = s+0 = (s0x0) (s0x0)

y1 = s+1 = (s1s0x1x0) (s1s0x1) (s1s0x1) (s1s0x1) (s1x0)

Umsetzung der logischen Funktionen in eine Gatterschaltung.Ergänzung der Speicherzellen des Zustandsregisters, des Taktsund des Initialisierungssignals.

&Rx

s0s0 x1x1s1s1 x0x0

Rx

s0

y0

&

&

&

&

&

&

&

y1

s1&

x0

x1

I

T⇒Web-Projekt:

P2.2/Test VRZ.vhdl

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 22/138

1. Automaten 3. Entwurf mit KV-Diagrammen

Mit dem hier dargestellten Entwurfs�uss wurden noch vorwenigen Jahrzehnten Rechner und andere digitale Schaltungenentworfen.

Die Klausur zum Semesterende enthält traditionell eine Aufgabevon diesem Typ.

Für Übergangs- und Ausgabefunktionen mit mehr als vierEingabebits funktioniert der Bleistift-und-Papier-Entwurf nurnoch begrenzt. Übergang zu rechnergestützten Verfahren wieQuine und McCluskey.

Heute Beschreibung in einer Hochsprache mitFallunterscheidungen und Synthese.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 23/138

1. Automaten 4. Beschreibung in VHDL

Beschreibung in VHDL

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 24/138

1. Automaten 4. Beschreibung in VHDL

VHDL-Fallunterscheidung als Tabellenfunktion

} =>{ |WertWert

{Anweisung Anweisung}A0 A1 An

. . .

. . .

w0 w1

ssonst

case Ausdruck is

when

{when

} =>{ |WertWert

end case

=>

;{Anweisung }]]

{Anweisung Anweisung}} A1w1

A0

w0

Auswahlgroßeswi Auswahlwert(e) i

Anweisungsfolge iAi

An[[when others

Anweisung

s

Die aus Zustandsgraphen abgeleitete Übergangs- und Ausgabe-funktionen lassen sich am besten mit Auswahlanweisungen undFallunterscheidungen beschreiben, z.B.:

case Zustand is

when Zi => if Eingabe=... then Zustand <= Zj; ...

...when other => Zustand <= <Anfangswert 1>; end case;

1Siehe später absturzsichere Automaten in VHDL, Folie 35.Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 25/138

1. Automaten 4. Beschreibung in VHDL

Beispielbeschreibung für einen Mealy-Automaten

Zielstruktur

fs xI

00

0110

0/1

1/0

1/1

1/10/0

Ablaufgraph

0/0 s+ ysx

I

T T

fy

Teil des Automatenerforderlich, aber nicht

Eingabemenge: {0, 1} ⇒ BitZustandsmenge: {00, 01, 10} ⇒ 2-Bit-VektorAusgabemenge: {0, 1} ⇒ Bit

signal x, y, T, I: STD_LOGIC;signal s: STD_LOGIC_VECTOR(1 downto 0);

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 26/138

1. Automaten 4. Beschreibung in VHDL

Übergangsfunktion als Abtastprozess

s+

Ifsx

xI

T

s

00

0110

0/1

1/01/10/0

1/1

0/0

process(I, T)

variable sx: STD_LOGIC_VECTOR(2 downto 0);

beginif I='1' thens <= "00";

elsif RISING_EDGE(T) thensx := s & x;2

case sx iswhen "00"&'0' | "10"&'0' => s <= "00";

when "01"&'0' | "00"&'1' => s <= "01";

when "10"&'1' | "01"&'1' => s <= "10";

when others => s <= "00"; �- Neuinitialisierung

end case; �- bei Zustandsfehlern

end if;end process;

2Auswahl ist hier die Konkatenation aus Zustand und Eingabe.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 27/138

1. Automaten 4. Beschreibung in VHDL

Ausgabefunktion als kombinatorischer Prozess

00

0110

0/1

1/01/10/0

0/0

1/1process(x, s)

variable sx: STD_LOGIC_VECTOR(2 downto 0);

beginsx := s & x;

case sx iswhen "00"&'1' | "01"&'0' | "10"&'0' => y <= '0';

when others => y <= '1';

end case;end process;

Auswahl wieder Konkatenation aus Zustand und Eingabe3.3Von unserem Entwurfssystem als schlechter Entwurfsstil bemängelt. Die

empfohlene Beschreibung mit einer Case-Anweisung für die Zustands- und

If-Anweisungen für die Eingabeunterscheidung passt aber nicht auf Folien.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 28/138

1. Automaten 4. Beschreibung in VHDL

Beispiel Moore-Automat

process(s)begincase s iswhen "01" => y <= '0';

when others => y <= '1';

end case;end process; x

I

T

001 1

100

011001

1

0

s+ s

I

T

xy

fyfs

Die Eingabe-, Zustands- und Ausgabemenge sowie Übergangs-funktion und damit die Schnittstellenbeschreibung und derAbtastprozess sind wie im Beispiel zuvor. Die Ausgabe hängtvom Zustand ab und ist als kombinatorischer Prozess mit demZustand in der Weckliste beschrieben.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 29/138

1. Automaten 5. Redundante Zustände

Redundante Zustände

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 30/138

1. Automaten 5. Redundante Zustände

Beispiel Johnson-Zähler

0000

1000 1100 1110 1111

011100110001 s0 s1 s2 s3

II+

T

x

I I I

x x x

Ein Johnson-Zähler ist ein mit einem Inverter rückgekoppeltesSchieberegister. Ausgehend vom Initialzustand "0000" läuft erzyklisch zuerst mit Nullen und dann wieder mit Einsen voll. DieZykluslänge ist 2 · n (n � Bitanzahl des Zustandsregisters). Dieeinfache Übergangsfunktion erlaubt hohe Taktfrequenzen.Anwendung z.B. als Vorteiler für die Frequenzmessung imGigahertz-Bereich.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 31/138

1. Automaten 5. Redundante Zustände

Beschreibung in VHDLs0 s1 s2 s3

I

x

I I I

x x x

TI

signal T, I: STD_LOGIC;

signal s: STD_LOGIC_VECTOR(3 downto 0);

...

process(I, T)

beginif I='1' then s <= "0000";

elsif RISING_EDGE(T) thens <= s(2 downto 0) & (not s(3));

end if;end process;

Bestimmte Automatenformen wie der Johnson-Zähler lassen sichviel kompakter als mit Fallunterscheidungen nach Zuständen undEingabe beschreiben.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 32/138

1. Automaten 5. Redundante Zustände

Redundante Zustände und Systemabsturz

Viele Automaten nutzen nur einen kleinen Teil der 2n (n � Bitan-zahl des Zustandsregisters) Zustände, der 4-Bit-Johnson-Zählerz.B. nur 8 von 16 Zuständen. Was passiert, wenn der Automat ineinen ungenutzten (unzulässigen) Zustand übergeht?

0100

1011

Fehl-funktion

keinRuck-weg

s3s2s1s0

Soll-Funktion Funktion nach einem Absturz

0000

111111101100

1000

0001 0011

0111 0101

00101001

01101101

1010

Der Johnson-Zähler durchläuft seine acht ungenutzten (unzuläs-sigen) Zustände zyklisch. Bis zur Neuinitialisierung keinesinnvolle Reaktion mehr. Nicht nur bei Rechnern, sondern auchbei kleinen Automaten gibt es Abstürze.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 33/138

1. Automaten 5. Redundante Zustände

Absturzsichere Automaten

Schaltung zur automatischen Neuinitialisierung

0000.0

1111.0

I

T

xs0

I

x

I

x

s1 s2

&

I+

s3

I

xI+r≥1

- - - -.1

unzulassige Zustande Zyklus der zulassigen Zustande

Ubergange durchFehlfunktionen

s3s2s1s0.I

0111.00011.00001.0

1110.01100.01000.01101.0

0101.01001.00100.0

1010.0 0110.0

0010.0

1011.0

Erweiterung um eine Funktion zur automatischenNeuinitialisierung bei Erreichen eines unzulässigen Zustands. ImBeispiel automatisches Rücksetzen bei Erkennen der Zustände�1101� und �0101�.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 34/138

1. Automaten 5. Redundante Zustände

Absturzsichere Automaten in VHDL

Die pragmatische, wenn auchnicht unbedingt aufwands-

ärmste Lösung ist dieNeuinitialisierung bei

�allen anderen Zu-ständen�:

process(I, T)

beginif I='1' thens <= <Anfangswert >;

elsif RISING_EDGE(T) thencase s iswhen <1. genutzter Zustand > =>

if <Eingabe> then ... end if;

when <2. genutzter Zustand > =>

if <Eingabe> then ... end if;

...

when others =>

s <Anfangswert >; �- Neuinitialisierung

end case; �- bei Zustandsfehlern

end if;end process;

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 35/138

1. Automaten 5. Redundante Zustände

Watchdoguberwachter Automat Watchdog

RW

RA

RA

RW

Ein Uberlauf des Watchdogs initialisiert den Automaten neu

Bei einem bestimmten, regelmaßig stattfindenen Zustands-ubergang wird der Watchdog neu initialisiert

Bei einem programmierten Rechner mit Tausenden oder Millionenvon gespeicherten Bits gibt es unzählig ungenutzte (unzulässige)Zustände. Es ist nicht ausschlieÿbar, dass hin wieder einer dieserZustände, z.B. durch Entwurfsfehler, Eingabefehler oderStörungen erreicht wird. Rechner, vor denen kein Bediener sitzt,haben in der Regel einen Watchdog, der, wenn das System einegewisse Zeit nicht reagiert, es neu initialisiert.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 36/138

1. Automaten 6. Beispiel Zahlenschloss

Beispiel Zahlenschloss

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 37/138

1. Automaten 6. Beispiel Zahlenschloss

Entwurf der Steuerung eines Zahlenschlosses

Ein elektronisches Zahlenschloss wartet auf eine bestimmte Folgevon Eingaben. Bei der richtigen Eingabefolge ö�net das Schloss,sonst wird ein Eingabefehler signalisiert4. Präzisierung für dennachfolgenden Beispielentwurf:

Eingabefolge: Reset + richtige Zahlenfolge ⇒ leuchtendeAusgabe-LEDEingabefolge: Reset + falsche Zahlenfolge ⇒ LED bleibt aus

Entwurfsablauf:Schaltungsskizze mit dem Automaten als Black-Box,Spezi�kation des Zustandsgraphen für den Automaten,Beschreibung in VHDL,Simulation, Synthese, Test.

4Zwischending aus einem Transductor und einem Akzeptorautomaten.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 38/138

1. Automaten 6. Beispiel Zahlenschloss

Schaltungsskizze

xI

&x xU

x+

x+m−1

fs

sfy

xU’

s+

y

TI+

x+0

UV

· · ·x+1

I

m Zi�erntasten + Reset-Taste; asynchron prellend;Abtastung z.B. mit TP ≈ 10ms; �0� wenn gedrücktgültige Eingabe: Abtastfolge keine Taste - eine Tastebetätigt; mehrere Tasten gilt als falsche TasteAusgabe-LED + Vorwiderstand; leuchtet bei y = 0Moore-Automat (zustandszugeordnete Ausgabe)Neuinitialisierung mit abgetastetem Reset-Wert �0�xU � UND-Verknüpfung der Tasten; �1�, wenn imAbtastmoment keine Taste gedrückt, sonst �0�

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 39/138

1. Automaten 6. Beispiel Zahlenschloss

Spezi�kation des Ablaufs1110∗ 0111∗ 1101∗

LED ausZ2 Z3

LED einLED ausZ0 Z1

LED aus

LED ausF

sonst∗ sonst∗sonst∗

∗ ∧(xU = 0) ∧ (xU’= 1)

Akzeptorautomat; Zi Zustandsname; i � Nummer dernächsten GeheimzahlÜbergangsbedingung: aktive Takt�anke ∧ xU = 0 (Tastegedrückt) ∧ xU' (Abtastschritt zuvor keine Taste gedrückt)∧s 6= F ∧ s 6= Z3 (kein Endzustand)richtige Zahlenfolge 0-3-1 ⇒ Eingabefolge 1110-0111-1101(m = 4 Zi�erntasten)falsche Eingabe ⇒ Fehlerzustand Fdie Endzustände F und Z3 werden nur durchNeuinitialisierung verlassen

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 40/138

1. Automaten 6. Beispiel Zahlenschloss

Beschreibung in VHDL

xI

&x xU

x+

x+m−1

fs

sfy

xU’

s+

y

TI+

x+0

UV

· · ·x+1

I

signal T, I_next, I, xu, xu_del: STD_LOGIC;

signal s: STD_LOGIC_VECTOR(2 downto 0);

signal x_next, x: STD_LOGIC_VECTOR(3 downto 0);...

process(T) beginif RISING_EDGE(T) thenx <= x_next;

I <= I_next;

xu_del <= xu;

end if;end process;

xu <= x(0) and x(1) and x(2) and x(3);Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 41/138

1. Automaten 6. Beispiel Zahlenschloss

Endzustande: 1- -

000

100010001

111

Z0

Z1

Z2

Z3

F

Zustand Codierung

Z1

LED aus LED ausZ2

LED ausZ0 Z3

LED ein

∗ ∧(xU = 0)∧xU’= 1)LED aus

F

1110∗ 0111∗

sonst∗sonst∗

1101∗

sonst∗

process(I, T)

variable v: STD_LOGIC_VECTOR(6 downto 0);

beginif I='0' thens <= "000";

elsif RISING_EDGE(T) and xu='0'

and xu_del ='1' and s(2)='0' thenv:= s & x;

case v iswhen "000" & "1110" => s<="001";

when "001" & "0111" => s<="010";

when "010" & "1101" => s<="100";

when others => s <= "111";

end case;end if;end process;�- nebenläufige Anweisung zur Bildung von y

y <= not s(2) or s(1) or s(0);Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 42/138

1. Automaten 6. Beispiel Zahlenschloss

Zusammenfassung

Ein Automat ist ein mathematisches Modell, das sich gut für dieSpezi�kation von Steuerabläufen in digitalen Schaltungen eignet.Die Schaltung eines Automaten besteht aus einemZustandsregister, der Übergangs- und der Ausgabefunktion.Anfangszustand ist der Initialwert des Registers. DieÜbergangszeitpunkte legt der Takt fest. Der Schaltungsentwurfmit Automaten besteht in der Regel aus1 einem Schaltungsentwurf mit dem Automaten als Black-Box,2 der Spezi�kation des Zustandsgraphen und3 der Beschreibung der Gesamtfunktion in VHDL.

Der kreative Aufgabenteil steckt in den beiden erstenTeilaufgaben. Die abschlieÿende Beschreibung in VHDL ist nurnoch Fleiÿarbeit.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 43/138

1. Automaten 7. Aufgaben

Aufgaben

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 44/138

1. Automaten 7. Aufgaben

Aufgabe 1.1: Rückgekoppeltes Schieberegister

b)a)

x

I

x

I00

10

10

10

10

x

IT

y

s0 s1

T

x

I

s1s0

y

=1=1

1 Bestimmen Sie die Folgezustände s+1 s

+0 und den

Ausgabewert y für alle Variationen des Ist-Zustands s1s0

und des Eingabewerts von x.2 Zeichnen Sie den Ablaufgraphen.3 Ergänzen Sie die Signalverläufe für s1s0 und y in derAbbildung rechts.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 45/138

1. Automaten 7. Aufgaben

Aufgabe 1.2: Automat

Gegeben sind der Ablauf-graph und die Zustands-codierung. Zustands-wechsel bei steigenderTakt�anke und Initialisie-rung mit high-aktivemInitialisierungssignal.

Z1

y<=’0’

y<=’1’

Z4

Z2

y<=’1’

x=’1’

x=’1’

x=’1’

y<=’0’

Z3

x=’0’x=’0’

x=’0’

x=’1’

x=’0’

symbolische Zustandsbezeichnung Z1 Z2 Z3 Z4

Zustandsvektor �00� �01� "10" �11�

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 46/138

1. Automaten 7. Aufgaben

1 Füllen Sie die nachfolgende Übergangstabelle aus:

Eingabe 0 1 0 1 0 1 0 1

Zustand 00 00 01 01 10 10 11 11

Folgezustand

Ausgabe

2 Skizzieren Sie die Gesamtschaltung (Eingabeabtastung,Zustandsregister, Übergangsfunktion, Ausgabefunktion).

3 Wie viele Speicherzellen benötigt der Automat?4 Beschreiben Sie die Gesamtschaltung in VHDL (Entity- undArchitecture-Teil).

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 47/138

1. Automaten 7. Aufgaben

Aufgabe 1.3: Automatenentwurf

s0

s1

s2

s0

s1

s2

x x

s2s1s0

x/y

0/0

000

010

100

111

011 001

1/0 1/0

1/0

0/10/0

1/0

1/0

1/0 0/1

0/0

0/1

s+0y

s+2 s+1

1 Füllen Sie die KV-Diagramme rechts aus.2 Entwerfen Sie für den gegebenen Ablaufgraphen eineSchaltung aus Gattern und Registern.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 48/138

1. Automaten 7. Aufgaben

Aufgabe 1.4: Automatensynthese

Gegeben sind die Schaltungsstruktur eines Automaten undTabellen für die Übergangs- und Ausgabefunktion.

0100

1011

00011011

000110

11

00

011011

00 01 10

00011011

000110

11

00

011011

00 01 10

d)

s x :

s+ = fs(x, s)y

x xI

ss+

2

2

2

y = fa(x, s)fa(x, s)

I T

fs(x, s)

1 Beschreiben Sie die Funktion der Schaltung in VHDL ineiner synthesegerechten Form.

2 Entwerfen Sie mit Hilfe von KV-Diagrammen eine Schaltungfür den Automaten aus Gattern und Registern.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 49/138

1. Automaten 7. Aufgaben

Aufgabe 1.5: Überwachung eines Sendesignals

Für ein Sendesignal ist zu überwachen, dass die Di�erenz ∆ derAnzahl der gesendeten Einsen minus Anzahl gesendete Nullenden Bereich von −3 bis 3 nicht überschreitet. Bei ÜberschreitungFehlersignal y aktivieren. Beispielsignalverlauf:

x 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 . . .

∆ 0 1 0 -1 -2 -3 -3 -2 -3 -2 -1 0 1 2 3 3

y 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 . . .

(x � Eingabe; ∆ � Anz. �0� minus Anz. �1�; y � Fehlersignal)

1 Beschreiben Sie die Funktion durch einen Ablaufgraphen.2 Beschreiben Sie die Funktion synthesegerecht in VHDL(Schnittstelle, Architecture).

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 50/138

2. Operationssteuerung

Operationssteuerung

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 51/138

2. Operationssteuerung

Steuerung von Operationsabläufen

Die Zustands- und Kantenanzahl eines Automaten wächstexponentiell mit der Anzahl der Eingabe- und Zustandsbits. Fürkomplexere Zielfunktionen ist eine Trennung zwischen denOperationen und dem Ablauf erforderlich, z.B. in Form einerSchrittkettenbeschreibung5 (engl. sequential control).

Eine Schrittkette besteht aus Schritten und Transaktionen. DenSchritten sind Aktionen zugeordnet. Eine Transaktion ist eineSchaltbedingung, die den Übergang von einem Schritt zumnächsten bestimmt und dazu auÿer Eingaben auchOperationsergebnisse auswertet.

Bereits eine Zähloperation kann die Beschreibung einessequentiellen Ablaufs drastisch vereinfachen.

5Schrittketten zur Beschreibung von Ablaufsteuerungen stammen von der

SPS-Programmierung.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 52/138

2. Operationssteuerung

Dreiecksignalgenerator

Aufgabe sei die zyklische Erzeugung des nachfolgendenSignalverlaufs:

Zeitablauf

000000010010

11101101

1111

0 15 30

y

Schritt

Ein Automat für diese Aufgabe hat 30 Zustände, die zyklischdurchlaufen werden, denen in Folge die nacheinanderauszugebenden Werte zugeordnet sind. Eine Ablaufsteuerungkommt mit zwei Schritten (Automatenzuständen) aus:

aufwärtszählen undabwärtszählen.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 53/138

2. OperationssteuerungBeschreibungen des Dreiecksignalgenerators:

Z0

0000Z1

0001Z2

0010Z14

1110Z15

1111

16Z17Z29Z30 Z28

11111110001000010000

z <= z − 1abwartszahlen

aufwartszahlenz <= z + 1

z =”0001”

z =”1110”

I = ’1’z <=”0000”

Initialisierungsschritt

Schritt

Transaktion

Beschrei-bung alsAutomat

Operationsablaufals Schrittkette

Schrittketten sind anschaulicher und, wie auf der nächsten Foliegezeigt, in VHDL einfach zu beschreiben.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 54/138

2. Operationssteuerung

z <= z − 1abwartszahlen

aufwartszahlenz <= z + 1

z =”0001”

z =”1110”

I = ’1’z <=”0000”

000000010010

11101101

1111

0 15 30 Schritt

y <= zAusgabefunktion:

∗1Neuinitialisierung bei Zustandsfehlern.

signal T, I, S: std_logic;signal y, z: unsigned(3 downto 0);...process(I, T)beginif I='1' thenS <= '0'; z <= "0000";elsif rising_edge(T) thencase S iswhen '0' => z <= z +"1";if y="1110" then s<='1'; end if;

when '1' => z <= z -"1";if y="0001" then s<='0'; end if;

when others∗1 =>S<='0'; z <= "0000";end case;end if;end process;�- Ausgabefunktion

y<=z;Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 55/138

2. Operationssteuerung

Weitere Beschreibungsmittel für Schrittketten

Schritt 2a

Schritt 3

Schritt 1

Schritt 2b Schritt 2a

Schritt 3

Schritt 1

Schritt 2b

Alternativverzweigung Parallelverzweigung

Alternativverzeigung: Als nächstes folgt der Schritt, dessenTransitionsbedingung zuerst wahr ist. Für Gleichzeitigkeitmuss es eine Vorrangregel geben.Parallelverzeiweigung: Nebenläu�ge Abarbeitung vonmehreren Schritten oder Teilschrittketten. Der nächstegemeinsame Schritt kann frühstens folgen, wenn alleParallelverzweigungen abgearbeitet sind.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 56/138

2. OperationssteuerungIn einer SPS-Beschreibung ist der Initialzustand einausgezeichneter Wartezustand, der verlassen wird, wenn dieStarttransition für die Ablaufkette eintritt. Für digitaleSchaltungen gilt als Starttransition in der Regel dieInitalisierung, bei der ein Übergang von einem beliebigenZustand in einen Anfangszustand erfolgt. Der dargestellteInitialisierungsschritt ist entsprechend kein richtiger Schritt,sondern nur eine Beschreibung der Inititialwertezuweisungen.

aufwartszahlenz <= z + 1

I = ’1’z <=”0000”

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 57/138

2. Operationssteuerung 1. Serieller Addierer

Serieller Addierer

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 58/138

2. Operationssteuerung 1. Serieller Addierer

Das Funktionsmodell eines (Ripple-) Addierers ist eine Schleifevom niedrigsten zum höchstwertigen Operandenbit mit derbitweisen Summen- und Übertragsfunktion im Schleifenkörper.

c

sVA

c

sVA

c

sVA

tdVA

cin

b0

a0

an−1

bn−1cout

a1b1

s0

s1

sn−1

signal a,b,s:std_logic_vector(n-1 downto 0);

signal cin, cout: std_logic;...

process(a, b, cin)

variable c: std_logic;

beginc:=cin;

for i in 0 to n-1 loops(i)<=a(i) xor b(i) xor c;

c:=(a(i) and b(i)) or (a(i) and c)or (b(i) and c);

end loop;cout<=c;

end process;

Da sich die Verzögerungen addieren, ist es naheliegend, dieBitadditionen auf aufeinanderfolgende Takte aufzuteilen.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 59/138

2. Operationssteuerung 1. Serieller Addierer

Addition in n+ 1 Taktensignal a,b,s:std_logic_vector(n-1 downto 0);

signal c, cin, cout: Start, busy: std_logic;...

processbeginbusy<='0';

wait on Start='1' and RISING_EDGE(T);

busy<='1'; c<=cin; a<=...; b<=...;

wait on RISING_EDGE(T);

for i in 0 to n-1 loops(i)<=a(i) xor b(i) xor c;

c<=(a(i) and b(i)) or (a(i) and c) or (b(i) and c);wait on RISING_EDGE(T);

end loop;end process; cout <= c;

Warte auf Eingabebereitschaft. Warte einen Takt aufDatenübernahme. Warte einen Takt nach jeder Bitaddition.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 60/138

2. Operationssteuerung 1. Serieller Addierer

Für die Ausführung der Addition selbst genügt jetzt ein einzigerVolladdierer, weil in jedem Takt nur ein Bit addiert wird. DerÜbertrag muss in einem Register immer von einem zum nächstenTakt gespeichert werden.

ts tdr

Start

10001010a U

10010011b U

c U

tdVAtdmux

01

si

T

c

sVA

cin

bi

ai

c

c+

T

busyStart

s0s1s2s3

U

U

U

U

cout

Ein serieller Addierer ist bei minimaler Taktperiode:

TP ≥ tdr + tdVA + tdmux + ts

etwas halb so schnell wie ein Ripple-Addierer.Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 61/138

2. Operationssteuerung 1. Serieller Addierer

Ablaufsteuerung (Entwurf 1)

Die Ablaufsteuerung für die serielleAddition braucht zwei Zustände:

Bereit für die Übernahme vonOperanden und das Abholen desErgebnisses undAddieren.

I = ’1’

Start = ’1’

i = n− 1

ubernahme (busy=’0’)

a <= ...; b <= ...;i <= 0; c <= ...;

bereit zur Operanden-

beschaftigt(busy=’1’)

c : si <= ai + bi + ci <= i+ 1

Im ersten Zustand wird zusätzlich derBitzähler zurückgesetzt. Im anderenSchritt erfolgen in jedem Takt eine Bitaddition und die Erhöhungdes Bitzählers. Die Übergangsbedingung in den Zustand�beschäftigt� sei die Aktivierung eines Startsignals und für denÜbergang zurück, dass der Bitzähler auf das höchstwertige Bitzeigt. Der Zustand ist gleichzeitig das Besetztsignal für dieumgebende Schaltung.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 62/138

2. Operationssteuerung 1. Serieller Addierer

Alternativlösung mit Schieberegistern (Entwurf 2)

Bei einem Hardware-Entwurfwerden zur Aufwands- undVerzögerungsminimierunggern mehrere Lösungsvariantenausprobiert. Für die bitweiseOperandenbereitstellung undErgebnisspeicherung gibt eseine aufwandsärmere undschnellere Alternative,Schieberegister.

I = ’1’

i = n− 1

c <= c slr 1; i <= i+ 1a <= a slr 1; b <= b slr 1;

b0b1b2b3 c

sVA

s0s1s2s3a0a1a2a3

+1c ct

ubernahme (busy=’0’)

a <= ...; b <= ...;i <= 0; c <= ...;

bereit zur Operanden-

beschaftigt(busy=’1’)

Start = ’1’

c : sn−1 <= a0 + b0 + c

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 63/138

2. Operationssteuerung 1. Serieller Addierer

I = ’1’

i = n− 1

c <= c slr 1; i <= i+ 1a <= a slr 1; b <= b slr 1;

ubernahme (busy=’0’)

a <= ...; b <= ...;i <= 0; c <= ...;

bereit zur Operanden-

beschaftigt(busy=’1’)

Start = ’1’

c : sn−1 <= a0 + b0 + c

signal a,b,s:std_logic_vector(3 downto 0);

signal T,c,Start,busy: std_logic;

signal ct: unsigned(1 downto 0);...process(T) beginif I='1' then busy<='0';else if rising_edge(T) thenif busy<='1' thens<= (a(0) xor b(0) xor c)

& s(3 downto 1);

c<=(a(0) and b(0)) or (a(0) and c)or (b(0) and c);

a<= a slr 1; b<= b slr 1; s<= s slr 1;

ct <= ct + "1";

if ct = "11" then busy<= '0'; end if;elsect<="00";

if Start='1' then busy<='1'; end if;end if;end process;

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 64/138

2. Operationssteuerung 1. Serieller Addierer

Ergebnissimulation

b0b1b2b3 c

sVA

s0s1s2s3a0a1a2a3

+1c ct

ct 00 01 10 11 00

a 00000001001001011010UUUU

b 0011 0001 0000UUUU

s 1UUU 01UU 101U 1101UUUU

I = ’1’

i = n− 1

c <= c slr 1; i <= i+ 1a <= a slr 1; b <= b slr 1;

ubernahme (busy=’0’)

a <= ...; b <= ...;i <= 0; c <= ...;

bereit zur Operanden-

beschaftigt(busy=’1’)

Start = ’1’

c : sn−1 <= a0 + b0 + c

StartT

busy

c U

Ab dieser Entwurfskomplexität ist eine Simulation des Entwurfsdringend zu empfehlen. Ein typischer Denkfehler ist zu vergessen,dass an Signale zugewiese Werte erst einen Takt später da sind.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 65/138

2. Operationssteuerung 2. Divisionswerk

Divisionswerk

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 66/138

2. Operationssteuerung 2. Divisionswerk

Division von Binärzahlen

a

b= q +

r

b(a � Dividend; b � Divisor; q � (ganzzahliger) Quotient; r � Rest).

Rest

Quotient

negativ negativ

Schritt 1Start Schritt 2 Schritt 3 Schritt 4

Differenz:

a

b

q

Linksverschiebung mit bedingter Ubernahme des Subtraktionsrestseinfache Linksverschiebung

00001011

0 110

0000

0001011 001011 00001011 010 0000

0 010 0 010

0001

0 110

000

0 110

00

0 110 0 110

0

0

00

00

1

00 11

Wiederhole n-mal (n � Bitanzahl):a := a sll 1; q := q slr 1Subtraktion d := a− b;wenn d ≥ 0, dann q0 := '1'; a2n−1:n := d;

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 67/138

2. Operationssteuerung 2. Divisionswerk

Testprogramm für den Divisionsalgorithmus6

Testprozess: processvariable b, q, d: unsigned(3 downto 0);

variable a: unsigned(8 downto 0);

beginread("a= ", a(3 downto 0));

read("b= ", b);

a(7 downto 4):="0000";

for i in 3 downto 0 loopa := a sll 1; q := q slr 1;

d := a-b;

if d(3) = '0' thenq(0):='1'; a(7 downto 4):=d;

end if;

end loop;write("q= " & str(q) & " r=" & str(a(7 downto 4)));

end process;6Algorithmus so auch in einer anderen Sprache testbar, z.B. in C.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 68/138

2. Operationssteuerung 2. Divisionswerk

Aufrollen der Schleife zu einem Matrix-Dividierer

langster Pfad mit der großten Verzogerung

sll

sll

sll

sll

sll

sll

a3

q3...· · ·

· · ·

q0

b

a0

· · ·Sub

01

a1.n−1:0

a1.2n−1:n d1

d1.n−1

q1.n−1:1

Sub

01

a2.n−1:0

a2.2n−1:n d1

d2.n−1

q1q2.n−1:1

q0

Der längste Pfad geht durch alle Subtrahierer7. QuadratischeZunahme der Laufzeit mit der Bitanzahl. Im Vergleich dazunimmt die Laufzeit eines Matrixmultiplizierers nur linear mit derBitbreite zu. Dividierer arbeiten deshalb in der Regel sequentiell.

7Ein kompletter Dividierer ist zum Zeichnen zu groÿ.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 69/138

2. Operationssteuerung 2. Divisionswerk

Serielle Dividierer

Ergänzen von Registern für die Signale a, b und q undRückführung der Zwischenergebnisse.

sll

sll

Sub

an−1:0

a2n−1:n

a

b

q q1.n−1:1 q0

dn−1

01

01

01

d

T

busy

Bitzähler, Ablaufschritte, Startsignal etc. wie beim seriellenAddierer.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 70/138

2. Operationssteuerung 3. Beispiel Wegemessung

Beispiel Wegemessung

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 71/138

2. Operationssteuerung 3. Beispiel Wegemessung

Beispiel Wegemessung mit Quadratur-Encoder

vorwartsruckwarts

vorwarts ruckwarts

1 2 30 44 5 3 2 1 0

a’

b’ b”

a”0000

0 0 000 1

10

000

111

0 10 01 1

111

000

1 01 10 0

111

111

1 11

10

0

b’a” b” a’

−1

−1+1

+1

+1−1

+1−1

ct

T

0

01

1b’

a’

ct

a

b

Lochscheibe auf der Radachse z.B. eines mobilen Roboters.Bei einer Vorwärtsdrehung ändert sich das Signal a und beieiner Rückwärtsdrehung das Signal b zuerst.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 72/138

2. Operationssteuerung 3. Beispiel Wegemessung

vorwarts ruckwarts

00000 0 0

00 110

000

111

0 10 01 1

111

000

1 01 10 0

111

111

1 11

10

0

b’a” b” a’

−1

−1+1

+1

+1−1

+1−1

ct

1 2 30 44 5 3 2 1 0

0

01

1b’

a’

ct

Halt / nicht zählen: a�b� = a'b'unzulässig: a�b� = a'b'

Rotation vorwärts / vorwärts zählen:zuerst schaltet a ein (a�b�a'b' = 0010)dann b ein (a�b�a'b' = 1011)dann a aus (a�b�a'b' = 1101) undzum Schluss b aus (a�b�a'b' = 0100).

Rotation rückwärts / rückwärts zählen:zuerst schaltet b ein (a�b�a'b' = 0001)dann a ein(a�b�a'b' = 0111)dann b aus (a�b�a'b' = 1110) undzum Schluss a aus (a�b�a'b' = 1000)

Übergangsfunktion:a�b� <= a'b'

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 73/138

2. Operationssteuerung 3. Beispiel Wegemessung

library Tuc; use Tuc.Numeric_Sim.all;...signal T, I, I_del: STD_LOGIC;signal ab: STD_LOGIC_VECTOR(1 downto 0);signal ab_del: STD_LOGIC_VECTOR(3 downto 0);signal ct: signed(15 downto 0);

�- Abtastprozess ohne Initialisierung

process(T)beginif RISING_EDGE(T) thenI_del <= I;

ab_del(1 downto 0) <= ab;

ab_del(3 downto 2) <=

ab_del(1 downto 0);

end if;end process;

a’

b’ b”

a”a

b

T

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 74/138

2. Operationssteuerung 3. Beispiel Wegemessung

00000 0 0

00 110

000

111

0 10 01 1

111

000

1 01 10 0

111

111

1 11

10

0

b’a” b” a’

−1

−1+1

+1

+1−1

+1−1

ct

�- Zählerprozess

process(I_del, T)beginif I_del='1' thenct <= "0000000000000000";elsif RISING_EDGE(T) thencase ab_del iswhen "0010" |"1011" |"1101" |"0100" => ct <= ct +"1";when "0001" |"0111" |"1110" |"1000" => ct <= ct -"1";when "0000" |"0101" |"1010" |"1111" => null;when others => ct <="X...(16×X)...XX";end case;end if;end process;

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 75/138

2. Operationssteuerung 3. Beispiel Wegemessung

Zusammenfassung

Funktionsvorgabe als Ablaufgraph; rezeptartige Umsetzungin VHDL und weiter in eine Schaltung

Zustand ⇒ Zustandsregister, AbtastprozessAnfangswert ⇒ Initialwert des ZustandsregistersÜbergangs- und Ausgabefunktion ⇒ Abtast- oder komb.Prozess mit Fallunterscheidung nach Zustand und Eingabe

redundante Zustände; Absturzgefahr; typischeFehlerbehandlung Neuinitialisierung; Resettaste, Watchdogkomplexere Funktionen mit groÿen Eingabe- undZustandsmengen

Nachbildung der Zielfunktion durch eine OperationsfolgeSpezi�kation der Operanden und Operatoren alsRegister-Transfer-FunktionenOperationsablaufgraphrezeptartige VHDL-Nachbildung

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 76/138

2. Operationssteuerung 4. Aufgaben

Aufgaben

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 77/138

2. Operationssteuerung 4. Aufgaben

Aufgabe 2.1: Taktteiler

Entwerfen Sie eine Taktteilerschaltung mit dem Teilerfaktor 2 · n,die mit jeder n-ten Eingabetakt�anke den Ausgabetakt invertiert.

1 Skizzieren Sie die Signalverläufe des Eingabe- und desAusgabetakts für n = 2.

2 Beschreiben Sie die Zielfunktion als Schrittkette einemZähler.

Hinweis: Der Datentyp für den Zähler kann auch ein Zahlentypsein (INTEGER, NATURAL oder POSITIVE).

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 78/138

2. Operationssteuerung 4. Aufgaben

Aufgabe 2.2: Morse-Empfänger

4 6 8 102

A R I SP

0

1

0x

t in s

Morse-Zeichen bestehen auskurzen Pulsen (Punkt, tP = 200...300 ms) undlangen Pulsen (Strich, tS = 600...900 ms).

Taktfrequenz: fT = 20 HzPrellzeit viel kleiner als Taktperiode.zwei low-aktive Tasteneingänge

Signal x: Morse-SignalSignal I: Initialisierungssignal

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 79/138

2. Operationssteuerung 4. Aufgaben

Drei bitorientierte Ausgänge, zu aktivieren für je einen Takt

Signal p: nach einem PunktSignal s: nach einem StrichSignal err: nach einem Puls unzulässiger Breite

Skizze der Gesamtschaltung mit Tasten, Abtastregistern,Zustandsregister und der Übergangs- und Ausgabefunktionals Black-Box.

Operationsablaufgraph unter Verwendung eines Zählers

VHDL-Beschreibung (nur Vereinbarungen der Datenobjekteund Beschreibung der Prozesse)

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 80/138

2. Operationssteuerung 4. Aufgaben

Aufgabe 2.3: Entwurf eines Divisionswerks

Beschreiben Sie die Ablaufsteuerung des seriellen Dividierersals Schrittkette.

Entwerfen Sie in VHDL eine 8-Bit seriellen Dividierer.

Bestimmen Sie mit dem Simulator die Signalverläufe für dieBeispieldivision:

10010110 : 00001101

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 81/138

3. Zeitverhalten

Zeitverhalten

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 82/138

3. Zeitverhalten

Zeitverhalten

Bisher wurde in der Vorlesung immer unterstellt, dass dieFunktion der Schaltung nicht von Verzögerungszeiten abhängt,bzw. dass die Verzögerungszeiten im zulässigen Bereich liegen.Das war auch bei den behandelten Beispiellösungen so, mitAusnahme der Schaltungen mit Latches, von denen abgeratenwurde.

Dieser Abschnitt untersucht das Zeitverhalten noch einmalgenauer.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 83/138

3. Zeitverhalten 1. Halte- und Verzögerungszeiten

Halte- und Verzögerungszeiten

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 84/138

3. Zeitverhalten 1. Halte- und Verzögerungszeiten

Beschreibung der Verzögerung als Toleranzbereich

Die Verzögerungszeiten sind nur mit begrenzter Genauigkeitbekannt. Bei jedem Wechsel ist ein Signal kurzzeitig ungültig.

y

x

f(x) yx

th, td

th

f(wi+1)

wi+1

td

t

wi

f(wi)

Signalwert ungultig

Die Verzögerung einer Verarbeitungsfunktion lässt sich alsToleranzbereich aus Halte- und Verzögerungszeit beschreiben:

th Haltezeit, Zeit, die der alte gültige Ausgabewert nacheiner Eingabeänderung garantiert noch erhalten bleibt.td Verzögerungszeit, Zeit, nach Anliegen des neuen gültigenEingabe bis die Ausgabe spätestens gültig ist.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 85/138

3. Zeitverhalten 1. Halte- und Verzögerungszeiten

Beschreibung in VHDL

x

y

f(x) yx

th, td

wi+1wi

f(wi+1)f(wi)

tdth

Signalwert ungultig

Ungültig kann bedeuten, dass sein Wertim verbotenen Bereich liegt, nicht sicherist, dass die Änderung schon begonnenoder noch nicht abgeschlossen ist oderGlitches, d.h. mehrfache Signalwechselzwischen null und eins.

Zur Beschreibung in VHDL werden dem Ausgabesignal bei jederEingabeänderung zwei Ausgabeänderungen zugewiesen,�ungültig� nach der Haltezeit und der neue gültige Wert nachder Verzögerungszeit:

y <= ungültig after th, f(x) after td;

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 86/138

3. Zeitverhalten 1. Halte- und Verzögerungszeiten

Inverter mit Halte- und Verzögerungszeit

signal x, y: STD_LOGIC;

...

�- Erzeuge Signal mit mehreren Änderungenx <= '0' after 0.5 ns, 'X' after 4 ns, '1' after 4.5 ns,

'X' after 8 ns, '0' after 9.5 ns, '1' after 12 ns,

'0' after 12.5 ns;

�- Modellierung des Invertersy <= 'X' after 1 ns, not x after 2 ns;

10y

0 2 4 6 8 10

thtd

tsim

10x

nicht initialisiert (U) ungultig (X)

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 87/138

3. Zeitverhalten 1. Halte- und Verzögerungszeiten

Schaltung mit mehreren Gattern th, td1

th, td1

th, td2&G1

G2

G3z2

z1

&x4

x3

x2

x1

≥1 y

signal x1, x2, x3, x4,

z1, z2, y: STD_LOGIC;

constant th: DELAY_LENGTH:= 500 ps8;

constant td1: DELAY_LENGTH:= 1 ns;

constant td2: DELAY_LENGTH:= 2 ns;

...G1:z1<= 'X' after th, x1 and x2 after td1;

G2:z2<= 'X' after th, x3 and x4 after td1;

G3: y<= 'X' after th, z1 or z2 after td2;

Eingabe: process begin

wait for 1 ns; x3<='1';

wait for 2 ns; x1<='1'; x4<='1';

wait for 4 ns; x2<='1'; wait for 3 ns; x4<='0';

wait for 2 ns; x3<='0'; wait;

end process;8Verzögerungszeiten haben den Typ delay_length. Zeitangaben

bestehen aus einem positiven Wert und ein Maÿeinheit (ps, ns, us, ...).Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 88/138

3. Zeitverhalten 1. Halte- und Verzögerungszeiten

G1:z1<= 'X' after th, x1 and x2 after td1;

G2:z2<= 'X' after th, x3 and x4 after td1;

G3: y<= 'X' after th, z1 or z2 after td2;

x1

x2

x3

x4

z1

z2

y

0 5 10 15 20

01

01

01

01

01

01

01

nicht initialisiert (U) ungultig (X)

tsim

ohne th

In der Beispielsimulation ist die Ausgabe die meiste Zeitungültig, d.h. für die Richtigkeit kann nicht garantiert werden.Die Verarbeitung ungültiger Signalwerte führt zu schwer zulokalisierbaren Fehlern, z.B. auch Abstürzen von Automaten.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 89/138

3. Zeitverhalten 2. Laufzeitanalyse

Laufzeitanalyse

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 90/138

3. Zeitverhalten 2. Laufzeitanalyse

Laufzeitanalyse

Die Laufzeitanalyse berechnet die Halte- und Verzögerungszeiteiner übergeordneten Schaltung aus den Halte- undVerzögerungszeiten der Teilschaltungen durch Addition entlangaller Pfade.

x5

x4

x3

x2

x1

td3 = 2nsth3=1ns

td4=3nsth4=1ns

td1=2nsth1=1ns td5 = 2ns

th5 = 1ns

G3

G4y2

&

&

td2=3nsth2=1ns

&G1

G2&

G5& y1

Pfade∑

th.i∑

td.i

G1-G3-G5 3 ns 6 ns

G2-G3-G5 3 ns 7 ns

G2-G4-G5 3 ns 8 ns

G2-G4 2 ns 6 ns

G4-G5 2 ns 5 ns

G4 1 ns 3 ns

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 91/138

3. Zeitverhalten 2. Laufzeitanalyse

Die automatische Laufzeitanalyse im Rechner arbeitet mitZeitgruppen. Eine Zeitgruppe ist eine Zusammenfassung vonSignalen, z.B. aller Eingabesignale.

x1

x2

x4

x3

x5

1

&&

&&

td4th4

td5th5

Zeitgruppe

y1td2th2

&

y2

th1 td1 th3 td30

2

3

4

5

6

78 9

Halte- und Verzögerungszeiten zwischen Zeitgruppen:

Zeitgruppe th td

von 0 bis 1 th1 td1

von 0 bis 2 th2 td2

von 0 bis 3 min (th1, th2) max (td1, td2)Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 92/138

3. Zeitverhalten 2. Laufzeitanalyse

Die Berechnung der Halte- und Verzögerungszeiten von Gruppe 0zu allen anderen Zeitgruppen bis hin zum Ausgang besteht ausfortgesetzter Additionen, Minimum- und Maximumbildung.

td.2

th.4

th.2

th.1

td.1

td.3

td.4

th.5

th.3

td.5

0 bis 1

0 bis 20 bis 3

0 bis 50 bis 4

0 bis 60 bis 7

0 bis 80 bis 9

Zeitgr.

max(tdS.5, Td.6)

tdS.0 + td.2

tdS.3 + td.3

tdS.2 + td.4

tdS.7 + td.5max(tdS.6, tdS.9)

tdS.0 + td.1

max(tdS.0, tdS.2)

tdS.i

tdS.0

tdS.0 + td.2

thS.0 + th.2min(thS.1, thS.2)

thS.3 + th.3

min(thS.5, th.6)

thS.7 + th.5min(thS.6, thS.9)

thS.0 + th.1

thS.i

thS.0

thS.0 + th.4

min(thS.0, thS.2)

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 93/138

3. Zeitverhalten 3. Speichervor- und Nachhaltezeiten

Speichervor- und Nachhaltezeiten

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 94/138

3. Zeitverhalten 3. Speichervor- und Nachhaltezeiten

Register als Abtastelement

Die Ergebnisse einer Verarbeitungsfunktion dürfen nur innerhalbder Gültigkeitsfenster weiterverarbeitet oder gespeichert werden.Die laufzeitrobusteste Art der Abtastung ist mit einem Register.Ein Register übernimmt seine Eingaben mit der aktivenTakt�anke.

tstn

ts, tn

AbtastfensterWert ungultig

VorhaltezeitNachhaltezeit

thr, tdr

n n

T

x y

Verzogerungszeittdrthr Haltezeit

y

T

x

thrtdr

tn

w1w0

ts

w2

w2w1

ts tn

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 95/138

3. Zeitverhalten 3. Speichervor- und Nachhaltezeiten

ts, tn

AbtastfensterUngultigkeitsfenster

f(...)n

y

thr, tdr

n

T

thf , tdf

x

y

T

x

thrtdr

tn

w1w0

ts

w2

w2w1

ts tn

Wegen der unvermeidlichen Laufzeittoleranzen und Taktversätzezwischen den einzelnen Speicherzellen eines Registers müssen dieEingabedaten bereits um eine Vorhaltezeit ts vor und bis zu einerNachhaltezeit tn nach der aktiven Takt�anke gültig sein. EinRegister hat genau wie eine Verarbeitungsfunktion eine Haltezeitthr und eine Verzögerungszeit tdr. Diese beziehen sich auf dieaktive Takt�anke. Das verringert die Breite derUngültigkeitsfenster durch die Verarbeitung.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 96/138

3. Zeitverhalten 3. Speichervor- und Nachhaltezeiten

Registerbeschreibung mit Zeitverhalten

tstn

ts, tn

AbtastfensterWert ungultig

VorhaltezeitNachhaltezeit

Verzogerungszeittdrthr Haltezeit

thr, tdr

n n

T

x y

y

T

x

thrtdr

tn

w1w0

ts

w2

w2w1

ts tn

process(T)beginif RISING_EDGE(T) thenif x'LAST_EVENT>ts thenx_del <= ungültig after

thr, x after tdr;wait for tn;

if x'LAST_EVENT<tn thenx_del <= ungültig;

end if;elsex_del <= ungültig after thr;

end if;end if;end process;

Das Zeitverhalten eines Register inkl. Vor-und Nachhaltezeit ist in VHDL abbildbar.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 97/138

3. Zeitverhalten 3. Speichervor- und Nachhaltezeiten

Verarbeitung mit Abtastung

Das zu prüfende Gültigkeitsfenster verschiebt sich durch dieHalte- und Verzögerungszeit der Verarbeitungsfunktion vor dieaktive Takt�anke.

process(T) beginif RISING_EDGE(T) thenif x'DELAYED(thf)'LAST_EVENT>tdf+ts-thf then

y<= ungültig9 after thr,

f(x) after tdr;

elsey<= ungültig after thr;

end if;end if;end process;

ts

ts

notwendigesGultigkeitsfenster

x

y

T

f(x)x

thf , tdf

T

thr, tdr

yy+

y+

thftdf + ts

wi

f(wi)tdrthr

f(wi−1) f(wi)

9Für std_logic 'X'; für std_logic_vector "XX...X".

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 98/138

3. Zeitverhalten 3. Speichervor- und Nachhaltezeiten

Verarbeitung abgetasteter Signale

ts

ts

y

T

x

tdfthf

f(wi−1) f(wi)

thr, tdr

f(x)

thf , tdf

yx’

xwi

thftdf

x’ wi−1 wi

T

process(T)beginif RISING_EDGE(T) thenif x'LAST_EVENT>ts theny<= ungültig after thr+thf,

f(x) after tdr+tdf;

elsey<= ungültig after thr+thf;

end if;end if;end process;

Vergröÿerung derHalte- und Verzögerungs-

zeit nach der Abtast�anke.Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 99/138

3. Zeitverhalten 4. Register-Transfer-Funktionen

Register-Transfer-Funktionen

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 100/138

3. Zeitverhalten 4. Register-Transfer-Funktionen

Register-Transfer-Funktion

Bei einer Register-Transfer-Funktion beginnt die Verarbeitungmit der aktiven Takt�anke und endet mit der nächsten aktivenTakt�anke.

thr, tdr

y

TP

w2

tdf

tdrthr

tdrthr

w1x’

thfthftn

y = f(x)x y’

T

TP

x’ y

x’, y’TP

abgetastete Werte

ts, tn

ts

thf , tdf

T

f(w1)f(w0)

w0

Taktperiode

Die Werte von y sind im weiÿen Zeitfenster gültig und müssenzur korrekten Übernahme im roten Zeitfenster gültig sein. Das istmit einer Laufzeitanalyse kontrollierbar und erfordert keineBerücksichtigung im Simulationsmodell.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 101/138

3. Zeitverhalten 4. Register-Transfer-Funktionen

y

TP

w2

tdf

tdrthr

tdrthr

w1x’

thfthftnts

T

f(w1)f(w0)

w0Die Summe aus den Verzögerungs-zeiten des Registers und der Ver-arbeitungsfunktion darf nicht gröÿerals die Taktperiode sein

TP ≥ TPmin = tdr + tdf + ts

und die Nachhaltezeit des Registers darf nicht gröÿer als dieSumme der Haltezeiten sein:

tn ≤ tnmax = thr + thf

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 102/138

3. Zeitverhalten 4. Register-Transfer-Funktionen

Taktversatz

Abtastfenster

ts

t∆T12

yf(x’)

x′ y′

ts, tn

VerzogerungT2T1

x

thr, tdr

a)

Ubernahmeflanke Eingaberegister

Ubernahmeflanke Ausgaberegister0

t∆T12

T1

T2

y

b)

TP

tdr

tdf

thr

thf

x′

thf , tdf

t

tn

Die Takt�anken zwischen Eingangs- und Ausgangsregisterkönnen um einen Zeit t∆T12 versetzt sein, absichtlich zurErhöhung der max. Taktfrequenz oder unbeabsichtigt durchunterschiedliche Verzögerungen von der gemeinsamen Taktquelle.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 103/138

3. Zeitverhalten 4. Register-Transfer-Funktionen

Abtastfenster

ts

t∆T12

yf(x’)

x′ y′

ts, tn

VerzogerungT2T1

x

thr, tdr

a)

Ubernahmeflanke Eingaberegister

Ubernahmeflanke Ausgaberegister0

t∆T12

T1

T2

y

b)

TP

tdr

tdf

thr

thf

x′

thf , tdf

t

tn

Die Bedingung für eine korrekte Datenübernahme mitTaktversatz lauten:

tdr + tdf + ts ≤ TP + t∆T12

thr + thf ≥ tn + t∆T12

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 104/138

3. Zeitverhalten 4. Register-Transfer-Funktionen

tdr + tdf + ts ≤ TP + t∆T12

thr + thf ≥ tn + t∆T12

Aus diesen Bedingungen ergibt sich für den maximal zulässigenTaktversatz:

t∆T12 ≤ thr + thf − tnMit dem maximal zulässigen Taktversatz beträgt die maximaleTaktfrequenz:

fT ≤1

tdr + tdf + ts +−tn − (thr + thf)

Die maximal mögliche Anzahl von Berechnungsschritten pro Zeithängt nicht von der Verzögerung, sondern von der Di�erenz ausVerzögerungs- und Haltezeit ab. Man kann sogar Rechenwerkebauen, die gleichzeitig mehr als eine Berechnung durchführen,eine sog. Wellen-Pipeline.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 105/138

3. Zeitverhalten 5. Constraints

Constraints

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 106/138

3. Zeitverhalten 5. Constraints

Zeit-Constraints

Constraints sind Zusatzinformationen für die Synthese in dieUCF-Datei. Der Zeit-Constraints umfassen

Mindesttaktfrequenzen bzw. Obergrenzen für dieTaktperiode, für unsere Versuchsbaugruppe:

clk=50MHz

Zeitgruppen von Ein- und Ausgabesignale undMaximalverzögerungen zwischen Zeitgruppen.

Mit demselben Takt abgetastete Signale bilden immer eineZeitgruppe. Die Obergrenze der Register-Register-Verzögerunggibt das Takt-Constraint vor, das nie fehlen sollte. Zeitgruppenetc. werden für die Kopplung mit anderen schnellen Schaltkreisen(d.h. nicht in unseren praktischen Übungen) benötigt undgehören zur fortgeschrittenen Magie des digitalenSchaltungsentwurfs.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 107/138

3. Zeitverhalten 5. Constraints

Zusammenfassung

Ergebnisse müssen innerhalb der Gültigkeitsfensterabgetastet werden. Dazu dienen Register.Register werden durch Abtastprozesse beschrieben.Abtastprozesse haben nur den Takt in der Weckliste;Datenübernahme nur bei aktiver Takt�anke; wenn vor- oderNachhaltebedingung verletzt, Übernahme �ungültig�.Abtastprozesse können auch vor- oder nachgelagerteFunktionen mit einschlieÿen; vereinfacht die Simulation.Einrahmung in Ein- und Ausgaberegister ⇒Register-Transfer-Funktion; Zeitbedingungen mit einerLaufzeitanalyse kontrollierbar; stark vereinfachteSimulationsmodelle.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 108/138

3. Zeitverhalten 6. Aufgaben

Aufgaben

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 109/138

3. Zeitverhalten 6. Aufgaben

Aufgabe 3.1: Beschreibung als Abtastprozess

thr, tdr

y+

ts

Abtastfensterungultig

t3t4

t5

x1x0

y+

y

t6t7

t1t2

x2

T

a)

G1G2

& y

TReg

=1x0

x1

x2

th1, td1 th2, td2

b)

signal x0, x1, x2, y_next, T, y: STD_LOGIC;Beschreibung von t1 bis t7 als Funktion der Werte von th..,td... etc.Beschreibung der Gesamtschaltung als Abtastprozess

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 110/138

3. Zeitverhalten 6. Aufgaben

Aufgabe 3.2: Register-Transfer-Funktion

x+ 1

xn−1

0

1

n

nn

x

nn

y+

tdr = 1ns

T

td1 = 0,5 ns td2 = n · 1 ns td3 = 2nsts = 0,5 ns

Gesucht:maximal zulässige Taktfrequenz in Abhängigkeit von derBitbreite n?maximal zulässige Taktfrequenz für n = 16?

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 111/138

3. Zeitverhalten 6. Aufgaben

Aufgabe 3.3: Taktversatz

thr = 0nstdr = 1ns

Takt 1

x y

Takt 2

y = f(x)

thf = 5nstdf = 11ns

tn = 0ts = 2ns

In welchem Zeitbereich muss der Taktversatz t∆T12 liegen, damitbei Taktfrequenz fT = 100MHz die Vorhalte- und dieNachhaltebedingungen für das Ausgaberegisters erfüllt sind?

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 112/138

4. Asynchrone Eingabe

Asynchrone Eingabe

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 113/138

4. Asynchrone Eingabe 1. Abtastung

Abtastung

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 114/138

4. Asynchrone Eingabe 1. Abtastung

Asynchrone Eingabe

Asynchron bedeutet, dass die Eingabe nicht zeitlich zumSystemtakt ausgerichtet ist. Damit kann das Signal auch imAbtastfenster ungültig sein. Erfordert spezielle Schaltungen.

Ein abgetastetes Bitsignal hat auch, wenn es im Abtastmomentungültig ist, den Abtastwert �0� oder �1�. Der abgetastete Wertim Register ist immer glitch-frei und für eine Taktperiode stabil.

TP

T

x

x’

x′x

ts thr, tdr

T

ts ts ts ts

txT txT

tdrthr

tdrthr

tdrthr

tdrthr

Erste Regel: Asynchrone Eingaben vor der Verarbeitung abtasten!

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 115/138

4. Asynchrone Eingabe 1. Abtastung

Fehler: Verarbeitung nicht abgetasteter Eingaben

x

y

y′

a a′

T

x f(..)y

th, td

w1 w2

f(w1, 1) f(w2, 1)f(w1, 0)

f(w0, 0) XX f(w2, 1)

y′

ts th

ts

ththtdtd td

a

T

a

T

Das Signal y wird aus einem zum Takt ausgerichteten Signal xund einem nicht ausgerichteten Signal a gebildet. Änderungenvon y, ausgelöst durch Änderungen von x sind zur nächsten akti-ven Takt�anke immer gültig, aber von a ausgelöste Änderungennicht. Wenn y ein Bitvektor ist, wird bei Abtastung auÿerhalbdes Gültigkeitsfensters ein nicht vorhersehbarer Bitvektor ausNullen und Einsen abgetastet. Unvorhersagbare Wirkung.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 116/138

4. Asynchrone Eingabe 1. Abtastung

x

y

y′

a a′

T

x f(..)y

th, td

w1 w2

f(w1, 1) f(w2, 1)f(w1, 0)

f(w0, 0) XX f(w2, 1)

y′

ts th

ts

ththtdtd td

a

T

a

T

Fakt 1

Jedes asynchrone Signal ist vor der Weiterverarbeitungabzutasten.

Vor der Verarbeitungsfunktion ist in den Signalpfad von a einRegister einzufügen.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 117/138

4. Asynchrone Eingabe 2. Entprellen

Entprellen

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 118/138

4. Asynchrone Eingabe 2. Entprellen

Entprellen von Schaltern und Tastern

Mechanische Eingabeelemente (Taster und Schalter) prellen. BeiBetätigung ist es schwer auszuschlieÿen, dass der Kontakt durchmechanische Schwingungen mehrfach ö�net und schlieÿt. ZuVerhinderung, dass das abgetastete Signal bei einerEinzelbetätigung mehrfach ein- und ausschaltet, ist dieAbtastperiode länger als die maximale Prellzeit zu wählen.

tPr

Abtastperiodemaximale Prellzeit

tP > tPr

&

Schaltung zur Erkennung derfallenden Flanken

tP

tPr

1011 00 01 11

T

x

x’

x”

x”x’

x”x’y

x

T

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 119/138

4. Asynchrone Eingabe 2. Entprellen

Zur Erzeugung eines Impulses bei einer Tasterbetätigung ist dasEingabesignal ein zweites mal abzutasten. Tasterbetätigungensind dann an der Abtastfolge �01� bzw. �10� zu erkennen.

tPr

Abtastperiodemaximale Prellzeit

tP > tPr

&

Schaltung zur Erkennung derfallenden Flanken

tP

tPr

1011 00 01 11

T

x

x’

x”

x”x’

x”x’y

x

T

Achtung, dass funktioniert nicht ohne die erste Abtastung, weil ysonst von einem asynchronen Signal abhängt.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 120/138

4. Asynchrone Eingabe 2. Entprellen

Beschreibung in VHDL

x

Tx’ x”

y&

th, td

y’

(Takt)

signal T, x, x_del, x_del2, y:

STD_LOGIC;

...

process(T)beginif RISING_EDGE(T) thenx_del <= x; �- Synthesebeschreibung

x_del2 <= x_del; �- der beiden Register

end if;end process;y <= not x_del and x_del2;

Wichtig ist, dassdas erste Register nicht vergessenund der Abtasttakt nicht gröÿer als die maximale Prellzeitgewählt wird.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 121/138

4. Asynchrone Eingabe 3. Asynchrone Initialisierung

Asynchrone Initialisierung

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 122/138

4. Asynchrone Eingabe 3. Asynchrone Initialisierung

Register mit asynchroner Initialisierung

Register haben in der Regel einen asynchron wirkenden Initiali-sierungseingang, der Vorrang vor der Datenübernahme mit demTakt hat, der aber nicht asynchron angesteuert werden darf.

I

x yx

I

T

signal x, y: tTyp;

signal T, I: std_logic;

...

process(T, I)

beginif I='1' theny <= aw;

elsif RISING_EDGE(T) theny <= x;

end if;end process;

(tTyp � std_logic oderstd_logic_vector;

aw � Anfangswert, den das Registerbei Initialisierung übernehmen soll).

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 123/138

4. Asynchrone Eingabe 3. Asynchrone Initialisierung

Potentielle Fehlfunktionen

Pulsdauer des Initialisierungssignals zu kurz:

01

01

w1 w2w0

w1 w2

T

x′x

I

f()

tsthf , tdfthr, tdr

yx’I

x

I

x

T≪ TP

y’

Selbst wenn das Eingaberegister seinen Anfangswert korrektübernimmt, liegt der Initialwert am Registerausgang zu kurzeZeit stabil an, so dass das nachfolgende Register im ersten Schritteinen ungültigen Wert übernimmt.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 124/138

4. Asynchrone Eingabe 3. Asynchrone Initialisierung

Bei Master-Slave-Registern wirkt die asynchrone Initialisierungauf den Slave. Sie muss mindestens eine Taktperiode anliegenund in der Masterphase deaktiviert werden.

Zeitfenster fur die Deaktivierungdes Initialisierungssignals

01

01T

I

w1 w2

w0 w1 w2

w0

z

y w1 w2

EEx

E

I

T

Symbol

Ix yI

zx

I

x

T

zSlaveMaster

x

II

yx

AW

Bei Deaktivierung in der Slave-Phase liegt der anschlieÿendübernommene Wert zu kurz am Registerausgang an, so dass dasRegister hinter den nachfolgenden Verarbeitungsfunktionmöglicherweise einen ungültigen Wert abtastet.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 125/138

4. Asynchrone Eingabe 3. Asynchrone Initialisierung

01

01

01

01

EEx

E

zyx

I

x

T

zy

SlaveMaster

x

II

I

T

Symbol

Ix yI

T

I

w1 w2

w0 w1 w2

w0

z

y w1 w2

AW oder w0

in der Slave-PhaseDeaktivierung von I

am Ende der Slave-PhaseDeaktivierung von I

T

I

w1 w2

w0 w1 w2

w0

z

y w0 w1 w2

≪ TP

x

AWAW

Bei Deaktivierung am Ende der Slave Phase ist es unsicher, obder Slave den Initialisierungswert behält oder den Wert vomMaster übernimmt.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 126/138

4. Asynchrone Eingabe 3. Asynchrone Initialisierung

Laufzeitrobuste Lösung Power-on-Reset-

Schaltung

≥1

T

I

TasteReset-

Abtasten

UVsignal T, I, I_POR,

I_Tast: STD_LOGIC;

...

I_POR <= '1', '0'

after 1 ms;

process(T)

begin

if RISING_EDGE(T) then

if I_POR='0' or I_Tast='0' then I<='1';

else I<='0';

end if;

end if;

end process;

Bildung eines Gesamtinitialisierungssignals und Ausrichtung ander aktiven Takt�anke durch Abtasten.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 127/138

4. Asynchrone Eingabe 4. Eingabesynchronisation

Eingabesynchronisation

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 128/138

4. Asynchrone Eingabe 4. Eingabesynchronisation

Unterschiedlich getaktete Teilsysteme

Beim Datenaustausch zwischen Teilsystemen mit zeitlichunausgerichteten Takten benötigt der Empfänger eineZusatzinformation über die Gültigkeitszeitpunkte. Bei einersynchronen Übertragung wird der Takt des Senders mitübertragen, bei der Fern- und Funkübertragung werden dieGültigkeitszeitpunkte an den Änderungszeitpunkten derDatensignale ermittelt.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 129/138

4. Asynchrone Eingabe 4. Eingabesynchronisation

Synchrone Schnittstelle

Im nachfolgenden Beispiel einer parallelen Datenübertragungwird der Sendetakt mit übertragen. Die übertragenen Daten sindjeweils ab der Takt�anke von Tx für eine Dauer tg gültig.

xw1 w2 w3 w4 w5

G

G

Tx’Tx

=1

x’

abgetastetes EingabesignalSystemtaktSendetaktasynchrones Eingabesignalx

Tx

Gx’

Gultigkeitssignal fur x’

T

T

Tx”

TPtg

w2w1w0 w3 w4 w5

w0x

Tx

T

x’

Tx’

Tx”

Der Empfänger muss Daten und Takt mit einer TaktperiodeTp < tg abtasten, um garantiert jeden gültigen Wert mindestenseinmal zu erfassen.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 130/138

4. Asynchrone Eingabe 4. Eingabesynchronisation

xw1 w2 w3 w4 w5

G

G

Tx’Tx

=1

x’

abgetastetes EingabesignalSystemtaktSendetaktasynchrones Eingabesignalx

Tx

Gx’

Gultigkeitssignal fur x’

T

T

Tx”

TPtg

w2w1w0 w3 w4 w5

w0x

Tx

T

x’

Tx’

Tx”

Die Eingabedaten sind immer genau dann neu und gültig, wennsich der Abtastwert des Sendetakts vom vorherigen Abtastwertunterscheidet d.h., wenn die EXOR-Verknüpfung des ein- undzweimal abgetasteten Sendetakts eins ist.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 131/138

4. Asynchrone Eingabe 4. Eingabesynchronisation

VHDL-Beschreibung der Synchronisationsschaltung

signal T, Tx, Tx_del, Tx_del2, G: STD_LOGIC;

signal x, y: STD_LOGIC_VECTOR(...);

...process(T)beginif RISING_EDGE(T) theny<= x;

if Tx='1' then tx_del <= '1';

else tx_del <= '0';

end if;tx_del2 <= Tx_del;

end if;end process;G <= Tx_del xor Tx_del2;

x

Tx’f(...)

=1G

schaltungSynchronisations-

y

TTx

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 132/138

4. Asynchrone Eingabe 4. Eingabesynchronisation

Zusammenfassung

Asynchrone Signale sind vor ihrer Verarbeitung abzutasten.Bei prellenden Signalen von mechanischen Kontakten mussdie Abtastperiode gröÿer als die maximale Prelldauer sein.Auch asynchrone Initialisierungssignale müssen vor denRegistern durch Abtasten synchronisiert werden.An Schnittstellen zwischen Systemen mit unterschiedlichenTakten muss der Empfänger der Empfangsdatensynchronisieren, d.h. am eigenen Takt ausrichten. DieGültigkeit wird erst danach anhand der abgetasteten Wertebestimmt.

Vergessen Abtastung hat manchem Studierenden imArbeitsbereich eine wochenwährende Fehlersuche eingebracht.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 133/138

4. Asynchrone Eingabe 5. Aufgaben

Aufgaben

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 134/138

4. Asynchrone Eingabe 5. Aufgaben

Aufgabe 4.1: Addition Schaltereingabe

UV Versorgungsspannung

Addiererschaltung

(Signalwert Eins)

(Signalwert Null)Bezugspotential

· · ·

T

+

UV

xn−1

x1

x0+

Unter welchen Betriebsbedingungen kann es zu einemunerwarteten Fehlverhalten kommen?Wie ist die Schaltung zu verändern, damit sie zuverlässigarbeitet?

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 135/138

4. Asynchrone Eingabe 5. Aufgaben

Aufgabe 4.2: Asynchrone parallele Übertragung

Bei einer asynchronen Übertragung seien die mit dem Signal xübertragenen Datenworte immer dann gültig, wenn das mitübertragene Gültigkeitssignal g 6= 0 ist:

Maximaldauer g =X

Periodendauer von gTPg

tgx

Mindestdauer g = 1tg1

Mindestdauer g = 0tg0

0g

x wi+1wi

tg1

TPg

tgxtg0

1

Mit welcher Taktfrequenz muss die Empfangsschaltung diebeiden Signale abtasten10?Wie ist das Gültigkeitssignal für die abgetastetenDatenworte zu bilden, damit es für jedes abgetastete gültigeDatenwort genau einen Takt lang aktiv ist?

10Zeit für g = 0 gleich Zeit für g = 1

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 136/138

4. Asynchrone Eingabe 5. Aufgaben

Aufgabe 4.3: Handtakt

Entwurf einer Schaltung mit Eingabetaste x, Eingabetakt T(fT = 50 MHz) und internem Taktteiler zur Erzeugung einesglitch- und prellfreien Handtakt Tout:

entity Handtakt isport(x: in std_logic; -- Eingabesignal von der Taste

T: in std_logic; -- 50MHz-Eingabetakt

Tout: out std_logic); -- glitch- und prellfreier Handtakt

end entity;

maximalen Prelldauer 20msminimale Betätigungszeit 100ms.Teilerverhältnis des Taktteilers sei eine Zweierpotenz.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 137/138

4. Asynchrone Eingabe 5. Aufgaben

1 Welchen Vorteil hat eine Zweierpotenz als Teilerverhältnis?(Hinweis, die Schaltung hat keinen Initialisierungseingang.)

2 Welche Werte darf das Taktteilerverhältnis haben?

3 Zeichnen der Gesamtschaltung mit dem Taktteiler alsBlack-Box.

4 Beschreiben der Gesamtschaltung in VHDL.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 17. Juni 2014 138/138