Folgendes Problem:
Es werden zwei generische Paramter definiert.
generic
(
address_width_quicksort : integer := 8;
data_width_quicksort : integer := 8
);
Aus einem der beiden Parameter wird die Grösse des Stacks berechnet.
constant stack_size : positive := (address_width_quicksort+3) * 2;
Es werden ausserdem vier Subtypen deklariert.
----------------------------> This are the internal data types
subtype data_type_ram is std_logic_vector (data_width_quicksort - 1
downto 0);
subtype address_type_ram is std_logic_vector(address_width_quicksort -
1 downto 0);
subtype data_type_stack is std_logic_vector (data_width_quicksort - 1
downto 0);
subtype address_type_stack is std_logic_vector (stack_size - 1 downto
0);
Es werden anschliessend zwei Signale definiert, die in der folgenden
Generate-Anweisung verwendet werden.
signal data_width_stack : integer := data_width_quicksort;
signal address_width_stack : integer := 8;
generate_stack : if true
generate
generate_the_stack:
ram generic map (address_width_ram => address_width_stack,
data_width_ram => data_width_stack)
port map (
--------------- Inputs
clock_read_ram => clock_quicksort,
clock_write_ram => clock_quicksort,
data_in_ram => data_in_stack_internal,
write_enable_ram => write_enable_stack_internal,
write_address_ram => write_address_stack_internal,
read_enable_ram => read_enable_stack_internal,
read_address_ram => read_address_stack_internal,
--------------- Outputs
data_out_ram => data_out_stack_internal
);
end generate generate_stack;
Bei Aufruf der Generate-Anweisung knallt es mit folgender Fehlermeldung.
ERROR:HDLParsers:3305 - "D:/EDA Design/Xilinx ISE
Projekte/Quicksort/Quicksort.vhd" Line 205. The actual value (Signal
'address_width_stack') associated with a generic must be a globally
static
expression.
ERROR:HDLParsers:3305 - "D:/EDA Design/Xilinx ISE
Projekte/Quicksort/Quicksort.vhd" Line 206. The actual value (Signal
'data_width_stack') associated with a generic must be a globally
static
expression.
Was ist die Ursache und wie kann ich diese vermeiden ?
Die gesamte Datei findet sich im Anhang.
Das Programm ist noch unvollständig.
Danke für jede Hilfe
ändere signal data_width_stack : integer := data_width_quicksort in constant data_width_stack : integer := data_width_quicksort dann sollte es gehen...
natürlich analoges Vorgehen für "address_width_stack" Hintergrund: generics müssen zur synthesezeit konstant sein - also KEIN signal
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.