Forum: FPGA, VHDL & Co. Integer: range passt Laenge nicht an


von Tim (Gast)


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

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


Lesenswert?

> Mit "unsigned"-Typen aus dem numeric_std-Paket geht das wohl nicht.
Wie wärs mit einer Conversion:
1
  signal index: unsigned(9 downto 0);
2
  :
3
  data <= ram(to_integer(unsinged_index));

von Tim (Gast)


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.

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


Lesenswert?

> wieso der Integer nicht auf die noetige Groesse verkleinert wird.
Sieh dir mal /Synthese/-Ergebnisse an. Bei der Synthese wird dann auch 
tatsächlich gespart und optimiert.
Evtl. gibt es auch einen Schalter an deiner SW?

von Tim (Gast)


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

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.