Hallo, Wenn ich bei Modelsim, eine Clock anfangs einstelle und danach zu einem beliebigen Zeitpunkt die Clock-Eigenschaften wechsle, dann kommen nach ein paar Perioden seltsame "Spruenge"... (Siehe Anhang) Bis zum Cursor1 (ganz links) habe ich einen Takt von 25 us eingestellt. ab dem 1ten cursor habe ich dann die Clock auf 26 us erhoeht. Beim 2ten und dritten Cursor kommen dann diese Spruenge.. immer wieder periodisch... Weiss einer vll. wieso? Vielen Dank im voraus. add wave -position insertpoint sim:/test/* force -freeze sim:/test/signal1 1 0, 0 {10000 ps} -r 20ns force -freeze sim:/test/signal2 1 0, 0 {12500000 ps} -r 25us run run force -freeze sim:/test/signal2 1 0, 0 {13000000 ps} -r 26us run
Lass das Gemurkse mit dem Force sein. Du kannst doch VHDL. Da hast du das in 10 Minuten erschlagen. Hier mal eine einfache Umschaltung von Periodendauer 40ns auf 30ns zum Zeitpunkt 1ms:
1 | LIBRARY ieee; |
2 | USE ieee.std_logic_1164.ALL; |
3 | |
4 | ENTITY tb_clkswitch IS |
5 | -- Leere Entity --> Testbench!
|
6 | END tb_clkswitch; |
7 | |
8 | ARCHITECTURE behavior OF tb_clkswitch IS |
9 | |
10 | COMPONENT blinky --> der Prüfling! |
11 | PORT( |
12 | clk : IN std_logic; |
13 | led : OUT std_logic |
14 | );
|
15 | END COMPONENT; |
16 | |
17 | signal clk : std_logic := '0'; |
18 | signal led : std_logic; |
19 | |
20 | signal clk_period : time; |
21 | |
22 | BEGIN
|
23 | uut: blinky PORT MAP ( clk => clk, led => led ); --> der Prüfling wird verdrahtet. |
24 | |
25 | clk <= not clk after clk_period/2; --> Takterzeugung |
26 | |
27 | clk_period <= 40000 ps, 30000 ps after 1 ms; --> Taktfrequenz umschalten |
28 | |
29 | END; |
Wie das in VHDL mit der Testbench geht, findest du dort: http://www.lothar-miller.de/s9y/archives/81-Xilinx-ISE-Step-by-Step.html
:
Bearbeitet durch Moderator
Super! Vielen Dank!!!! - Werde mich gleich mal damit befassen!!! Nur mal aus Interesse... Kommt durch dieses "Force-Gemurkse" öfters Fehler zustande?
Lothar Miller schrieb: > Wie das in VHDL mit der Testbench geht, findest du dort: > http://www.lothar-miller.de/s9y/archives/81-Xilinx-ISE-Step-by-Step.html Ist es mit der Testbench auch einfach möglich, die internen Signale in der Wave-Umgebung anzeigen zu lassen? (Quasi wie wenn ich direkt das VHDL-File simuliere ohne Testbench) Oder muss ich für jedes interne Signal, welches ich gerne angezeigt haben moechte,ein neuen Port erstellen?
PS: In anderen Foren habe ich gelesen, dass man auf UUT klicken müsse, aber UUT ist bei mir nicht vorhanden?!
Fellap schrieb: > Lothar Miller schrieb: >> Wie das in VHDL mit der Testbench geht, findest du dort: >> http://www.lothar-miller.de/s9y/archives/81-Xilinx-ISE-Step-by-Step.html > > Ist es mit der Testbench auch einfach möglich, die internen Signale in > der Wave-Umgebung anzeigen zu lassen? (Quasi wie wenn ich direkt das > VHDL-File simuliere ohne Testbench) > > Oder muss ich für jedes interne Signal, welches ich gerne angezeigt > haben moechte,ein neuen Port erstellen? Oh okay.. habs :) Fellap schrieb: > PS: In anderen Foren habe ich gelesen, dass man auf UUT klicken müsse, > aber UUT ist bei mir nicht vorhanden?! Sorry für Spam :-/
Nur falls jemand mal wieder danach sucht... Fellap schrieb: > PS: In anderen Foren habe ich gelesen, dass man auf UUT klicken müsse, > aber UUT ist bei mir nicht vorhanden?! UUT heißt "Unit Under Test" (= "der Prüfling") und das ist der Defaultname von Xilinx beim auomatischen Erstellen einer Testbench. Das sieht man auch in meinem Beispiel oben. Man findet diese internen Signale in Modelsim (und in anderen Simulatoren) so wie im Beitrag "Modelsim: locale Signale anzeigen" beschrieben ist.
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.