Nested generate und Indizes

Gast #3090848
Lesenswert?

Beim Versuch einen core mit ghdl zu testen erhalte ich einen 'bound 
check failure'
1
type zelltype is array(integer range 0 to numspalten * numzeilen) of std_logic_vector(31 downto 0);
2
signal zelle : zelltype;
3

4
zeilen: for i in 0 to numspalten - 1 generate
5
    spalten: for j in 0 to numzeilen - 1 generate
6
        start: if (i = 0) and (j = 0) generate
7
        end generate start;
8
        tail: if (i > 0 or j > 0) generate
9
            zelle(i*numspalten + j) <= zelle(i*numspalten + j-1); -- geht nicht
10
        end generate tail;
11
    end generate spalten;
12
end generate zeilen;

wenn ich das ganze mit nur einer Schleife erledige, gibt es keine 
Probleme. Nun benötige ich allerdings i und j da die Zuweisung etwas 
komplexer ist. Der Weg die Laufvariable in i und j zu zerlegen ist 
bestimmt gängig, aber warum geht es nicht direkt?
Gast #3090916
Lesenswert?

Morgen,

schönes kleines Frühstücksrätsel:
du schreibst

>   zelle(i*numspalten + j) <= zelle(i*numspalten + j-1); -- geht nicht

i*numspalten müsste doch i*numzeilen heissen?
Denn bei (numspalten,numzeilen = (5,3) gibt's Probleme!

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