2017-01-23 10 views
0

16行目にこのメッセージが表示されています。「 '」の近くに構文エラーがあります。私の間違いが何であるか分かりません。どんな助けでも大歓迎です!プロセスでif/thenステートメントを使用するとVHDL構文エラーが発生する

library IEEE; 
use IEEE.std_logic_1164.all; 

entity SystemI is 
    port (ABCD : in std_logic_vector(3 downto 0); 
      F : out std_logic); 
end entity; 

architecture SystemI_arch of SystemI is 

begin 

    process (ABCD) 
     begin 

      if (ABCD='0001') then 
       F <= '1'; 
      elsif (ABCD='0011') then 
       F <= '1'; 
      elsif (ABCD='1001') then 
       F <= '1'; 
      elsif (ABCD='1011') then 
       F <= '1'; 
      else 
       F <= '0'; 
      end if; 

    end process; 

end architecture; 
+0

[VHDLの構文エラー]の可能な重複(http://stackoverflow.com/questions/:

また、あなたが同等の選択信号の割り当てを使用してプロセス全体を置き換えることができます29478821/vhdl-syntax-error) – user1155120

答えて

0

あなたは、単一ビット/文字リテラルのために使用されているあなたの比較では、単一引用符(')を使用しています。ベクトルの場合は、"を使用する必要があります。

すべてのif/elsifステートメントについて、すべての比較を(ABCD="0001")に変更してください。

EDIT:

with ABCD select 
    F <= '1' when "0001" | "0011" | "1001" | "1011", '0' when others; 
関連する問題