25.01.2014 Aufrufe

Prüfung - Institut für Kommunikationsnetze und Rechnersysteme ...

Prüfung - Institut für Kommunikationsnetze und Rechnersysteme ...

Prüfung - Institut für Kommunikationsnetze und Rechnersysteme ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Ein zweiter Ansatz zur Lösung des Problems ist, das Signal full durch ein Signal almost_full zu<br />

ersetzen. Dieses Signal soll nicht nur bei vollem FIFO aktiv werden, sondern auch dann, wenn<br />

das FIFO nur noch einen freien Eintrag enthält.<br />

Frage 5 a) Zeichnen Sie auch <strong>für</strong> diesen Fall ein Signal-Zeit-Diagramm entsprechend<br />

Frage 3a). In diesem Diagramm soll das Signal full durch das Signal<br />

almost_full ersetzt werden.<br />

b) Zeigt Ihre Simulation "von Hand" nun das gewünschte Verhalten? Begründen<br />

Sie Ihre Antwort!<br />

c) Ergänzen Sie den Prozess syncfifo_process in Bild 2 so, dass eine Variable<br />

fill_level geeigneten Typs stets den aktuellen Füllstand des FIFOs anzeigt.<br />

Leiten Sie aus dieser Variablen das Signal almost_full ab. Gehen Sie davon<br />

aus, dass das Signal almost_full als Port von SyncFIFO deklariert ist.<br />

Es genügt, die neu hinzukommenden Code-Teile anzugeben (einschließlich<br />

Variablendeklaration) mit einem kurzen Hinweis, an welcher Stelle im<br />

ursprünglichen Prozess der Code jeweils einzufügen ist.<br />

d) Ergänzen Sie den Prozess syncfifo_process entsprechend um die Erzeugung<br />

eines Signals almost_empty, das aktiv wird, wenn das FIFO leer ist oder nur<br />

noch einen gültigen Eintrag enthält. Leiten Sie auch almost_empty aus der<br />

Variablen fill_level ab. Gehen Sie davon aus, dass das Signal almost_empty<br />

als Port von SyncFIFO deklariert ist.<br />

Frage 6 a) Geben Sie analog zum Prozess source_process in Bild 3 einen Prozess<br />

sink_process an, der in der Komponente Sink (vgl. Bild 1) realisiert werden<br />

soll. Der Prozess soll mit der steigenden Flanke des Taktes rclk immer dann<br />

einen Eintrag aus dem FIFO entfernen, wenn almost_empty inaktiv ist. Die<br />

gelesenen Daten dürfen ignoriert werden.<br />

b) Könnte der Prozess sink_process anstelle des Signals almost_empty das<br />

Signal empty auswerten? Begründen Sie Ihre Antwort.<br />

Abschließend sollen Teile einer synthetisierbaren Implementierung der Komponente SyncFIFO<br />

betrachtet werden.<br />

Frage 7<br />

Aus welchem Gr<strong>und</strong> bzw. aus welchen Gründen ist der Prozess syncfifo_process<br />

in Bild 2 nicht synthetisierbar?<br />

Frage 8 a) Welche Probleme muss man in einem synthetisierbaren Modell des FIFOs<br />

lösen, wenn der Schreibindex windex synchron zum Takt wclk <strong>und</strong> der<br />

Leseindex rindex synchron zum Takt rclk modifiziert wird? Es genügt die<br />

Beschreibung der Probleme, eine Lösung ist nicht verlangt.<br />

b) Welche Probleme muss man in einem synthetisierbaren Modell des FIFOs<br />

lösen, wenn beide Indizes (d.h. Schreibindex windex <strong>und</strong> Leseindex rindex)<br />

synchron zum gleichen Takt modifiziert werden (wahlweise wclk oder<br />

rclk)? Es genügt wieder die Beschreibung der Probleme, eine Lösung ist<br />

nicht verlangt.<br />

Aufgabe 1 Seite 4

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!