I have created an 8 bit adder with a fulladder. As you can see, i started adding the bits from the right to left with the corresponding bits and for cin the signals t1 and t2 and cout the t2 and t1 in order. The first cin is set to the adder input cin. I don't see any problems in my implementation, but when i run it, i get red line for the o output signal.Can somebody tell me what is going wrong?(i have tested the fulladder and returns the right results.)
Thank you.
Here is the code:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity adder8bit is
Port ( a : in STD_LOGIC_VECTOR (7 downto 0);
b : in STD_LOGIC_VECTOR (7 downto 0);
cin : in STD_LOGIC;
o : out STD_LOGIC_VECTOR (7 downto 0);
cout : out STD_LOGIC);
end adder8bit;
architecture Behavioral of adder8bit is
component fulladder is
Port ( a : in STD_LOGIC;
b : in STD_LOGIC;
cin : in STD_LOGIC;
o : out STD_LOGIC;
cout : out STD_LOGIC);
end component;
signal t1,t2:std_logic:='0';
begin
C1: fulladder port map( a => a(0), b => b(0), cin => cin, o => o(0), cout => t1 );
C2: fulladder port map( a => a(1), b => b(1), cin => t1, o => o(1), cout => t2 );
C3: fulladder port map( a => a(2), b => b(2), cin => t2, o => o(2), cout => t1 );
C4: fulladder port map( a => a(3), b => b(3), cin => t1, o => o(3), cout => t2 );
C5: fulladder port map( a => a(4), b => b(4), cin => t2, o => o(4), cout => t1 );
C6: fulladder port map( a => a(5), b => b(5), cin => t1, o => o(5), cout => t2 );
C7: fulladder port map( a => a(6), b => b(6), cin => t2, o => o(6), cout => t1 );
C8: fulladder port map( a => a(7), b => b(7), cin => t1, o => o(7), cout => cout );
end Behavioral;