mikrocontroller.net

Forum: FPGA, VHDL & Co. generate innerhalb eines process?


Autor: Matthias G. (mgottke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe nun ein keines Problem. In einem process werden von irgendwo 
her ein Sack voll Daten (data_array_of_processdata) übernommen. 
"processdata" selbst ist wiederum ein record. Zur Manipulation der Daten 
gibt es wiederum ein proceduren in einer library. So z.B. 
"process_data_set_nullbits". Nun möchte ich aber nicht händisch alles 
einzeln auscodieren.

Folgender Code geht nicht:
null_bits_proc: process(rst, clk)
begin
   if rst = '1' then
      data_array_of_processdata <= (others => PROCESS_DATA_RESETVALUE);
   elsif rising_edge(clk) then
      data_array_of_processdata <= data_array_of_processdata_von_irgendwo;
      -- Übernahme der Null-Bits
      insert_null_bits_gen: for i in 0 to 63 generate
         process_data_set_nullbits(data_array_of_processdata(i), zero_bits);
      end generate insert_null_bits_gen;
   end if;
end process;
Mit einer For-Schleife gehts aber auch nicht, hat jemand eine Idee?

Matthias

Autor: Timm B. (timmbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Matthias,

"generate" ist nur in parallelem Kontext zulässig. In sequentiellem 
Kontext (Prozesse, Funktionen, Prozeduren) ist "loop" zu verwenden.
http://www.et.fh-trier.de/EtechHomePage/team/schin...

Timm

Autor: Matthias G. (mgottke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tim,

> "generate" ist nur in parallelem Kontext zulässig. In sequentiellem
> Kontext (Prozesse, Funktionen, Prozeduren) ist "loop" zu verwenden.

"loop" geht leider auch nicht, das war ja mein erster Ansatz. Da kommt 
folgende Fehlermeldung:
      for i in 0 to 63 loop
         process_data_set_nullbits(data_array_of_processdata(i), zero_bits);
      end loop;
# ** Error: xxx.vhd(931): Actual (indexed name) for formal 
"process_data" is not a static signal name.

"process_data" entspricht dem Signal "data_array_of_processdata(i)" in 
der procedure.

Matthias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.