25.01.2014 Aufrufe

Musterlösung - Institut für Kommunikationsnetze und ...

Musterlösung - Institut für Kommunikationsnetze und ...

Musterlösung - Institut für Kommunikationsnetze und ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Universität Stuttgart<br />

INSTITUT FÜR<br />

KOMMUNIKATIONSNETZE<br />

UND RECHNERSYSTEME<br />

Prof. Dr.-Ing. Dr. h. c. mult. P. J. Kühn<br />

<strong>Musterlösung</strong><br />

Termin:<br />

Entwurf digitaler Systeme<br />

12. Oktober 2007<br />

Aufgabe 1<br />

USB Schnittstelle<br />

Frage 1 a) Wie lange liegt ein einzelnes Bit im Falle der drei Übertragungsraten<br />

9 Punkte jeweils am Sender an?<br />

Low Speed: 667 ns<br />

Full Speed: 83 ns<br />

High Speed: 2.1 ns<br />

b) Wie viele Bits befinden sich bei den drei Übertragungsraten bei einem<br />

Kabel maximaler Länge <strong>und</strong> maximaler Verzögerung jeweils maximal<br />

gleichzeitig auf der Leitung?<br />

Übertragungsdauer 5 m * 5.2 ns/m = 26 ns<br />

Low Speed <strong>und</strong> High Speed: Werte von maximal 2 Bits auf der Leitung<br />

High Speed: Werte von maximal 14 Bits auf der Leitung<br />

c) Welche der drei Übertragungsraten erfordern Vorkehrungen gegen Reflexionen?<br />

Verwenden Sie die Abschätzungsformel aus dem Manuskript.<br />

Gehen Sie näherungsweise von Signalanstiegs- <strong>und</strong> Signalabfallzeiten von<br />

jeweils etwa 20% der Bitdauer aus. Beachten Sie die maximal zulässige<br />

Kabellänge.<br />

v = 1m/5.2ns = 19cm/ns (ca 20 cm/ns)<br />

Low Speed: (t r * v) / 2 = 13.34 m<br />

Full Speed: (t r * v) / 2 = 1.66 m<br />

High Speed: (t r * v) / 2 = 4.2 cm<br />

Fazit: Bei einer Kabellänge von 5 m erfordern der Full Speed Modus <strong>und</strong><br />

der High Speed Modus Vorkehrungen gegen Reflexionen.


Frage 2 a) Wie groß sollte laut Hersteller der Wellenwiderstand der Leiterbahnen <strong>für</strong><br />

8 Punkte die USB-Leitungen D+ <strong>und</strong> D– gegen Masse jeweils sein?<br />

45Ω<br />

b) Warum ist es im Low Speed <strong>und</strong> im Full Speed Modus nicht möglich, die<br />

Leitungen D+ <strong>und</strong> D– am Leitungsende mit einem Pull-up oder Pull-down<br />

Widerstand so abzuschließen, dass Anpassung herrscht?<br />

Die Spannungsdifferenz (voltage swing) in diesen Modi beträgt mindestens<br />

2.5 Volt. Da es sich um bidirektionale Leitungen handelt, muss jede Leitung<br />

an beiden Enden abgeschlossen werden. Daraus ergibt sich eine statische<br />

Treiberbelastung von I = U / (Z / 2) = 2.5V / 22.5 Ω = 111 mA. Treiber mit<br />

derartig hoher Leistung lassen sich nicht integrieren <strong>und</strong> verursachen große<br />

Störungen. Außerdem ist die daraus resultierende Leistungsaufnahme <strong>für</strong><br />

typische USB-Geräte viel zu groß.<br />

c) Warum ist es im High Speed Modus möglich?<br />

Wegen der "low voltage swing"-Signalpegel im High Speed Modus beträgt<br />

die statische Belastung <strong>für</strong> die Treiber in diesem Fall nur noch 350 mV /<br />

22.5 Ω = 16 mA.<br />

Frage 3 a) Entnehmen Sie der Tabelle die Funktion der vier Pins im Full Speed Modus<br />

16 Punkte (Hinweis: Dieser Modus schließt dem Low Speed Modus mit ein.)<br />

DP: Eingang <strong>für</strong> D+<br />

DM: Eingang <strong>für</strong> D–<br />

RSDP: Ausgang <strong>für</strong> D+<br />

RSDM: Ausgang <strong>für</strong> D–<br />

b) Spekulieren Sie über die Bedeutung von "RS" in den Signalbezeichnungen<br />

RSDP <strong>und</strong> RSDM.<br />

R S : Series Resistor, Serienwiderstand.<br />

c) Welche Funktion erfüllen die Widerstände R4 <strong>und</strong> R5 in der Beispielbeschaltung<br />

im Full Speed Modus? Erklären Sie, auf welche Weise diese<br />

Widerstände Reflexionen entgegenwirken.<br />

Diese Widerstände sorgen <strong>für</strong> Anpassung beim Sender anstatt, wie sonst<br />

üblich, beim Empfänger. Die Signalwelle wird vom Empfänger wegen der<br />

hohen Eingangsimpedanz zunächst zurück zum Sender reflektiert. Dort<br />

herrscht wegen der Serienschaltung aus niedriger Treiberimpedanz<br />

(wenige Ω) <strong>und</strong> dem Serienwiderstand Anpassung, d.h. die Welle wird<br />

absorbiert.<br />

d) Wie nennt man diese Form des Leitungsabschlusses?<br />

Serienterminierung (series termination, source termination)<br />

Aufgabe 1 Seite 2


e) Warum ist diese Terminierungsform <strong>für</strong> den High Speed Modus nicht geeignet?<br />

Der Serienwiderstand bildet zusammen mit dem Kapazitätsbelag der Leitung<br />

ein RC-Glied, das als Tiefpass wirkt. Dieser Tiefpass dämpft die <strong>für</strong><br />

den High Speed Modus erforderlichen hohen Frequenzen zu stark.<br />

Frage 4 a) Entnehmen Sie der Tabelle die Funktion der Pins DP <strong>und</strong> DM im High<br />

11 Punkte Speed Modus.<br />

DP: bidirektionale Leitung <strong>für</strong> D+<br />

DM: bidirektionale Leitung <strong>für</strong> D–<br />

b) Welche Funktion erfüllen die Widerstände R4 <strong>und</strong> R5 in der Beispielbeschaltung<br />

nun?<br />

Sie wirken als parallele Abschlusswiderstände.<br />

c) Wie muss der Baustein die Pins RSDP <strong>und</strong> RSDM im High Speed Modus<br />

schalten?<br />

Auf ein konstantes Potential mit geringem Innenwiderstand (wenige Ω).<br />

d) Wie nennt man diese Form des Leitungsabschlusses?<br />

Parallele Terminierung<br />

Frage 5 a) Warum sollen die Leiterbahnen <strong>für</strong> D+ <strong>und</strong> D– möglichst die gleiche Länge<br />

9 Punkte aufweisen?<br />

Damit die Signale beim Empfänger nicht versetzt ankommen.<br />

b) Warum soll die Anzahl von Durchkontaktierungen (vias) <strong>und</strong> Kurven (curves)<br />

so klein wie möglich gehalten werden?<br />

Durchkontaktierungen <strong>und</strong> Kurven führen zu Inhomogenitäten im Wellenwiderstand,<br />

die wiederum zu Reflexionen führen.<br />

c) Warum sollen die in der Beispielbeschaltung fett gezeichneten Leitungen so<br />

kurz wie möglich gehalten werden? Warum ist die Leiterbahnlänge der<br />

nicht fett gezeichneten Leitungsteile nicht so entscheidend?<br />

Die fett gezeichneten Teile realisieren den Leitungsabschluss. Es soll verhindert<br />

werden, dass die Leiterbahnen zwischen Abschlusswiderstand <strong>und</strong><br />

dem Chip auch als Leitungen im leitungstheoretischen Sinne betrachtet<br />

werden müssen.<br />

Die nicht fett gezeichneten Leitungsteile gehören bereits zur eigentlichen<br />

Leitung. Sofern der Wellenwiderstand der Leiterbahnen korrekt ist <strong>und</strong> die<br />

Kombination aus USB-Buchse <strong>und</strong> Stecker keine wesentliche Inhomogenität<br />

verursacht, kommt es auf diesem Leitungsstück zu keinen zusätzlichen<br />

Reflexionen.<br />

d) Warum darf die Versorgungslage unter den Leiterbahnen <strong>für</strong> D+ <strong>und</strong> D–<br />

keine Lücke (power plane void) aufweisen?<br />

Weil sich der Wellenwiderstand des Leitungsstückes über der Lücke ändert.<br />

Aufgabe 1 Seite 3


Aufgabe 2<br />

VHDL-Entwurf<br />

Frage 1<br />

2 Punkte<br />

Frage 2<br />

6 Punkte<br />

Frage 3<br />

3 Punkte<br />

Teil 1<br />

Frage 4<br />

2 Punkte<br />

Geben Sie <strong>für</strong> das in Bild 1 gezeichneten Beispiel den Wert des Feldes mit den<br />

Koordinaten (X = 9, Y = 3) an.<br />

(true, destroyer, vertical, 2, false)<br />

Geben Sie den vollständigen Package Body des Packages types2 an.<br />

package body types2 is<br />

pure function ship_class_to_length(ship_class :<br />

ship_class_type)<br />

return positive is<br />

type lut_type is array(ship_class_type) of positive;<br />

constant lut : lut_type :=<br />

(carrier=>4, destroyer=>3, cruiser=>2, submarine=>1);<br />

begin<br />

return lut(ship_class);<br />

end function ship_class_to_length;<br />

end package body types2;<br />

Aus welchem Gr<strong>und</strong> wurden die Deklarationen in zwei Packages untergliedert<br />

<strong>und</strong> nicht in einem einzigen Package zusammengefasst?<br />

Aus Modularisierungsgründen:<br />

• Das Package types1 enthält ausschließlich die Deklarationen, die zur<br />

Beschreibung der Schnittstellen des aktiven <strong>und</strong> passiven Spielers benötigt<br />

werden.<br />

• Das Package types2 enthält demgegenüber die Deklarationen, die von der<br />

Implementierung des passiven Spielers benötigt werden.<br />

Abstraktes Verhaltensmodell<br />

Geben Sie die Entity passive_player als VHDL-Beschreibung an.<br />

use work.types1.all;<br />

entity passive_player<br />

port(<br />

target : in coord_type;<br />

result : out result_type<br />

);<br />

end entity passive_player;<br />

Aufgabe 2 Seite 4


Frage 5<br />

5 Punkte<br />

Simulieren Sie die oben angegebene Funktion fire mit dem Parameter<br />

target = (2, 4) "von Hand". Gehen Sie davon aus, dass die Variable board<br />

entsprechend Bild 1 initialisiert wurde.<br />

Geben Sie dazu in einer Tabelle die Werte der Variablen ship_length,<br />

first_field_coord, current_field, number_of_hits, i <strong>und</strong><br />

result vor Eintritt in die entsprechende Schleife, am Ende jedes Schleifendurchlaufs<br />

sowie unmittelbar vor dem Funktionsende an.<br />

Vor Eintritt in<br />

Schleife<br />

Ende Schleifendurchlauf<br />

i = 0<br />

Ende Schleifendurchlauf<br />

i = 1<br />

Ende Schleifendurchlauf<br />

i = 2<br />

Ende Schleifendurchlauf<br />

i = 3<br />

Vor Funktionsende<br />

ship<br />

length<br />

first<br />

field<br />

coord<br />

current field<br />

number<br />

of<br />

hits<br />

4 (1,4) (true, carrier, horizontal, 1, false) 0 - hit<br />

4 (1,4) (true, carrier, horizontal, 1, false) 0 0 hit<br />

4 (1,4) (true, carrier, horizontal, 1, false) 1 1 hit<br />

4 (1,4) (true, carrier, horizontal, 1, false) 1 2 hit<br />

4 (1,4) (true, carrier, horizontal, 1, false) 1 3 hit<br />

4 (1,4) (true, carrier, horizontal, 1, false) 1 - hit<br />

i<br />

result<br />

Frage 6<br />

6 Punkte<br />

Die gegebene Verhaltensbeschreibung ist nicht synthetisierbar. Warum? Geben<br />

Sie mögliche Gründe da<strong>für</strong> an.<br />

Gr<strong>und</strong>sätzlich gilt: Beschreibungen, denen ein Modell auf der Register-Transfer-<br />

Ebene zugr<strong>und</strong>e liegt, sind mit hoher Wahrscheinlichkeit synthetisierbar.<br />

Mögliche Probleme der gegeben Beschreibung:<br />

• wait-Anweisung:<br />

• wait-Anweisungen an beliebiger Stelle (nicht am Anfang/Ende eines<br />

Prozesses)<br />

• Warten auf einen Vorgangs (transaction) statt auf ein Ereignis (event)<br />

• Fehlen eines Taktsignals<br />

• board <strong>und</strong> live_ships_count müssen als Speicher/Register realisiert<br />

werden. Wie genau dies zu geschehen hat, ist unklar. Beispielsweise muss<br />

in einem Simulationszyklus auf bis zu vier Elemente der Variable board<br />

zugegriffen werden.<br />

• Schleifen müssen <strong>für</strong> die Synthese "abgerollt" werden. Dies ist im vorliegenden<br />

Fall schwierig, da die Anzahl der Schleifendurchläufe nicht im voraus<br />

bekannt ist.<br />

Aufgabe 2 Seite 5


Frage 7<br />

4 Punkte<br />

Teil 2<br />

Frage 8<br />

4 Punkte<br />

Könnte die Anweisung wait on target’transaction in der Endlosschleife<br />

des Prozesses main durch die Anweisung wait on target ersetzt<br />

werden? Beziehen Sie Ihre Antwort auf den vorliegenden Fall!<br />

Durch das Warten auf eine Transaction wird die Funktion fire auch dann ausgeführt,<br />

wenn nacheinander mehrere Male auf dasselbe Feld gefeuert wird. Wird<br />

ein Schiff versenkt, liefert die Funktion beim ersten Aufruf sunk, bei folgenden<br />

Aufrufen mit den gleichen Koordinaten nur noch hit.<br />

Wartet man stattdessen auf ein Event, so wird die Funktion fire nur ein Mal<br />

ausgeführt, wenn nacheinander mehrere Male auf dasselbe Feld gefeuert wird.<br />

Das bedeutet, dass das Signal result bei wiederholten Schüssen auf dasselbe<br />

Feld seinen ursprünglichen Wert behält <strong>und</strong> darüber hinaus auch keine Transaction<br />

aufweist.<br />

Schließt man den Fall aus, dass mehrere Male auf dasselbe Feld gefeuert werden<br />

kann, so verhalten sich die beiden unterschiedlichen Wait-Anweisungen identisch.<br />

Synthetisierbares RTL-Modell<br />

Aus welchen Gründen muss die Schnittstelle des synthetisierbaren Modells von<br />

der des abstrakten Modells aus Teil 1 abweichen?<br />

• Als synchrones System muss die Realisierung mit einem Takt- <strong>und</strong> Reset-<br />

Signal versorgt werden.<br />

• Damit aktiver <strong>und</strong> passiver Spieler Daten austauschen können, muss ein<br />

Protokoll definiert werden, dass anzeigt, wann die ausgetauschten Daten<br />

gültig sind. Hier<strong>für</strong> sind zusätzliche Steuerleitungen nötig.<br />

Anmerkung: In der Realisierung aus Teil 1 wurde dem Gegenspieler das<br />

Anliegen neuer Daten implizit durch das Auftreten von Transactions (Vorgängen)<br />

auf den Datensignalen angezeigt.<br />

Aufgabe 2 Seite 6


Frage 9<br />

12 Punkte<br />

a) Zeichnen Sie ein Blockschaltbild auf Register-Transfer-Ebene, das in seiner<br />

Funktion mit obiger Architecture übereinstimmt. Verwenden Sie ausschließlich<br />

Elemente der Register-Transfer-Ebene wie beispielsweise Register,<br />

Multiplexer, Addierer <strong>und</strong> ggf. einzelne Gatter.<br />

sub_value<br />

load_value<br />

command1<br />

command0<br />

#1<br />

+ + + -<br />

01<br />

10 11<br />

>=1<br />

ena<br />

coord<br />

b) Warum sind die internen Verbindungsleitungen in Ihrem Blockschaltbild in<br />

der Architecture behav als Variablen <strong>und</strong> nicht als Signale realisiert?<br />

Allgemein gilt:<br />

• Variablen halten Zwischenergebnisse innerhalb eines einzelnen Prozesses.<br />

• Signale dienen der Kommunikation zwischen Prozessen.<br />

In der Architecture behav sind sämtliche Verbindungsleitungen Teil eines<br />

einzigen Prozesses <strong>und</strong> werden deshalb als Variablen realisiert.<br />

Aufgabe 2 Seite 7


c) In welcher Form müsste man die Architecture prinzipiell beschreiben, damit<br />

diese Verbindungsleitungen in VHDL tatsächlich als Signale modelliert<br />

werden?<br />

Die im Blockschaltbild verwendeten Elemente der Register-Transfer-Ebene<br />

(Addierer, Multiplexer, Register, Oder-Gatter) müssten jeweils als seperate<br />

Prozesse (oder Components) modelliert werden.<br />

Frage 10 a) Wie viele Einträge muss der Speicher aufweisen, wenn die Einheit<br />

8 Punkte generate_address das Signal selected_address auf folgende<br />

Weise erzeugt?<br />

selected_address


c) Geben Sie einen Prozess zur Ermittlung des Folgezustands des Automaten<br />

an.<br />

process(current_state, target_valid, rdata.is_ship,<br />

rdata.ship_class, hit_count, ship_count_is_zero) is<br />

begin<br />

case current_state is<br />

when IDLE =><br />

if target_valid = ’1’ then<br />

next_state <br />

if rdata.is_ship = false then<br />

next_state next_state next_state next_state next_state <br />

next_state <br />

next_state <br />

next_state <br />

next_state <br />

if class_to_length(rdata.ship_class) =<br />

to_integer(hit_count) then<br />

next_state


d) Geben Sie einen separaten Prozess zur Erzeugung der Ausgangssignale an.<br />

process(current_state) is<br />

begin<br />

result_valid

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!