2011-12-30 85 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 IF;」在tmp = 001和tmp = 100的情況下。

+0

我認爲你的意思是在tmp = 011和tmp = 100之間。我建議對重新編輯它的問題進行編輯,從而突出顯示缺失的「如果結束」;更清楚。 – 2011-12-30 11:59:43