Hardware Reference
In-Depth Information
In der Initialisierungsschleife wird in jedem Schritt ein Eingabewert aus der
Datei gelesen, die Prozedur »InitStep(...)« aufgerufen und ein Takt gewartet.
Der Start- und der Normalzyklus sind zusammengefasst. Die Unterscheidung
im Ablauf erfolgt mit der prozessinternen Variablen »InitRdy«, die im ers-
ten Zyklus nach der Initialisierung die Ausgabe unterdrückt. Die Hauptarbeit
leistet die Prozedur »NormalStep(...)«. Bei dem Koe zientenzählstand »0«
(Übernahme eines neuen Eingabewertes) wird zusätzlich vor dem Verarbei-
tungsschritt ein Wert aus der Datei gelesen und bei dem Koe zientenzähl-
stand »2« erfolgt zusätzlich nach der Warteanweisung ab dem zweiten Zyklus
eine Ausgabe.
Die Textausgaben werden mit den für Textobjekte vom Typ »tString« im
Package »Tuc.Ausgabe« definierten Prozeduren
• assign(Textobjekt, Text): alten Text löschen und neuen Text zuweisen,
• append(
Textobjekt
,
Text
): neuen Text anhängen und
• write(
Textobjekt
): Text auf dem Bildschirm ausgeben
erzeugt (siehe Abschnitt 3.3). Die Str-Funktionen für die Umwandlung der
projektspezifischen Datentypen »tDaten« etc. in Textdarstellungen sind mit
im Package »P5.2/FIR1_pack.vhdl« definiert. Sie sind ähnlich wie die bereits
behandelten Str-Funktionen aufgebaut und repräsentieren einen erheblichen
Anteil des Gesamtprogrammieraufwands.
Die Darstellung der Testausgaben hat entscheidenden Einfluss darauf, ob
fehlerhafte Zustände und Ausgaben bei der Simulation als solche erkannt wer-
den. Für die Kontrolle von Pipeline-Operationen ist die in Abb. 5.8 dargestell-
te Tabellenform zu empfehlen. Die durch einen einfachen Strich getrennten
Spalten gehören zur selben Pipeline-Phase. Nach einem Doppelstrich beginnt
die nächste Pipeline-Phase. Ungültige Werte werden durch »XX« dargestellt.
Zum Simulationsbeginn sind nur die Koe zienten- und die Datenadresse gül-
tig. Die Werte im Datenspeicher sind alle ungültig und werden von der höchs-
ten Adresse absteigend mit den ersten Eingabewerten beschrieben. Der Da-
tenwert für den niederwertigsten Speicherplatz wird - wie in Abb. 5.6 festge-
Eingabe:|cAdr|xAdr|| cDat| xDat||Prod|Akku|| r(0) r(1) r(2) r(3)|Ausgabe:
100.0| 1| 3|| XX| XX|| XX| XX|| XX XX XX XX|
200.0| 2| 2|| XX| XX|| XX| XX|| XX XX XX 100.0|
300.0| 3| 1|| XX| XX|| XX| XX|| XX XX 200.0 100.0|
400.0| 0| 0|| XX| XX|| XX| XX|| XX 300.0 200.0 100.0|
| 1| 1||0.2000| 400.0|| XX| XX|| 400.0 300.0 200.0 100.0|
| 2| 2||0.5000| 300.0|| 80.0| XX|| 400.0 300.0 200.0 100.0|
| 3| 3||-0.5000| 200.0|| 150.0| 80.0|| 400.0 300.0 200.0 100.0|
600.0| 0| 3||-0.2000| 100.0||-100.0| 230.0|| 400.0 300.0 200.0 100.0|
| 1| 0||0.2000| 600.0|| -20.0| 130.0|| 400.0 300.0 200.0 600.0|
| 2| 1||0.5000| 400.0|| 120.0| 110.0|| 400.0 300.0 200.0 600.0| 110.0
| 3| 2||-0.5000| 300.0|| 200.0| 120.0|| 400.0 300.0 200.0 600.0|
-600.0| 0| 2||-0.2000| 200.0||-150.0| 320.0|| 400.0 300.0 200.0 600.0|
| 1| 3||0.2000|-600.0|| -40.0| 170.0|| 400.0 300.0-600.0 600.0|
| 2| 0||0.5000| 600.0||-120.0| 130.0|| 400.0 300.0-600.0 600.0| 130.0
Abb. 5.8. Simulationsausgaben des FIR-Filtermodells (r(i) - Abkürzung für
xRAM(i))
Search WWH ::




Custom Search