2013-06-11 41 views
0

我試圖做一個簡單的程序來打開一個LED時,按下按鈕。VHDL語法錯誤,非常簡單,如果然後進程

library IEEE; 
use IEEE.STD_LOGIC_1164.ALL; 

entity TurnOn is 
Port (sig : in STD_LOGIC; 
     led : out STD_LOGIC); 
end TurnOn; 

architecture Behavioral of TurnOn is 

(Line 39) process(sig) 
begin 

if sig = '1' then 
led <= '1'; 
(Line 44) else 
led <= '0'; 

(Line 47)end if;  
end process; 
end Behavioral; 

我得到這些錯誤。

Line 39: Syntax error near "process". 
Line 44: Syntax error near "else". 
Line 47: Syntax error near "if". 

我是新來的VHDL所以我假設它的小東西,我很想念。一直盯着這個約一個小時。感謝您的任何意見。

+0

你也可以省略整個過程,只寫下面一行:'led <= sig;'。這是一個併發信號分配,因此這些信號直接連接。但你仍然需要缺少'begin'。 –

+0

併發語句具有等價的過程,實際上它們是如何被詳細闡述用於仿真的。您可以將其視爲進程聲明的簡寫。 IEEE Std 1076-1993,9.5併發信號指配聲明,第8段和構造選擇d)或-2008,11.6並行信號指配聲明,第9段和構造選擇d)。 – user1155120

回答

2

您在進程聲明之前忘記了開始語句。

architecture Behavioral of TurnOn is 

begin 

process(sig) 
begin 
+0

作品!謝謝! – user2475756

+3

在這種情況下,您應該接受答案。 –

+0

啊,謝謝你的信息 – user2475756