TGI Praktikum |
Aufgabenbereich VHDL - Projekt 31
Auswertung und Test |
Waveforms
Zum Schluss solte man überprüfen, ob die Schaltung auch den gewünschten Algorithmus
realisiert. Variante 2 wurde hierfür mit dem Simulator ALDEC Active VHDL (Version 2.3) getestet.
Die dafür entwickelte Testbench
testet die Schaltung mit Eingangswerten von "00000000" bis "11111111", indem sie
kontinuierlich um "00000001" erhöht. Alle
25 ns wechselt das Signal tempclk, das für unsere Schaltung als Enablebit cs verwendet wird,
zwischen den Werten '1' und '0'. Damit auch der Fall "Register gleich Eingang" zu sehen ist, wechseln
die Eingangssignale ihren Wert nur zu jeder zweiten fallende Taktflanke.
Da unser zu testendes Bauteil regchange auf einem cs-Prozess mit fallender Taktflanke reagiert, werden
die entsprechenden Eingangssignale von der Testbench mit fallender Taktflanke geändert. Damit wird verhindert,
dass zum gleichen Zeitpunkt am Eingangsbus e geschrieben und gelesen wird, was zu einer um einen Takt
verspäteten Auslösung des Prozesses in regchange führen würde.
Nun ein kleiner Ausschnitt aus der Waveform.
Ein paar Werte haben wir noch sozusagen "per Hand" getestet, da sie teilweise von der Testbench nicht beachtet
werden.
Zuallererst schauen wir uns den Ausgangszustand an. Wie man sieht, sind alle Signale auf 'U' und das Register wie
gewünscht auf "XXXXXXXX".
Beim nächsten Beispiel wurde kein Eingangssignal angelegt, wie man sehen kann, reagiert die
Schaltung korrekt darauf. Sie setzt den Ausgang auf den ihr zur Verfügung stehenden Registerwert,
nämlich "XXXXXXXX".
Interessant ist auch, wie die Schaltung reagiert, wenn nicht alle Eingangssignale vorhanden sind.
Im unteren Beispiel ist dies der Fall. Hier wird nur das erste Bit des Eingangsvektors bestimmt.
In der Simulation wird dann auch nur dieses eine Bit definitiv übertragen. alle anderen Bits
(sowohl im Register als auch am Ausgang) bleiben "don't care".
Zu guter Letzt noch ein aufgeschlüsseltes Beispiel mit verschiedenen, von Hand während der Simulationszeit eingegebenen Eingangssignalen:
Bei fallender Taktflanke werden die Eingangssignale angelegt. Die Schaltung reagiert, wie es auch sein sollte,
bei der nächsten steigenden Flanke. Sie überprüft, ob der Eingang gleich dem Register ist, und
schreibt, da dies nicht der Fall ist den neuen Wert in das Register. Nun ändert sich aber der Eingang erst bei
der übernächsten Taktflanke, also bleibt der Wert des Registers unverändert.
Die Funktion der Schaltung entspricht also genau der Aufgabenstellung. Wir sind fertig!
zurück | 20.01.01 Katrin Stedele, Rainer Schmoll, Tanja Wojak |