Prüfung - Institut für Kommunikationsnetze und Rechnersysteme ...
Prüfung - Institut für Kommunikationsnetze und Rechnersysteme ...
Prüfung - Institut für Kommunikationsnetze und Rechnersysteme ...
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