实例化组件的生成语句中的编译错误

时间:2018-11-01 22:10:41

标签: vhdl

当我尝试使用调用组件的generate语句来模拟程序时,出现错误,提示检查先前的错误。这是当我使用“ gen:为0至n-1的i生成”时。但是,当我将其更改为“ gen:for i in n-1 to 0 generate”时,它将让我对其进行仿真,但是当我尝试使用组件“ Full_adder”时,输出不会输出答案,它只会保留“ UUUU”。有任何想法吗?代码在下面。

entity comtest is
generic (n : positive := 16);
     Port (
         abus, bbus: in std_logic_vector(n-1 downto 0);
         sbus: out std_logic_vector(n-1 downto 0);
         cai: in std_logic;
         cao: out std_logic);

end comtest;

architecture Behavioral of comtest is

  component Full_adder is
      generic(tpd: delay_length := 10ns);
      port (a, b, ci: in std_logic;
                s, co: out std_logic);
  end component;

  signal c: std_logic_vector(n-1 downto 0);



   begin
  gen: for i in 0 to n-1 generate
   --  gen: for i in n-1 to 0 generate
         fa: Full_adder port map (a => abus(i), b => bbus(i),ci =>     c(i-1), s => sbus(i), co => c(i));
  end generate;
  c(0) <= cai;
  cao <= c(n-1);


  end Behavioral;

它可能有些愚蠢,但可以使其正常工作。我编写的完整加法器正常工作,并且正确声明了其端口。

0 个答案:

没有答案