seh meinen Syntaxfehler nicht?

Gast #1701951
Lesenswert?

Hallo,
ich habe folgenden VHDL Codeschnipsel

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;

entity mux is
 generic (
  width : integer := 8
 );
 port (
  clk   : in  std_logic;
  addr  : in  std_logic_vector(2 downto 0);
  in_a  : in  std_logic_vector(width-1 downto 0);
  in_b  : in  std_logic_vector(width-1 downto 0);
  out_x : out std_logic_vector(width-1 downto 0)
 );
end mux;

architecture Behavioral of mux is

begin
 process (clk)
 begin
  if (clk'event and clk = '1') then
   out_x <= in_a when (addr = "000") else
            in_b;
  end if;
 end process;
end Behavioral;

in der Zeile "out_x <= in_a when (addr = "000") else" wird mir folgender 
Fehler ausgegebn:
Line 51. parse error, unexpected WHEN, expecting SEMICOLON
ich weiß aber nicht, wo ich da noch ein Semikolon hinsetzen soll. Die 
Syntax ist auch schon aus dem Template entnommen....

Danke für Hilfe

Gruß,
matzunami
Gast #1702611
Lesenswert?

Ok danke, ich weiß so geht es. ABER: in den Templates unter Synthesis 
Constructs -> Conditional -> When/Else Statement, steht dies doch genau 
so drin und ich hab es auch schon genau so verwendet.

<name> <= <expression> when <condition> else
          <expression> when <condition> else
          <expression>;

Dies Funktioniert doch auch, hab ich doch auch schon verwendet, nur 
jetzt bekomm ich diese Fehlermeldung???

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren