【问题标题】:VHDL Syntax error with very simple if then processVHDL语法错误非常简单,如果然后处理
【发布时间】:2013-06-11 18:34:52
【问题描述】:

我正在尝试编写一个简单的程序来在按下按钮时打开 LED。

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 的新手,所以我假设这是我缺少的一些小东西。盯着这个看了大约一个小时。感谢您的任何意见。

【问题讨论】:

  • 你也可以省略整个过程,只写下面这行:led &lt;= sig;。那是一个并发的信号分配,所以这些信号然后直接连接。不过,您仍然需要缺少的 begin
  • 并发语句有一个等价的过程,实际上是它们被模拟的方式。您可以将其视为流程声明的简写。 IEEE Std 1076-1993,9.5 并发信号分配语句,第 8 段和构造选择 d),或 -2008,11.6 并发信号分配语句,第 9 段和构造选择 d)。

标签: if-statement vhdl


【解决方案1】:

您忘记了流程声明之前的开始语句。

architecture Behavioral of TurnOn is

begin

process(sig)
begin

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多