Hallo ich brauche noch einmal Hilfe. Es ist mir ein Rätsel.
Ich habe
1 | islv_data : in STD_LOGIC_VECTOR(4*DIGITS-1 downto 0);
|
2 | oslv_nibble : out STD_LOGIC_VECTOR(3 downto 0);
|
3 | (...)
|
4 | signal i_digit : integer range 0 to DIGITS-1;
|
Wenn ich in einem Process aus den Eingangsdaten ein Nibble rauspicken
möchte, verweigert sich der Syntaxcheck.
1 | oslv_NIBBLE <= islv_DATA( (i_digit+1)*4-1 downto i_digit*4 );
|
Woher kann das kommen? Wenn ich für i_digit die möglcihen 0,1,2,3
einsetze ist doch alles in Ordnung. Und wenn ich mal oslv_NIBBLE <=
islv_DATA(3 downto 0) hinschreibe gibt es den Fehler nicht. Der Fehler
behauptet ich würde dem 4 bit Vektor nibble einen 16 bit Vektor zuweisen
wollen.
Aber rechne ich für i_digit die Zuweiseung aus:
0: (3 downto 0)
1: (7 downto 4)
2: (11 downto 8)
3: (15 downto 12)
Was mache ich denn da schon wieder falsch. :-(