Forum: FPGA, VHDL & Co. Nested generate und Indizes


von Blick Nix (Gast)


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?

von Sigi (Gast)


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!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.