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?