mikrocontroller.net

Forum: FPGA, VHDL & Co. integer/positiv/natural nicht IEEE konform?


Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe heute in der Uni den "HDL Designer" von Mentor bekommen und 
habe damit ein bisschen rumgespielt. Der Syntaxchecker scheint mir 
wesentlich strenger zu sein, als der von ISE. So werden zB. die 
Preinitialisierungen von Signalen angemeckert (was in der ASIC Welt auch 
seine Berechtigung haben mag).

Des weiteren bekomme ich immer einen Error, sobald ich, wie unten in 
Zeile 48, integer/positiv/natural verwende, mit dem Hinweis, diese seien 
nicht IEEE konform. Auch wenn das jetzt ein bissl kleinlich ist (weil 
korrekt synthetisiert wird es ja), wie lauten denn die konformen IEEE 
Typen? Ich habe mir schon einige andere Designs angeguckt, aber da 
werden diese Konstrukte auch verwendet.

Non-Standard IEEE type "integer", used for signal "Cnt"
48
45   --
46   architecture behav of clkdiv is
47
48   signal Cnt : integer range 0 to MAXCNT := 0;
49   signal Clktmp : std_logic := '0';
50
51   begin
Use IEEE types only. Subtypes must be based on IEEE standard types.

 ---

Danke
Carsten

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Synthesetools können nicht den gesamten Sprachumfang von VHDL 
abbilden. Das einfachste Beispiel ist:
   internerwert <= eingangswert after 10 ns;

Im Gegensatz dazu ist der Synthese-Check von ModelSim so sensibel, dass 
er syntaktische Beschreibungen, die die Synthesetools längst umsetzen 
können, noch als kritisch einstuft (z.B. Initialisierungwerte bei 
FPGAs).

Das hatten wir schon im Beitrag "Sensitivity List Problem bei GENERATE-Konstrukten"

Sowas
   signal Cnt : integer range 0 to MAXCNT := 0;
verwende ich täglich und bisher klappts immer ;-)

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die Synthesetools können nicht den gesamten Sprachumfang von VHDL
> abbilden.

Genau das habe ich aber eigentlich von HDL Designer erwartet.
Ich hätte ja auch kein Problem mit einem Warning gehabt, aber deshalb 
direkt einen Error rauszugeben und die Task zu unterbrechen (habe da auf 
Simulieren geklickt) finde ich schon übertrieben.

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.