VHDL "expecting type ieee.std_logic_1164.STD_LOGIC_VECTOR" 当那是我给出的类型时

VHDL "expecting type ieee.std_logic_1164.STD_LOGIC_VECTOR" when that is the type I'm giving

library IEEE;

use work.vec9Arr.all; 
use IEEE.STD_LOGIC_1164.all;

entity vector_scalar_multiplier is
port(
    in_a : in vec9arr;
    in_b : in std_logic_vector(15 downto 0);
    out_vec : out vec9arr);
end vector_scalar_multiplier;

architecture structure of vector_adder is

component multiplier is
    generic (
        O_width : integer := 8;
        P_width : integer := 8
    );

    port (
        in_O : in std_logic_vector(O_width - 1 downto 0);
        in_P : in std_logic_vector(P_width - 1 downto 0);
        out_F : out std_logic_vector((O_width + P_width) - 1 downto 0)
    );
end component;



begin


GEN_MULT : for i in 0 to 8 generate
MULT : multiplier
    generic map(O_width => 16, P_width => 8)
    port map(
        in_O => in_b,
        in_P => in_a(i),
        out_F => out_vec(i));
end generate;

end structure;

一个非常简单的实体,它将向量的每个元素乘以标量。编译时出现以下错误:

我一直在寻找可能导致此问题的语法错误,但我一定遗漏了什么。什么可能导致这样的错误?

我认为这不是由自定义 vec9arr 引起的,因为我在同一目录中有另一个 VHDL 文件也使用 vec9arr 并且没有任何问题。

您的实体名称是:vector_scalar_multiplier
但是你的架构声明是:vector_adder

因此,您在体系结构中引用的信号只能是 vector_adder 实体声明中定义的信号以及您使用 signal 关键字定义的任何内部信号(其中我看到本例中的 none)

您是否打算为 vector_scalar_multiplier 定义架构?如果不能,请附上 vector_adder 的实体声明?