for_schleife mit std_logic Signal

Gast #3969454
Hallo,

ich habe folgendes Konstrukt:
1
signal s_signal1 : std_logic_vector( 7 DOWNTO 0);
2
signal s_signal2 : std_logic;
3
...
4
FOR i IN 0 TO 7 LOOP
5
  IF s_data_valid(i) = '1' THEN
6
    s_signal1(i) <= '1';
7
    s_signal2    <= '1';
8
  END IF;
9
END LOOP;

s_signal1 wird also komplett auf '1' gesetzt.
Aber was genau passiert mit s_signal2?

Nimmt es den Zustand von i=7 an, weil es die letzten Zuweisung im 
Prozess ist?
Oder ist sowas nicht erlaubt und der Compiler müsste eigentlich sowas 
wie "multiple drivers" melden, was er aber nicht tut?

Ich simuliere gerade an einer dieser Stellen und erhalte nicht das von 
mir erwartete Verhalten :)

Vielen Dank!
#3969498
for_user schrieb:
> Nimmt es den Zustand von i=7 an, weil es die letzten Zuweisung im
> Prozess ist?

Jein.
Vom größten i, bei dem s_data_valid(i) = '1' erfüllt war.

for_user schrieb:
> Oder ist sowas nicht erlaubt und der Compiler müsste eigentlich sowas
> wie "multiple drivers" melden, was er aber nicht tut?

Bei der Simulation gibt es keine "multiple drivers", nur bei der 
Synthese.
Außerdem hat man "multiple drivers" nur dann, wenn s_signal2 von 
unterschiedlichen Prozessen aus geschrieben wird.
Deine Loop Schleife ist aber innerhalb desselben Prozesses.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 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.