www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Fehler in Bitbreite von ModelSIM nicht erkannt


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich habe gerade folgenden Fehler gefunden, den Modelsim SE 6.3c 
beim Compilieren bedenkenlos schluckt!!!

Bei der Änderung der Bitbreite einer Abfrage habe ich ein Bit mehr 
hinzugefügt, aber den Vektor vergessen, aufzubohren:
if (pattern(3 downto 0) = "10000") then
  signal <= '1';
....

Richtig wäre natürlich, "4 downto 0". Das Ding wird natürlich so nie 
ausgeführt. Warum findet ModelSim das nicht? Die Synthese scheint auch 
darüber hinweg zu lesen. ???

Autor: FPGA-Frickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun es ist wohl kein Syntaxfehler, der Ausdruck ist halt immer false und 
dementsprechend wird es generiert.

Nach meiner Erfahrung meckert modelsim und viele synthesis tools das 
auch an, allerdings eben als warning oder info, nicht als error. Ist 
halt wie in c das prob mit "=" und "==". Ist syntaktische gesehen 
korrekt, aber der Entwickler hat nicht das geschrieben, was er wollte.

Autor: Ratzeputz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, ich hatte letztens auch so was ärgerliches, wäre aber in der Sim 
aufgefallen:

signal counter: std_logic_vector (8 downto 0):= (others => '0');

.
.
.

counter <= counter +1;
if (counter <= counter_max) then
..
.
end if;

Durch das "<=" wird der Inhalt des if-Zweiges immer ausgeführt, ist kein 
Fehler, und es kam bei der Synthese nichtmal die Meldung, dass der 
counter removed wurde. Irgendwann hab ich den Tippfehler dann gefunden. 
:)

Autor: Thomas Reinemann (Firma: abaxor engineering) (abaxor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich wette du verwendest nicht das Package ieee.numeric_std. Dort wird 
auf die Übereinstimmung von Vektorlängen geachtet.


Tom

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.