Forum: FPGA, VHDL & Co. Problem Typumwandlung


von Andre (Gast)


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?

von damicha (Gast)


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.

von Andre (Gast)


Lesenswert?

Danke, das funktioniert soweit, ist auch die Lösung, die ich momentan 
verwende. Ich dachte bloß, dass es vielleicht noch eine Lösung mit 
weniger Schreibarbeit gäbe.

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.