2011-07-01 63 views
0

我做一個d觸發器與VHDL 這是代碼:VHDL:在觸發器d代碼中的錯誤

LIBRARY STD,WORK; 
USE STD.standard.all; 
entity FlipFlopD is 
port(
    input, clock :in bit; 
    output :out bit 
); 
end FlipFlopD; 

--Architecture of the entity 
Architecture FlipFlopDfunc of FlipFlopD is 
begin 
    PROCESS (clock) 
    BEGIN 
    IF (clock’EVENT AND clock=‘1’) THEN 
     output <= input; 
    END IF; 
    END PROCESS; 
end FlipFlopDfunc; 

這些都是錯誤的,我得到當我嘗試合成它:

Line 16. Unexpected symbol read: ?. 
Line 16. Unexpected symbol read: ?. 
Line 16. parse error, unexpected IDENTIFIER, expecting COMMA or CLOSEPAR 

第16行中的錯誤對我來說是extrange,因爲我沒有看到任何'?'符號在這一行:

IF (clock’EVENT AND clock=‘1’) THEN 

有沒有人知道如何改正它? 有誰知道該怎麼辦這個錯誤parse error, unexpected IDENTIFIER, expecting COMMA or CLOSEPAR

順便說一下,我在做我的設計使用ISE 9.2 謝謝你的幫助。

回答

6

您確定使用正確類型的單引號(')嗎?如果他們在你的VHDL代碼中是這樣的,我想他們是錯誤的。

IF (clock'EVENT AND clock='1') THEN 
4

我從上面剪下並粘貼了你的代碼,正如bmk所說的那樣,滴答是錯誤的。

你也可以寫行: -

if rising_edge(clock) then 

但是,你會比必須使用下列庫和包。

library IEEE; 
use IEEE.std_logic_1164.all; 
4

除了通過@bmk和@George正確的觀察,你應該刪除這些行:

LIBRARY STD,WORK; 
USE STD.standard.all; 

的VHDL標準規定,這些線路在任何VHDL文件已經暗示。 這些子句對您的代碼沒有任何影響,但他們會將您識別爲新手。