Gast
#4606845
Hi, ich bekomme grade folgendes eigentlich sehr simples Problem nicht gelöst, ich möchte zwei 16 bit std_log_vector zu einem 32 bit std_logic_vector kombinieren, also im Prinzip : v32 = (v16_0 shiftleft 16 bits) + v16_1 bis jetzt habe ich mir das zusammen gewerkelt (blutiger Anfänger mit VHDL etc.) : block1.memory((i + 1) / 2) := std_logic_vector((unsigned(bufferMemory(i-1)) sll 16) + unsigned(bufferMemory(i))); block1.memory ist ein array of std_logic_vector(31 downto 0) bufferMemory ist ein array of std_logic_vector(15 downto 0) also er durchläuft eine loop über die Länge bufferMemory array und bei jedem 2. item soll er aus dem aktuellem und dem vorherigem den entsprechenden 32 bit std_logic_vector im block1.memory array bilden aber der compiler meckert mit : expression has 16 elements but must have 32 elements. Ich habe auch echt schon zig varianten der obigen Zeile mit to_unsigned(..,32) etc versucht aber es mag einfach nicht klappen.... und was mich am meisten dabei nervt, es ist eigentlich so eine simple Aufgabe und ich habe auch schon an anderer Stelle erolgreich "rechnen" können in VHDL aber ausgerechnet DAS will nicht gelingen. Kann da jemand helfen? VG Christian G.