Forum: FPGA, VHDL & Co. Clockfrequenz wechseln --> ModelSimError?


von Fellap (Gast)


Angehängte Dateien:

Lesenswert?

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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

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
von Fellap (Gast)


Lesenswert?

Super! Vielen Dank!!!! - Werde mich gleich mal damit befassen!!!

Nur mal aus Interesse... Kommt durch dieses "Force-Gemurkse" öfters 
Fehler zustande?

von Fellap (Gast)


Lesenswert?

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?

von Fellap (Gast)


Lesenswert?

PS: In anderen Foren habe ich gelesen, dass man auf UUT klicken müsse, 
aber UUT ist bei mir nicht vorhanden?!

von Fellap (Gast)


Lesenswert?

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 :-/

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.