Integer: range passt Laenge nicht an

Gast #1185715
Lesenswert?

moin,

mir tut sich gerade folgendes Problem auf: ich habe ein

signal index: integer range 0 to 1023;

Nun denke ich mir fuer diese 1024 Zahlen sollte ein 10 Bit breites 
Signal genuegen. Wenn ich die Schose aber kompiliere (mit ghdl, bin ein 
armer Linuxnutzer) und mir im GTKwave anzeigen lasse wird "index" da als 
32bit Zahl aufgefuehrt:

index[31:0]

Wie vermittle ich dem Teil nun, dass das eigentlich ein index[9:0] sein 
soll. Die "range" Angabe scheint ja nicht wirklich zu helfen. Es muss 
uebrigens ein integer sein, weil ich das ding zur Indizierung eines 
Arrays brauche. Mit "unsigned"-Typen aus dem numeric_std-Paket geht das 
wohl nicht.

Danke, Tim
Gast #1185813
Lesenswert?

hmm, ja, das funktioniert. Nun haemmere ich gerade meinen Kopf gegen die 
Wand, weil ich da selbst nicht drauf gekommen bin, obwohl ich ech schon 
wild rumcaste.
Aus Interesse und fuer die Zukunft wuerde ich aber trotzdem wissen 
wollen, wieso der Integer nicht auf die noetige Groesse verkleinert 
wird.
Gast #1185968
Lesenswert?

bis zur Synthese dauert es wohl noch etwas wenn im aktuellen Tempo 
weitergeht :(.
Doof nur, dass erst dann optimiert wird. So kann ich einen Integer nicht 
in meiner Simulation als Arrayindex benutzen, weil mein Array nunmal 
keine 2**32 Werte enthaelt. Naja, das Problem haben wir ja jetzt 
formschoen umgangen.
Ich sollte wohl mal auf ISE umsteigen, dann hab ich nicht immer das 
Gefuehl meine Probleme laegen im OpenSource compiler begruendet (auch 
wenns sie's gar nicht sind).

Tim

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren