Variablen-Abfrage

Gast #1683782
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
Gast #1684192
>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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.