Ich versuche ein Array von std_logic_vectors mit reduzierenden Längen zu erstellen. Ich habe versucht, ein Array mit einem generischen std_logic_vector zu machen und dann eine generate-Anweisung zu verwenden, um die Vektoren zu erstellen.VHDL Generiere Array von STD_LOGIC_VECTORS mit reduzierender Länge
architecture behavioral of dadda_mul_32bit is
type and_planes is array (0 to 31) of std_logic_vector;
begin
generate_and_plane:
for i in 0 to 31 generate
and_planes(i) <= and_vector(a, b(i), i);
end generate generate_and_plane;
end behavioral;
zusammen mit einer Funktion, die eine generische std_logic_vector zurückgibt:
function and_vector(vec: std_logic_vector; x: std_logic; length: natural) return std_logic_vector is
variable result: std_logic_vector(length - 1 downto 0);
begin
for i in 0 to length - 1 loop
result(i) := vec(i) and x;
end loop;
return result;
end function;
Bin ich die Aussage falsch generieren verwenden?
Warum sind Ihre UND-Ergebnisse nicht die Länge eines? – user1155120