我试图获得 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。请帮我。