Problem Typumwandlung

Gast #823185
Lesenswert?

Hallo,

ich versuche, einen Array vom Typ Byte in einen zweiten Array zu 
integrieren, dessen Elementgröße 8 Byte beträgt. Dabei bekommme ich 
jedoch einen Fehler, die Typen würden nicht übereinstimmen:
1
subtype byte is unsigned(7 downto 0);
2
type byte_array is array(1 to 8) of byte;
3
type long_type is array(1 to 2) of unsigned(63 downto 0);
4

5
constant byteconst: byte_array <= (others => b"0000_0000");
6

7
-- Und das geht nun nicht:
8
constant longconst: long_type := (1 => byteconst(1 to 8),
9
2 => byteconst(1 to 8));


Byteconst ist hier doch genau 64 bit lang und würde doch in jedes der 
beiden Felder reinpassen?
Gast #823358
Lesenswert?

versuch mal
1
constant longconst: long_type :=
2
 (1 => byteconst(1) & byteconst(2) & byteconst(3) & byteconst(4) &
3
       byteconst(5) & byteconst(6) & byteconst(7) & byteconst(8),
4
  2 => byteconst(1) & byteconst(2) & byteconst(3) & byteconst(4) &
5
       byteconst(5) & byteconst(6) & byteconst(7) & byteconst(8));
sollte gehn.
Wenn Du die Typenumwandlung öfter benötigts, solltest Du Dir eine 
Funktion schreiben.

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