当我尝试使用调用组件的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;
它可能有些愚蠢,但可以使其正常工作。我编写的完整加法器正常工作,并且正确声明了其端口。