VHDL if语句 - 文本附近的语法错误

问题描述:

任何人都可以看到我的代码有什么问题吗?VHDL if语句 - 文本附近的语法错误

我在注释行中发生错误。在文字旁边说出语法错误。我试图从二进制转换为十六进制数字,但不断得到相同的错误。 如果错误是评论选择。

这是错误的:

错误(10500):在附近MAL.vhd(26)VHDL语法错误文本
错误(10500):在MAL.vhd(26)VHDL语法错误附近文字“”;错误(10500):在文本附近的MAL.vhd(26)处的VHDL语法错误 错误(10500):MAL.vhd(26)在文本附近的VHDL语法错误¬
错误(10500):VHDL MAL.vhd(29)在文本“else”附近出现语法错误; (10500):在文本“if”附近的MAL.vhd(31)处出现VHDL语法错误;或者在语法“if”附近的MAL.vhd(31)处出现VHDL语法错误。期待“过程”

LIBRARY ieee; 
USE ieee.std_logic_1164.ALL; 
USE ieee.numeric_std.ALL; 
USE ieee.std_logic_unsigned.ALL; 

ENTITY MAL IS 
    PORT (
     clk_50 : IN std_logic; 
     pulse_out : OUT std_logic 
    ); 
END MAL; 

ARCHITECTURE behave OF MAL IS 
    SIGNAL pulse : std_logic; 
    SIGNAL counter : std_logic_vector(15 DOWNTO 0); 
BEGIN 
    PROCESS (clk_50) IS 
    BEGIN 
     pulse <= '0'; 
     -- if counter = ‭x"‭C34F‬"‬ then 
     -- counter <= (others => '0'); 
     pulse <= '1'; 
     -- else 
     counter <= counter + 1; 
     END IF; 
    END PROCESS; 

    --output 
    pulse_out <= pulse; 

END ARCHITECTURE behave; 
+0

请提供错误信息,并更新源代码在评论中包含行号,例如'27行',因为'27 if'肯定是语法错误:-) –

+0

感谢您的评论。它现在改变了。我找不到在Quartus中包含行号的情况。你知道哪里吗? – remivass

+0

此代码不是生成这些错误的原因。你注释掉了“else”,它仍然在错误信息中。 – Philippe

你必须有一些非法字符。删除27行,并重新写它,你应该没问题。

+0

我应该重写变量名称还是十六进制数字? – remivass

+0

删除一切以摆脱那个隐藏的字符,然后重新写整条线就像你想要的那样:if counter = x“C34F”then – lasplund

+0

Yes!这工作!非常感谢你:) – remivass