and operator overloading


Joined
Jun 4, 2016
Messages
1
Reaction score
0
hi i have a question
i need to make 2 integers do "and" and write them in the output.
this is the code:

Code:
library ieee ;
use ieee.std_logic_1164.all ;
use ieee.std_logic_unsigned.all ;


package pack_std_logic_integers is
   function and (a,b :  integer  ) return std_logic_vector ;
end pack_std_logic_integers;

package body pack_std_logic_integers is

   function and (a,b :  integer ) return std_logic_vector is
      variable tempa : std_logic_vector(7 downto 0) ;
      variable tempb : std_logic_vector(7 downto 0) ;
      variable sum : std_logic_vector(7 downto 0) ;    
   begin
      tempa := a + "00000000";
      tempb := b + "00000000";
      sum := a and b;
      return sum;
   end and;

end pack_std_logic_integers;

use work.pack_std_logic_integers.all ;    
library ieee ;
use ieee.std_logic_1164.all ;
use ieee.std_logic_unsigned.all ;

entity tar11_4 is
  
   port ( a,b : integer range 0 to 255   ;
          dout   : out std_logic_vector(7 downto 0) );
end tar11_4 ;
architecture arc_tar11_4 of tar11_4 is
begin
    dout <= a and b;
end arc_tar11_3;

now this is what i get from the compiler
** Error: tar11_4.vhd(9): near "and": expecting "STRING" or "IDENTIFIER"
what should i do to make it work?
please try to help me improve this code only with the library and packages we have here don't include any thing more.
thanks.
 
Ad

Advertisements


Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top