Bonsoir,svp est-ce que qq peut m'aider?

une erreur m'a empecher de continuer mon tp

Line 32. or can not have such operands in this context.

Voici le code de mon additionneur 4 bits:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity additionneur is port (
    A:in std_logic_vector(3 downto 0);
    S:out std_logic_vector(3 downto 0);
    COUT:out std_logic_vector(3 downto 0));
end entity;
 
architecture arch_add of additionneur is
  component add_1 port(
      a:in std_logic;
      b:in std_logic;
      cin:in std_logic;
      s,cout:out std_logic);
  end component;
  signal ii:std_logic_vector(2 downto 0);
  CONSTANT C :std_logic_vector(3 downto 0):= "0011";
  Begin
    i0:add_1 port map(a=>A(0),b=>C(0),cin=>'0',s=>S(0),COUT=>ii(0));
    i3:add_1 port map(a=>A(3),b=>C(3),cin=>ii(2),s=>S(3),COUT=>cout);
    boucle: for j in 1 to 2 generate
        inst: add_1 port map (a=>A(j),b=>'0',cin=>ii(j-1),s=>s(j),cout=>ii(j));
    end generate;
end arch_add;
et celui ci le code de mon additionneur 1 bit qui a généré l'erreur cité tt à l'heure:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
 
 
 
entity add_1 is port(
    a,b,cin:in std_logic;
    s,cout:out std_logic);
end entity;
architecture arch_a of add_1 is
  begin
    s<=(a xor b) xor cin ;
    cout<=((a and b)or(cin and (c or b)));
end architecture;