18*18の乗算の部分和を取得しようとしています。これらを多次元配列(18 * 36)に保存したいのですが、配列の各インデックスには部分和が含まれています。std_logic_vectorの配列を使用してみました。しかし、結果は得られませんでした。bit_vectorの配列とビットの配列も試しました。これが私のVHDLコードです。
entity partial is
port(
A : in bit_vector(17 downto 0);
B : in bit_vector(17 downto 0);
C : out bit_vector(35 downto 0);
D : out bit
);
end partial;
architecture Behavioral of partial is
type partial_sums is array (17 downto 0, 35 downto 0) of bit;
signal sums : partial_sums;
begin
process (A,B)
begin
--sums <= (others=> (others=>'0'));
--for j in 0 to 17 loop
-- sums(j)<="000000000000000000000000000000000000";
--end loop;
for i in B'low to B'high loop
if ( B(i)='1') then
for p in A'low to A'high loop
sums(i,p) <= A(p);
end loop;
end if;
end loop;
D <= sums(0,0);
end process;
end Behavioral;
sums配列でどのインデックスを使用しても、Dでは常に0になります。私を助けてください。