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


von Carsten (Gast)


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

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


Lesenswert?

Die Synthesetools können nicht den gesamten Sprachumfang von VHDL 
abbilden. Das einfachste Beispiel ist:
1
   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
1
   signal Cnt : integer range 0 to MAXCNT := 0;
verwende ich täglich und bisher klappts immer ;-)

von Carsten (Gast)


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.

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.