generate innerhalb eines process?

#1394638
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:
1
null_bits_proc: process(rst, clk)
2
begin
3
   if rst = '1' then
4
      data_array_of_processdata <= (others => PROCESS_DATA_RESETVALUE);
5
   elsif rising_edge(clk) then
6
      data_array_of_processdata <= data_array_of_processdata_von_irgendwo;
7
      -- Übernahme der Null-Bits
8
      insert_null_bits_gen: for i in 0 to 63 generate
9
         process_data_set_nullbits(data_array_of_processdata(i), zero_bits);
10
      end generate insert_null_bits_gen;
11
   end if;
12
end process;
Mit einer For-Schleife gehts aber auch nicht, hat jemand eine Idee?

Matthias
#1394884
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:
1
      for i in 0 to 63 loop
2
         process_data_set_nullbits(data_array_of_processdata(i), zero_bits);
3
      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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren