Vhdl 无法运行后期合成vivado

Vhdl 无法运行后期合成vivado,vhdl,simulation,fpga,xilinx,vivado,Vhdl,Simulation,Fpga,Xilinx,Vivado,我正在尝试运行合成后功能模拟。当我运行行为模拟的代码时,我得到了输出,一切都正常运行。Bu当我运行后期合成时,我得到以下错误: 错误:[VRFC 10-3146]绑定实体“RippleReader_nbit”没有通用的“n”[C:/Users/gauta/Assignment4/Assignment4.srcs/sim_1/new/tb_ripplenbit.vhd:41] 有人能解释一下我需要做什么吗。我是Vivado的新手,对如何使用这个很困惑 我的RippleReader代码是: enti

我正在尝试运行合成后功能模拟。当我运行行为模拟的代码时,我得到了输出,一切都正常运行。Bu当我运行后期合成时,我得到以下错误:

错误:[VRFC 10-3146]绑定实体“RippleReader_nbit”没有通用的“n”[C:/Users/gauta/Assignment4/Assignment4.srcs/sim_1/new/tb_ripplenbit.vhd:41]

有人能解释一下我需要做什么吗。我是Vivado的新手,对如何使用这个很困惑

我的RippleReader代码是:

entity rippleadder_nbit is
generic(n: natural);
    Port ( cin_ra : in STD_LOGIC;
           a : in STD_LOGIC_VECTOR (n-1 downto 0);
           b : in STD_LOGIC_VECTOR (n-1 downto 0);
           s_ra : out STD_LOGIC_VECTOR (n-1 downto 0);
           cout_ra : out STD_LOGIC);
end rippleadder_nbit;

architecture Behavioral of rippleadder_nbit is
component fulladder port(
                            x_fa : in STD_LOGIC;
                            y_fa : in STD_LOGIC;
                            z_fa : in STD_LOGIC;
                            s_fa : out STD_LOGIC;
                            c_fa : out STD_LOGIC);
end component;

signal r: std_logic_vector(n downto 0);                            

begin
 r(0) <= cin_ra;
 cout_ra <= r(n);
 FA: for i in 0 to n-1 generate
     FA_i : fulladder port map(r(i),a(i),b(i),s_ra(i),r(i+1));
 end generate;

end Behavioral;
实体RippleReader\n它是
属(n:天然);
端口(CINU ra:标准逻辑中;
a:在标准逻辑向量中(n-1向下至0);
b:标准逻辑向量(n-1到0);
s_ra:out标准逻辑向量(n-1向下至0);
cout_ra:输出标准逻辑);
结束Rippleader_nbit;
Rippleader_nbit的架构行为
组件全加器端口(
x_fa:标准逻辑中;
y_fa:标准逻辑中;
z_fa:标准逻辑中;
s_fa:输出标准逻辑;
c_fa:输出标准逻辑);
端部元件;
信号r:标准逻辑向量(n到0);
开始
r(0)sin,cout_ra=>执行);
结束行为;

在后期合成/后期实现中,将删除泛型(常量),并用常量值替换这些泛型的用法

在测试台中,您将实例w.r.t转换为行为模型(涉及泛型),因此相同的测试台将不适用于后期合成/后期实现模拟


来源:Xilinx论坛

那么我应该如何将测试台更改为?很抱歉,我对这一点非常陌生,并且试图弄明白这一点。除了编辑测试台删除泛型之外,我看不到任何其他方法。可能还有其他我不知道的方法。请在AR中查找您的错误。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating
-- any Xilinx leaf cells in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity tb_ripplenbit is
 -- Port ( s: std_logic_vector(2 downto 0);
       -- cout: std_logic);
end tb_ripplenbit;

architecture Behavioral of tb_ripplenbit is 
component rippleadder_nbit
generic(n: natural);
Port ( cin_ra : in STD_LOGIC;
           a : in STD_LOGIC_VECTOR (n-1 downto 0);
           b : in STD_LOGIC_VECTOR (n-1 downto 0);
           s_ra : out STD_LOGIC_VECTOR (n-1 downto 0);
           cout_ra : out STD_LOGIC);
end component;
signal a,b,sin : STD_LOGIC_VECTOR (3 downto 0);
signal cin,carry_out : std_logic;
constant c : integer :=4;

begin
a <=  "0000", "0001" after 50 ns, "0101" after 100ns;
b <=  "0010", "0011" after 50 ns, "1010" after 100 ns;
cin <= '1', '0' after 50 ns;

UUT1 : rippleadder_nbit generic map(n => c) port map(cin_ra => cin,a=>a,b=>b,s_ra=>sin,cout_ra =>carry_out);

end Behavioral;