Forum: FPGA, VHDL & Co. Variablen-Abfrage


von Franki (Gast)


Lesenswert?

Hi,

habe ein Problem bei der Verwendung von Variablen:


1
process(clk)
2
variable index : std_logic;
3
begin
4
    if rising_edge(clk) then
5
6
       ...
7
       index := data_in;
8
9
       if index = '1' then
10
11
       end if;
12
    end if;


Manchmal beobachte ich, dass "data_in" zwar high ist, dass aber die 
nachfolgende Abfrage "if index = '1'" nicht im gleichen Takt greift, 
sondern einen Takt später, d.h index wir einen Takt nach data_in high.

 Kann mir das jemand mal erklären ?

Grüße, Franki

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


Lesenswert?

> Manchmal beobachte ich
Wie beobachtest du das? Im Simulator?

von Franki (Gast)


Lesenswert?

Ja genau, im Simulator !

von don123456 (Gast)


Lesenswert?

Du hast ein FF gebaut data_in entspricht D und index ist der Ausgang 
(Q), dieser ändert sich erst nach dem Takt-Event.

lg
Dieter

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


Lesenswert?

> Ja genau, im Simulator
Zeig doch mal die entsprechende Waveform...

von Franki (Gast)


Lesenswert?

>Du hast ein FF gebaut data_in entspricht D und index ist der Ausgang
>(Q), dieser ändert sich erst nach dem Takt-Event.

Ist die Variable denn im Wave genau an derselben Position wie 
entsprechende Signal-Beschreibung ?

1
signal index : std_logic;
2
process(clk)
3
begin
4
    if rising_edge(clk) then
5
6
       ...
7
       index <= data_in;
8
9
       if index = '1' then
10
11
       end if;
12
    end if;

Grüße, Franki

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.