Forum: FPGA, VHDL & Co. Keine Konvertierung in std_logic_vector möglich


von Hans-Werner (Gast)


Lesenswert?

data_in wird als natural in einer Schleife hochgezählt.
Also 0,1,2,3 usw.

signal data_in, data_out : natural range 0 to 2 ** 
data_width_testbench-1;

data_in_cam welches eine Zeile tiefer ebenfalls in der Schleife steht 
wird auch hochgezählt, allerdings stehen anstelle von einsen X im 
std_logic_vector.
Also hier mal binär: 00000000, 0000000X, 000000X0
Warum das ? Ich komme nicht dahinter !
Warum funktioniert die Umwandelung in std_logic_vector nicht ?
Ich erhalte keinen Error und kein Warning.

signal data_in_cam : std_logic_vector(data_width_testbench-1 downto 0) 
:= (others => '0');

Innerhalb der Schleife:

data_in <= data_in + 1;
data_in_cam <= 
std_logic_vector(to_unsigned(data_in,data_width_testbench));

Hilfe ich bin zu blöd !

von Morin (Gast)


Lesenswert?

Schau mal durch den restlichen Code, ob es irgendwo eine weitere 
Zuweisung zu data_in_cam gibt, die parallel unter denselben bedingungen 
ausgeführt wird. Ich tippe auf sowas:
1
data_in_cam <= (others => '0');
Könnte ein Fehler in der Reset-Bedingung sein.

von Hans-Werner (Gast)


Lesenswert?

Oh, grosser Meister du hattest recht.
Es erfolgte eine weitere Initialisierung in einem anderen Prozess der 
statt zu einem späterem Zeitpunkt, zum gleichen Zeitpunkt ausgeführt 
wurde.
Fragt sich jetzt warum ?
Hilfreich wäre eine Möglichkeit sich in einer Übersicht die parallele 
Ausführung einzelner Prozesse anschauen zu können. Sowas wie eine 
Timeline.
Ist das in der Vollversion ISE Foundation möglich ?
Welche Debugmöglichkeiten bietet ISE Webpack ?
So wie in anderen Entwicklungsumgebungen ?
Ich kann Breakpoints setzen und das Programm schrittweise ausführen.
Wie kann ich zwischendurch Signale setzen und abfragen ?
Oder wie kann ich abfragen von welchen Prozessen ein Signal verändert 
wird ?

Danke

von Morin (Gast)


Lesenswert?

Sorry, mit dem Simulator kenne ich mich nicht aus.

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.