Hey! Ich muss für eine Übung die Testbench für den Datenpfad eines MIPS Prozessors schreiben. Die VHDL Datei ist vorgegeben, es muss also nur noch die Testbench geschrieben werden. Ich habe zuerst versucht über die Steuersignale die dezimal Zahl 7 abzuspeichern. Die Inputs werden auch laut GTKWave übernommen, aber nicht weiterverarbeitet. In der Wave sind die In-/Outputs mit uuuuuuu dargestellt. Mein Clock Zyklus läuft eigentlich, so dass die Bausteine bei aufsteigenden Flanken reagieren müssten, das tun sie aber nicht. Kann mich jemand in die richtige Richtung leiten, wo mein Fehler ist? Der Code ist als ZIP angehangen. Dort ist auch ein Screenshot der Wave zu finden. (Ich habe erst im Rahmen der Übung VHDL gelernt und bin daher ein blutiger Anfänger)
Dominik B. schrieb: > Der Code ist als ZIP angehangen. Die VHDL-Dateien hättest du einfacher mal als *.vhdl Dateien angehängt, dann müsste man nicht den Umweg über einen Entpacker machen. > In der Wave sind die In-/Outputs mit uuuuuuu dargestellt. U bedeutet "uninitialized" (nicht wie gern angenommen "undefined"), also dass seit Start der Simulation noch keiner einen anderen Wert auf das Signal getrieben hat. > Kann mich jemand in die richtige Richtung leiten, wo mein Fehler ist? Auf jeden Fall würde ich dafür sorgen, dass vor dem Wegnehmen des Resets alle Eingangssignale auf einem gültigen Pegel sitzen! Bei dir passiert das erst einen Takt später... Und dann würde ich noch klären, ob der Reset tatsächlich high-aktiv ist. BTW: ich würde das hier
1 | PROCESS BEGIN |
2 | for i in 0 to 60 loop |
3 | clk <= not clk after ClockPeriod / 2; --- das hier sieht übrigens |
4 | wait for 10 ns; --- überaus eigenartig aus... |
5 | end loop; |
6 | |
7 | wait; |
8 | END PROCESS; |
so abkürzen:
1 | clk <= not clk after ClockPeriod/2; |
Und auch die Definition der ClockPeriod sieht arg holprig aus:
1 | constant ClockFrequency : integer := 100e6; -- 100 MHz |
2 | constant ClockPeriod : time := 2000 ms / ClockFrequency; |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.