VHDL“;预期类型ieee.std“U逻辑”U 1164.std“U逻辑”U矢量;如果是I型';我给
一个相当简单的实体,将向量的每个元素乘以一个标量。我在编译时遇到以下错误: 我一直在寻找一些可能导致这种情况的语法错误,但我肯定遗漏了什么。什么可能导致这样的错误VHDL“;预期类型ieee.std“U逻辑”U 1164.std“U逻辑”U矢量;如果是I型';我给,vhdl,modelsim,Vhdl,Modelsim,一个相当简单的实体,将向量的每个元素乘以一个标量。我在编译时遇到以下错误: 我一直在寻找一些可能导致这种情况的语法错误,但我肯定遗漏了什么。什么可能导致这样的错误 我不认为这是由自定义vec9arr造成的,因为我在同一目录中有另一个VHDL文件,该文件也使用vec9arr,并且没有任何问题。您的实体名称是:vector\u scalar\u multiplier 但您的架构声明是:vector\u adder 因此,您在体系结构中引用的信号只能是在矢量加法器实体声明中定义的信号,以及使用信号关
我不认为这是由自定义vec9arr造成的,因为我在同一目录中有另一个VHDL文件,该文件也使用vec9arr,并且没有任何问题。您的实体名称是:
vector\u scalar\u multiplier
但您的架构声明是:
vector\u adder
因此,您在体系结构中引用的信号只能是在矢量加法器
实体声明中定义的信号,以及使用信号
关键字定义的任何内部信号(在本例中我看不到这些信号)
您是否打算为
向量\u标量\u乘法器
定义体系结构?如果没有,请包括向量加法器的实体声明。?是的。结果我不知道怎么读。非常感谢你!这个问题没有一个答案是不可能重现的。公认的答案并没有给出一个解决方案,即在向量加法器的体系结构中出现in_b没有可见的声明(也没有明显的类型)。错误消息的图片也不能通过搜索未来的Stackoverflow读者而产生有用的信息。你对已接受答案的评论没有任何意义。
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;