If statement 进程行中的vhdl代码中存在语法错误
我试着做一个8状态的3位运行LED。当输入x为1时,LED将向前移动,当x为0时,LED将向后移动。有下列情况 我已经试了几个小时了,不知道怎么了。我现在正在学习vhdl,所以请对我放松点。它说是语法错误,但我不知道在哪里If statement 进程行中的vhdl代码中存在语法错误,if-statement,signals,vhdl,If Statement,Signals,Vhdl,我试着做一个8状态的3位运行LED。当输入x为1时,LED将向前移动,当x为0时,LED将向后移动。有下列情况 我已经试了几个小时了,不知道怎么了。我现在正在学习vhdl,所以请对我放松点。它说是语法错误,但我不知道在哪里 library IEEE; use IEEE.std_logic_1164.all; entity Quiz10 is port( x : in std_logic; output : out std_logic_ve
library IEEE;
use IEEE.std_logic_1164.all;
entity Quiz10 is
port(
x : in std_logic;
output : out std_logic_vector(6 downto 0)
);
end Quiz10;
architecture arch1 of Quiz10 is
signal digit : integer range 0 to 9 := 0;
begin
process (x,digit)
begin
if x = '1' then
digit <=digit+1;
elsif x = '0' then
digit <=digit-1;
elsif (digit>=9)
digit<=0;
end if;
end process;
output <="1111110" when digit = 0 else
"0110000" when digit = 1 else
"1101101" when digit = 2 else
"1111001" when digit = 3 else
"0110011" when digit = 4 else
"1011011" when digit = 5 else
"1011111" when digit = 6 else
"1110000" when digit = 7 else
"1111111" when digit = 8 else
"1111011" when digit = 9 else
"0000000";
-- Your VHDL code defining the model goes here
end arch1;
IEEE库;
使用IEEE.std_logic_1164.all;
实体Quiz10是
港口(
x:在标准逻辑中;
输出:输出标准逻辑向量(6到0)
);
结束Quiz10;
Quiz10的架构arch1是
信号位:0到9的整数范围:=0;
开始
进程(x,数字)
开始
如果x='1',则
digit我刚刚用Modelsim尝试了你的代码,唯一的语法错误是,正如@Tricky所指出的,第二个elsif
之后缺少,你没有描述错误。如果您试图直接在演示板上实现此功能,则应将x用作时钟,并在边缘上进行评估。在合成之后,增量反转数字的二进制表示的至少一个元素,提供反转和(逻辑元素)延迟,门控振荡器。提供一个。它表示错误是语法错误,正在处理中。如果您的elseif
丢失,则实际的错误消息,该消息应该有行号,并且可能在该行上有一个字符位置。在这个问题上。