Hallo Leute,
Ich bin gerade dabei VHDL zu lernen. Bin dabei auf folgendes Problem
gestoßen:
Ich möchte abhängig von der Adresse die an einem Bus anliegt ein Array
beschreiben. Dazu muss ich einen std_logic_vector in ein integer
konvertieren. Habe folgende Möglichkeit gefunden:
1 | variable addr : integer range 0 to 65535 := to_integer(unsigned(sbus_i_addr));
|
leider bekomme ich beim kompilieren mit dem ModelSim Compiler folgende
Fehlermeldung:
1 | Error: Identifier "unsigned" is not directly visible.
|
2 | Potentially visible declarations are:
|
3 | ieee.std_logic_arith.UNSIGNED (type declaration)
|
4 | ieee.NUMERIC_STD.UNSIGNED (subtype declaration)
|
Ich habe aber folgende Bibliotheken in Verwendung:
1 | LIBRARY ieee;
|
2 | USE ieee.std_logic_1164.all;
|
3 | USE ieee.std_logic_arith.all;
|
4 | USE ieee.NUMERIC_STD.all;
|
5 |
|
6 | library work;
|
7 | use work.busdef.all;
|
8 | use work.adc_ramdef.all;
|
Die von HDL Designer vorgeschlagenen Bibliotheken sollten also
inkludiert sein. Des Weiteren verwende ich die „std_logic_vector“ sowie
die „to_unsigned“ Funktion um einen integer in einen std_logic_vector zu
konvertieren. Das also der hdl-Designer was verloren hat kann also
eigentlich nicht sein da diese Funktionen ja zumindest im
ieee.numeric_std drin sein sollten.
Interessant finde ich auch das ich die „unsigned“ Funktion weder in der
„ieee.std_logic_arith“ Bibliothek noch in der „ieee.numeric_std“
Bibliothek finde:
http://www.csee.umbc.edu/portal/help/VHDL/packages/std_logic_arith_syn.vhd
http://www.csee.umbc.edu/portal/help/VHDL/packages/numeric_std.vhd
wäre toll wenn mir jemand weiter helfen könnte.
Im Anhang ist noch der gesamte „generierte“ Code vom HDL Designer.
LG Stephan