vhdl:块的实际值太多…只有0个形式值
最后一天,在我们给出项目前的最后3个小时,我们刚刚意识到我们有这个错误! 我不是很擅长vhdl,所以我不能理解问题是什么 错误(10588):addsub16处的VHDL通用映射方面错误。vhd(31):块“fulladder16”的实际值太多,只有0个形式vhdl:块的实际值太多…只有0个形式值,vhdl,Vhdl,最后一天,在我们给出项目前的最后3个小时,我们刚刚意识到我们有这个错误! 我不是很擅长vhdl,所以我不能理解问题是什么 错误(10588):addsub16处的VHDL通用映射方面错误。vhd(31):块“fulladder16”的实际值太多,只有0个形式 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY addsub16 IS PORT(X, Y :IN STD_LOGIC_VECTOR(15 DOWNTO 0)
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY addsub16 IS
PORT(X, Y :IN STD_LOGIC_VECTOR(15 DOWNTO 0);
Add_Sub :IN STD_LOGIC;
Result :OUT STD_LOGIC_VECTOR(15 DOWNTO 0);
Cout :OUT STD_LOGIC;
Overflow :OUT STD_LOGIC);
END addsub16;
ARCHITECTURE Structure OF addsub16 IS
COMPONENT fulladder16
PORT(Cin :IN STD_LOGIC;
X, Y :IN STD_LOGIC_VECTOR(15 DOWNTO 0);
Sum :OUT STD_LOGIC_VECTOR(15 DOWNTO 0);
Cout :OUT STD_LOGIC;
Overflow :OUT STD_LOGIC);
END COMPONENT;
SIGNAL y_mod :STD_LOGIC_VECTOR(15 DOWNTO 0);
BEGIN
gen_XOR:
FOR i IN 0 TO 15 GENERATE
y_mod(i) <= Y(i) XOR Add_Sub;
END GENERATE;
adder:fulladder16 GENERIC MAP(16)
PORT MAP(Add_Sub, X, y_mod, Result, Cout, Overflow);
END Structure;
ieee库;
使用ieee.std_logic_1164.all;
实体addsub16是
端口(X,Y:标准逻辑向量(15到0);
在STD_逻辑中添加_Sub:;
结果:输出标准逻辑向量(15到0);
Cout:输出标准逻辑;
溢出:输出标准(U逻辑);
结束addsub16;
addsub16的体系结构是
组件全加法器16
端口(Cin:标准_逻辑中;
十、 Y:标准逻辑向量(15到0);
求和:输出标准逻辑向量(15到0);
Cout:输出标准逻辑;
溢出:输出标准(U逻辑);
端部元件;
信号y_mod:STD_逻辑_向量(15到0);
开始
第二代:
对于0到15中的i,生成
y_mod(i)问题在于线路:
adder:fulladder16 GENERIC MAP(16)
“formal”是在原型中为组件(或其他任何组件)声明的端口、泛型等。“实际”是映射到它的内容
您正在将1个实际值映射到一个组件(fulladder16
),该组件的声明(就在代码中的声明上方)显示0个形式泛型。您可以用一行替换生成块gen\u XOR
,这可能更可读:y\u mod