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;
|