2011-12-30 15 views
4

私は小さなプログラムをシミュレートしようとしていますが、エラーメッセージが表示され続けていますが、その理由を理解できませんでした。構文エラーあり

エラーメッセージは以下のとおりです。

line 131 error near process 

line 132 error near behavioral ; expected type void 

ライン:

130 end if; 
131 end process; 
132  end Behavioral; 

私は時間のためにこれらを解決することを試みていると私はまだ任意の手掛かりを持っていません。

全体コード:

use IEEE.STD_LOGIC_1164.ALL; 
use IEEE.STD_LOGIC_ARITH.ALL; 
use IEEE.STD_LOGIC_UNSIGNED.ALL; 

---- Uncomment the following library declaration if instantiating 
---- any Xilinx primitives in this code. 
--library UNISIM; 
--use UNISIM.VComponents.all; 

entity kuutonen is 
    Port (A1 : in STD_LOGIC; 
      B1 : in STD_LOGIC; 
      clk : in STD_LOGIC; 
      A : out STD_LOGIC; 
      B : out STD_LOGIC; 
      C : out STD_LOGIC; 
      D : out STD_LOGIC; 
      E : out STD_LOGIC; 
      F : out STD_LOGIC; 
      G : out STD_LOGIC); 
end kuutonen; 

architecture Behavioral of kuutonen is 
    signal tmp : std_logic_vector (2 downto 0); 
begin 

    process (clk) 
    begin 
     if(tmp = "110")then 
      tmp <= "000"; 
     end if; 

     if (A1 = '0' and B1 = '0') then 
      if (tmp ="000") then 
       A <= '1'; 
       B <= '0'; 
       C <= '0'; 
       D <= '0'; 
       E <= '0'; 
       F <= '0'; 
       G <= '0'; 
       tmp <= tmp + 1; 
      end if; 

      if (tmp ="001")then 
       B <= '1'; 
       A <= '0'; 
       C <= '0'; 
       D <= '0'; 
       E <= '0'; 
       F <= '0'; 
       G <= '0'; 
       tmp <= tmp + 1; 
      end if; 

      if (tmp ="010")then 
       C <= '1'; 
       B <= '0'; 
       A <= '0'; 
       D <= '0'; 
       E <= '0'; 
       F <= '0'; 
       G <= '0'; 
       tmp <= tmp + 1; 
      end if; 

      if (tmp ="011")then 
       D <= '1'; 
       B <= '0'; 
       C <= '0'; 
       A <= '0'; 
       E <= '0'; 
       F <= '0'; 
       G <= '0'; 
       E <= '1'; 

       if (tmp ="100")then 
        E <= '1'; 
        B <= '0'; 
        C <= '0'; 
        D <= '0'; 
        A <= '0'; 
        F <= '0'; 
        G <= '0'; 
        tmp <= tmp+1; 
       end if; 

       if (tmp ="101")then 
        F <= '1'; 
        B <= '0'; 
        C <= '0'; 
        D <= '0'; 
        E <= '0'; 
        A <= '0'; 
        G <= '0'; 
        tmp <= tmp+1; 
       end if; 

       if (tmp ="110")then 
        G <= '1'; 
        B <= '0'; 
        C <= '0'; 
        D <= '0'; 
        E <= '0'; 
        F <= '0'; 
        A <= '0'; 
       end if; 

     end if; 
    end process; 
end Behavioral; 

答えて

5

ただ、検査から、私はそれはおそらく、行方不明に起因するかなと思う「場合END;」 tmp = 001とtmp = 100の場合の間

+0

私はあなたがtmp = 011とtmp = 100の間にあると思います。私は質問に編集を示唆しているので、それを修正して、欠落している "end if;"を強調します。より明確に。 –

関連する問題