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.