must be a globally static expression

Gast #954763
Lesenswert?
• ▲
▼
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
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.