Can't determine definition of operator ""and"" -- found 0 possible definitions

tanj

New member
Can't determine definition of operator ""and"" -- found 0 possible definitions

Hallo,

fuer die Uni muss ich einen kleinen Taschenrechner in VHDL implementieren, die Hardwareprogrammierung ist mir aber noch etwas fremd. Den im Titel beschriebenen Fehler bekomm ich, wenn ich zwei Variablen vom Typ std_logic_vector miteinander verknuepfen will. Laut unseren VL-Folien sollte das aber machbar sein!

Code:
Hier mal der wesentliche Code:

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
use ieee.numeric_std.all;

entity calculator_core is port(
 inc, sel, rst : in std_logic;
 stageOut : out std_logic_vector(2 downto 0);
 outputVal : out std_logic_vector(7 downto 0));
end calculator_core

architecture behavioral of calculator_core is
 signal aS : std_logic_vector(7 downto 0);
 signal bS : std_logic_vector(7 downto 0);
 signal opS : std_logic_vector(7 downto 0);
 signal resS : std_logic_vector(7 downto 0);
 signal stateS : std_logic_vector(2 downto 0);


begin

...
...

selProc:process(sel,rst)
 variable aV : std_logic_vector(7 downto 0):= "00000000";
 variable bV : std_logic_vector(7 downto 0):= "00000000";
begin
 if state = "100" then
   if inc'event and inc = '0' then
     case op(2 downto 0) is
     when "001" => res := a + b;
     when "010" => res := a - b;
     when "100" => res := (aV(7 downto 0) and bV(7 downto 0));
     when others => res :=0;
    end case;
   end if;
  end if;
end process;
end behavioral;
Auch when "100" => res := aV and bV; geht nicht. Die noetigen Libs sind doch eigentlich eingebunden? Auch kompiliert der Code, wenn ich die "and"-Zeile auskommentiere und das Programm arbeitet auf der Hardware auch so wie es soll.

Irgendwer eine Idee?

Danke schon mal fuer die Hilfe.

Gruss

//Loesung siehe http://www.mikrocontroller.net/topic/219906#2198615
 
Zuletzt bearbeitet:
Oben