Forum: FPGA, VHDL & Co. 32-bit ALU Compilierfehler


von vhdl_beginner (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
beim Programmieren einer 32-bit Alu aus 1-bit Alus erhalte ich folgenden 
Fehler beim Ausführen der Testbench:
# ** Warning: (vsim-3473) Component instance "U3 : oneb_alu_msb" is not 
bound.
#    Time: 0 ns  Iteration: 0  Region: 
/cs_alu_tb/dut/Alu(31)/Alu_width_1 File: 
C:/Users/Tim/SkyDrive/Uni/TechGI2Praktikum/blatt4/cs_alu.vhd
# ** Warning: (vsim-3473) Component instance "U3 : oneb_alu_msb" is not 
bound.
#    Time: 0 ns  Iteration: 0  Region: 
/cs_alu_tb/dut/Alu(31)/Alu_width_0 File: 
C:/Users/Tim/SkyDrive/Uni/TechGI2Praktikum/blatt4/cs_alu.vhd
# Loading work.oneb_alu(behaviour)
# Loading work.fulladd(netlist)
# Loading work.halfadd(logic)
# Loading work.or2(logic)
# ** Fatal: (vsim-3734) Index value 30 is out of range 31 to 0 (null 
array).
#    Time: 0 ns  Iteration: 0  Instance: 
/cs_alu_tb/dut/Alu(30)/Alu_n_1/U0 File: 
C:/Users/Tim/SkyDrive/Uni/TechGI2Praktikum/blatt4/cs_alu.vhd Line: 50

Ich verstehe aber nicht, warum der Wert 30 nicht in dem Array von 31 bis 
0 ist. Hat jemand ne Ahnung was ich da verändern muss?

Vielen Dank schonmal!

von Fpgakuechle K. (Gast)


Lesenswert?

vhdl_beginner schrieb:

> # ** Warning: (vsim-3473) Component instance "U3 : oneb_alu_msb" is not
> bound.
> #    Time: 0 ns  Iteration: 0  Region:
> /cs_alu_tb/dut/Alu(31)/Alu_width_1 File:
> C:/Users/Tim/SkyDrive/Uni/TechGI2Praktikum/blatt4/cs_alu.vhd
> # ** Warning: (vsim-3473) Component instance "U3 : oneb_alu_msb" is not
> bound.

du musst zuerst oneb_alu_msb in die Richtige Bibliothek compilieren. 
Seckt womöglich in einer datei namens oneeb_alu_msb.vhd. Vielleich pass 
auch das library mapping nicht. Oder du hasst dich vertippt und die 
componente heisst oneb_alu.


> #    Time: 0 ns  Iteration: 0  Region:
> /cs_alu_tb/dut/Alu(31)/Alu_width_0 File:
> C:/Users/Tim/SkyDrive/Uni/TechGI2Praktikum/blatt4/cs_alu.vhd
> # Loading work.oneb_alu(behaviour)
> # Loading work.fulladd(netlist)
> # Loading work.halfadd(logic)
> # Loading work.or2(logic)
> # ** Fatal: (vsim-3734) Index value 30 is out of range 31 to 0 (null
> array).
> #    Time: 0 ns  Iteration: 0  Instance:
> /cs_alu_tb/dut/Alu(30)/Alu_n_1/U0 File:
> C:/Users/Tim/SkyDrive/Uni/TechGI2Praktikum/blatt4/cs_alu.vhd Line: 50
>
> Ich verstehe aber nicht, warum der Wert 30 nicht in dem Array von 31 bis
> 0 ist. Hat jemand ne Ahnung was ich da verändern muss?

Falls dein array wirklich als from 31 to 0 indiziert ist, dann ist der 
Index lehr da die Richtuung nicht stimmt.

bei to muss links kleiner als rechts sein, bei downto links größer als 
rechts.
dein array mus allso entweder als:
1
 31 downto 0
oder
1
als 0 to 31
definiert sein.



MfG

von VHDL-Neymar (Gast)


Lesenswert?

Verwendet hier eigentlich noch jemand den ungewöhnlichen "a to b" 
Konstrukt?

von ... (Gast)


Lesenswert?

> "a to b"
Wenn Du unbedingt das LSB ganz links und das MSB ganz rechts haben 
willst.

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


Lesenswert?

VHDL-Neymar schrieb im Beitrag #3688361:
> Verwendet hier eigentlich noch jemand den ungewöhnlichen "a to b"
> Konstrukt?
Xilinx verwendet den bei Codes für den Microblaze. Das gibt dann lustige 
Effekte mit der Bitreihenfolge.

Man kan mit solchen Tricks die Bitreihenfolge auch umdrehen, so wie ich 
das da mache:
http://www.lothar-miller.de/s9y/archives/63-RC-5-Empfaenger.html

: Bearbeitet durch Moderator
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.