1. Schritt (c: Test in Betrieb nehmen)
Nachdem nun der Source-Code komplett ist, muss nur noch der Test durchgeführt werden.
Dazu starten wir die Behavioral Simulation. Mittels F3 (Run/Run all) wird die Testbench bis zum Ende ausgeführt. Im Waveform-Fenster wird mittels Ctrl-0 (View/Zoom Fit) erst einmal ein Überblick erstellt.
Nun werden die Signale noch wie im folgenden Bild angepasst:
Wie man sieht tritt schon am Anfang der Simulation ein Fehler auf. Den Grund findet man in der Ausgabedatei TestSysService.log:
Test Case 1: Reset condition
Expected TimeBase = 0 and TimeStamp = 0; Found TimeBase: 1, TimeStamp: 0: Failed!
Der erkannte Fehler liegt an der Testbench. Bit 0 der Zeitbasis muss natürlich dauernd gesetzt sein, da der 100 MHz Takt ja genau den 10 ns entspricht.
Es muss also der erwartete Wert in der Testbench angepasst werden. Anschließend wird mittels Run/Relaunch Simulation der Test erneut durchgeführt.
Der Test läuft nun problemlos durch, wie an der Waveform und der Logdatei zu sehen ist.
Testing SysService:
====================
Test Case 1: Reset condition
Expected TimeBase = 0 and TimeStamp = 0: passed.
Test Case 2: Check TimeStamp counting
TimeStamp is counting correctly: passed.
Test Case 3: Check TimeBase events
Waiting for TimeBase(1), expected TimeStamp: 9: passed.
Waiting for TimeBase(1), expected TimeStamp: 19: passed.
Waiting for TimeBase(2), expected TimeStamp: 99: passed.
Waiting for TimeBase(2), expected TimeStamp: 199: passed.
Waiting for TimeBase(3), expected TimeStamp: 999: passed.
Waiting for TimeBase(3), expected TimeStamp: 1999: passed.
Waiting for TimeBase(4), expected TimeStamp: 9999: passed.
Waiting for TimeBase(4), expected TimeStamp: 19999: passed.
Waiting for TimeBase(5), expected TimeStamp: 99999: passed.
Waiting for TimeBase(5), expected TimeStamp: 199999: passed.
Waiting for TimeBase(6), expected TimeStamp: 999999: passed.
Waiting for TimeBase(6), expected TimeStamp: 1999999: passed.
Waiting for TimeBase(5), expected TimeStamp: 2099999: passed.
Waiting for TimeBase(4), expected TimeStamp: 2109999: passed.
Waiting for TimeBase(3), expected TimeStamp: 2110999: passed.
Waiting for TimeBase(2), expected TimeStamp: 2111099: passed.
Waiting for TimeBase(1), expected TimeStamp: 2111109: passed.
Test completed successfully
Zoom in den Test
Nun zoomen wir noch in den Anfang des TestCase 3. Dazu klicken wir irgendwo in die TestCase Zeile und anschließend auf den Previous-Transition-Button links. Durch aufklappen von DecadeChainR und TimeBase und sukzessives Zoomen kommt man zu folgendem Bild:
Nun kann noch die Waveform-Konfiguration im Verzeichnis Sources\xilinx gesichert und dem Projekt hinzugefügt werden. Dies wird durch das Diskettensymbol erreicht.
Weiter zum 2. Schritt