VHDL Code error

OP (Company: Mindteck) #5123811
Rate this post
useful
not useful
hi,
i have an if statement in my code
1
if(a and (not b) and c = '1') then
2
          output <= '1';
3
      else
4
           output <= '0';
5
       end if;

a, b, and c are internal signal of type std_logic;
output is signal out std_logic;

when compile this code it is showing an error

Error (10476): VHDL error at PowerSeq1.vhd(486): type of identifier "a" 
does not agree with its usage as "boolean" type
Guest #5123829
Rate this post
useful
not useful
Hareesh M. wrote:


> if (a and (not b) and c = '1') then
                        -------
                              |_ type: boolean


the and operator needs operands of the same type, i.e all operands are 
boolean, or all of type std_logic.

The comparsion "c = '1'" results into type boolean; the sub-term "a and 
(not b)" into type std_logic (because a and b are of type std_logic)-> 
the rightmost "and" faces type missmatch.

Reply

Please log in before posting.

or

Log in with Google account

Registration is free and takes only a minute.

Register now