Forum: FPGA, VHDL & Co. Doppelte Zuweisung in VHDL ignoriert


von Paul (Gast)


Lesenswert?

Bedingt durch einen Tippfehler habe ich folgenden Konstrukt erzeugt:

if Bedingung then

    output <= internal_v2;

    output <= internal_v3;

end if;

d.h. das "else" wurde vergessen.

Komischerweise führt Xilinx nur den ersten Pfad aus und ignoriert den 
zweiten. Ich hätte erwartet, dass der zweite den ersten überschreibt (?)

Auch hätte ich gedacht, dass er meckert, weil er kein "else" sieht. Oder 
er müsste sich an der doppelten Zuweisung an sich stören, was er 
ansonsten ja auch tut.

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


Lesenswert?

Paul schrieb:
> Komischerweise führt Xilinx nur den ersten Pfad aus und ignoriert den
> zweiten. Ich hätte erwartet, dass der zweite den ersten überschreibt (?)
Das würde ich auch erwarten. Das entspräche dem Verhalten von Signalen 
in Prozessen. Folglich sieht dein fehlerbehafteter Code tatsächlich 
anders aus. Wie wäre es, wenn du den mal postest?

von Paul (Gast)


Lesenswert?

Ganz posten geht nicht, aber in dem Process ist sonst fast nichts drin.

Die Bedingung ist die Abfrage eines Zählerbits, die Zuweisung der 
Zählerstände oder eines Ersatzsignals an den Ausgang.

Komisch ....

von Georg A. (georga)


Lesenswert?

> Auch hätte ich gedacht, dass er meckert, weil er kein "else" sieht.

Häh?

> Oder er müsste sich an der doppelten Zuweisung an sich stören, was er
> ansonsten ja auch tut.

Häh^2?

Irgendwie lassen mich diese Aussagen etwas daran zweifeln, ob du weisst, 
was du tust...

von Rufus (Gast)


Lesenswert?

Georg A. schrieb:
> Irgendwie lassen mich diese Aussagen etwas daran zweifeln, ob du weisst,
> was du tust...

Kannst du das auch mal begründen?
Wenn der Code von Paul so stimmt, dann wundert mich das Verhalten von 
Xilinx auch.

von Georg A. (georga)


Lesenswert?

> Kannst du das auch mal begründen?

Es gibt weder Probleme mit fehlenden elses noch doppelten Zuweisungen 
(jedenfalls nicht innerhalb eines Prozesses und das ist aufgrund des ifs 
anzunehmen).

> Wenn der Code von Paul so stimmt, dann wundert mich das Verhalten von
> Xilinx auch.

Ich glaube eher, dass da alle entscheidenden Infos weggelassen wurden.

von Armin S. (arminst)


Lesenswert?

Georg A. schrieb:
>> Auch hätte ich gedacht, dass er meckert, weil er kein "else" sieht.
>
> Häh?
>
>> Oder er müsste sich an der doppelten Zuweisung an sich stören, was er
>> ansonsten ja auch tut.
>
> Häh^2?
>
> Irgendwie lassen mich diese Aussagen etwas daran zweifeln, ob du weisst,
> was du tust...

Ich kann mir kaum vorstellen, daß hier im Forum jemand auf derartige 
blödsinnige Kommentare wartet !

Ansonsten ist die Frage nach der doppelten Zuweisung grundsätzlich OK 
... auch wenn das Umfeld ungeklärt ist.

--Armin

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


Lesenswert?

Armin Steinhoff schrieb:
> Ansonsten ist die Frage nach der doppelten Zuweisung grundsätzlich OK
Das schon.
> ... auch wenn das Umfeld ungeklärt ist.
Aber das eben nicht. Nur ratloses Raten kann nicht das Ziel sein. Paul 
hääte seinen Teil dazu beisteuern können/sollen, um eine sinnvolle 
Diagnose zu erstellen, denn grundsätzlich meckert der Synthesizer 
nicht, wenn in einem Prozess mehrere Zuweisungen hintereinander kommen 
(das ist die Natur eines Prozesses). Deshalb ist die Verwunderung in 
beiden Fällen unbegründet:
>> Auch hätte ich gedacht, dass er meckert, weil er kein "else" sieht.
>> Oder er müsste sich an der doppelten Zuweisung an sich stören, was er
>> ansonsten ja auch tut.

von Georg A. (georga)


Lesenswert?

> Ich kann mir kaum vorstellen, daß hier im Forum jemand auf derartige
> blödsinnige Kommentare wartet !

Was ist daran blödsinnig? Die Aussagen im ersten Post sind ein 
deutlicher Wink mit dem Zaunpfahl, dass hier jemand die Funktionsweise 
von einem VHDL-Prozess nicht verstanden hat, aber erstmal bei den Tools 
den Fehler sucht. Und wenn dann der Super-Duper-Geheim-Code noch nicht 
mal mit einem vernünftigen Kontext gepostet werden kann/darf, dann wird 
es nicht besser.

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.