Hallo zusammen, ich versuche gerade für meinen 8bit Deserializer eine Testbench zu schreiben, um die Funktion zu überprüfen. Bisher habe ich noch nicht viel mit Simulation zu tun gehabt, habe immer eher mit Chipsscope direkt in der Hardware gearbeitet/getestet. Nun wollte ich mir mit diesem einfachen Beispiel die Grundlagen erarbeiten. Ich denke die vhd Datei sollte in Ordnung sein, aber wo liegt der Fehler in der Testbench? Kann dort vielleicht jemand einen Fehler entdecken bzw. lässt sich der Testbench unter Modelsim ausführen? Ich arbeite unter einer Linuxumgebung, die mir noch etwas befremdlich ist. Bei dem Befehl run -all bleibt er irgendwie hängen bzw. verläuft sich ins Nirvana. Es gibt make files und Befehle zum Ausführen von Modelsim. Da mir diese Umgebung noch nicht vertraut ist und der zuständige Laboringenieur nicht greifbar ist, wollte ich nun auf diesem Wege erfragen, ob prinzipiell der Testbench so laufen könnte. Vielen Dank, Andreas
Irgendwie verhängt sich Deine Testbench in den loops. Ich hab das Ganze mel etwas vereinfacht.
1 | $ vlib work |
2 | $ vcom deseri.vhd |
3 | Model Technology ModelSim PE vcom 10.1 Beta 2 Compiler 2011.10 Oct 1 2011 |
4 | -- Loading package STANDARD |
5 | -- Loading package TEXTIO |
6 | -- Loading package std_logic_1164 |
7 | -- Compiling entity deseri |
8 | -- Compiling architecture rtl of deseri |
9 | $ vcom tb_deseri.vhd |
10 | Model Technology ModelSim PE vcom 10.1 Beta 2 Compiler 2011.10 Oct 1 2011 |
11 | -- Loading package STANDARD |
12 | -- Loading package TEXTIO |
13 | -- Loading package std_logic_1164 |
14 | -- Compiling entity sim_dut |
15 | -- Compiling architecture tb of sim_dut |
16 | $ vsim -gui sim_dut |
17 | VISM 1> add wave * |
18 | VSIM 2> run -all |
Duke
Duke Scarring schrieb: > Irgendwie verhängt sich Deine Testbench in den loops. Aber gleich so, dass der ISIM das ganze System lahmlegt. Da war erst mal ein Reboot fällig.... :-o Andreas B. schrieb: > Bei dem Befehl run -all bleibt er irgendwie hängen bzw. verläuft sich > ins Nirvana. Lass mal das ganze Gebastel mit deiner Ende-Abfrage der Simulationszeit weg, und probiers so:
1 | begin -- architecture -- |
2 | |
3 | DUT : deseri |
4 | port map ( ... ); |
5 | |
6 | clock_in <= not(clock_in) after clock_period/2; |
7 | data_in <= not(data_in) after data_period/2; |
8 | reset_n_in <= '1' after reset_time; |
9 | |
10 | check_simzeit : process |
11 | begin
|
12 | wait for SimZeit; |
13 | assert false report "Simulation durch" severity failure; |
14 | end process; |
15 | |
16 | end tb; -- architecture -- |
BTW:
> der Testbench
DIE Testbench
Hallo und vielen Dank! Da habe ich wohl wieder alles verkompliziert. Andreas
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.