Forum: FPGA, VHDL & Co. Frage bezueglich Fehlermeldungen vom HDL Compiler(nicht nur an Lothar)


von Mark W. (kram) Benutzerseite


Lesenswert?

Hallo,

ich habe heute versucht die Flankenerkennung von Lothar nachzubauen. 
Leider bekomme ich da fuer das TB folgende Fehlermeldungen:

ERROR:HDLCompiler:806 - 
"C:/AllMyFiles/FPGA/Projects/EdgeDetect/edge_detect/tb_edge_detect.vhd" 
Line 45: Syntax error near "100.0".

ERROR:HDLCompiler:806 - 
"C:/AllMyFiles/FPGA/Projects/EdgeDetect/edge_detect/tb_edge_detect.vhd" 
Line 47: Syntax error near "1".

ERROR:HDLCompiler:1728 - 
"C:/AllMyFiles/FPGA/Projects/EdgeDetect/edge_detect/tb_edge_detect.vhd" 
Line 47: Type error near ns ; current type time; expected type  void

WARNING:HDLCompiler:1369 - 
"C:/AllMyFiles/FPGA/Projects/EdgeDetect/edge_detect/tb_edge_detect.vhd" 
Line 37: Possible infinite loop; process does not have a wait statement

ERROR:HDLCompiler:854 - 
"C:/AllMyFiles/FPGA/Projects/EdgeDetect/edge_detect/tb_edge_detect.vhd" 
Line 9: Unit <behavior> ignored due to previous errors.

Vielleicht liegt es daran, dass ich die neue Version 13.4 verwende. Mit 
welcher Version laueft denn der Code?

Vielen Dank...

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


Lesenswert?

Mark W. schrieb:
> Leider bekomme ich da fuer das TB folgende Fehlermeldungen:
Du hättest da mal einen Link auf den Code setzen sollen....
http://www.lothar-miller.de/s9y/categories/18-Flankenerkennung

> Vielleicht liegt es daran, dass ich die neue Version 13.4 verwende.
Nein, daran leigt es nicht.

> Mit welcher Version laueft denn der Code?
Mit keiner, denn da sind Fehler drin...
Sieh dir mal die Zeilen und den zugehörigen Code an:
1
45:     irand := integer((rand  100.0  - 0.5) + 50.0 );
2
46:     -- und dann diese Zeit abwarten
3
47:     wait for irand  1 ns;
Bei diesem Code fehlen (vermutlich durch die Formatierung) ein paar 
Zeichen. Mit einer weltweiten Suche nach "VHDL rand" hättest du z.B. den 
Beitrag "Re: Zufallszahlen mit VHDL erzeugen" gefunden, und dann 
den ersten fehlenden Stern nachgetragen:
1
     irand := integer((rand * 100.0  - 0.5) + 50.0 );

Und das dann auch in der Zeile 47 gemacht:
1
     -- und dann diese Zeit abwarten
2
     wait for irand * 1 ns;

Na bitte, das hat doch gar nicht weh getan...  ;-)

BTW: Ich habe die Typos auf meiner HP korrigert.

von Mark W. (kram) Benutzerseite


Lesenswert?

Hallo Lothar,

vielen Dank. Haette ich vermutlich einig Tage gebraucht, um drauf zu 
kommen. Mir ist der VHDL code noch nicht soooo gelaeufig, dass ich da 
auf syntaktische Fehler leicht drauf kaeme.

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


Lesenswert?

Mark W. schrieb:
> vielen Dank.
Keine Ursache...
> Haette ich vermutlich einig Tage gebraucht, um drauf zu kommen.
Das nennt sich umgangssprachlich "Lernen"...  ;-)
> Mir ist der VHDL code noch nicht soooo gelaeufig
Weitermachen, wird schon noch werden.

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.