Hallo zusammen,
bei der Synthese für einen Spartan-3E habe ich das Problem, dass er bei
folgendem Code-Teil abbricht:
1 | constant REFWIN: positive := 8;
|
2 |
|
3 | type DataBus10B is array(positive range <>) of unsigned(9 downto 0);
|
4 | signal tmpVal : DataBus10B(1 to REFWIN/8);
|
5 | signal maxVal : DataBus10B(1 to 2);
|
6 |
|
7 | [...]
|
8 |
|
9 | genLayer16 : if REFWIN = 16 generate
|
10 | maxVal <= tmpVal;
|
11 | end generate genLayer16
|
12 |
|
13 | [...]
|
Wobei REFWIN und DataBus10B eigentlich in einem eingebundenden Package
deklariert werden.
XST beschwert sich nun, dass die Breiten nicht übereinstimmen (in Zeile
maxVal <= tmpVal):
1 | Width mismatch. Expected width 2, Actual width is 1 for dimension 1 of tmpVal.
|
Aber genau das soll mit der if-Abfrage eigentlich ausgeschlossen werden.
Compiliert er den Inhalt einer generate-Anweisung pauschal und lässt den
Teil erst später weg? ModelSim hat damit übrigens keine Probleme. Die
Simulation läuft problemlos.
Kann vielleicht jemand etwas Licht ins Dunkel bringen?
Viele Dank und Grüße.