关于if语句语法的VHDL错误10500
我是vhdl新手,我有简单的代码来模拟slt操作;但是,我得到以下错误: 错误(10500):文本“if”附近SetLessThan.vhd(14)处的VHDL语法错误;应为“end”或“(”或标识符(“if”是保留关键字)或并发语句 有人能帮忙吗?(代码粘贴在下面) 我试着把()放在a关于if语句语法的VHDL错误10500,vhdl,Vhdl,我是vhdl新手,我有简单的代码来模拟slt操作;但是,我得到以下错误: 错误(10500):文本“if”附近SetLessThan.vhd(14)处的VHDL语法错误;应为“end”或“(”或标识符(“if”是保留关键字)或并发语句 有人能帮忙吗?(代码粘贴在下面) 我试着把()放在a
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity SetLessThan is
port(
a : in std_logic_vector(7 downto 0);
b : in std_logic_vector(7 downto 0);
cout : out std_logic_vector(7 downto 0)
);
end SetLessThan;
architecture dataflow of SetLessThan is
begin
if a < b then
cout <= '00000001';
else
cout <= '00000000';
end if;
end dataflow;
IEEE库;
使用IEEE.STD_LOGIC_1164.all;
实体SetLessThan是
港口(
a:标准逻辑向量(7到0);
b:标准逻辑向量(7到0);
输出标准逻辑向量(7到0)
);
端部无刚毛;
SetLessThan is的体系结构数据流
开始
如果acout您试图在适合并发语句的位置使用顺序语句
conditional_signal_assignment ::=
target <= options conditional_waveforms ;
conditional_waveforms ::=
{ waveform when condition else }
waveform [ when condition ]
您可以将if-then-else移动到process语句中,也可以将其作为条件波形(signal)赋值语句重新写入
conditional_signal_assignment ::=
target <= options conditional_waveforms ;
conditional_waveforms ::=
{ waveform when condition else }
waveform [ when condition ]
然后,您将在另一类错误中发现,字符串文字由一对双引号(而不是单引号)分隔
演示两种形式以及双引号:
architecture dataflow of SetLessThan is
begin
process (a,b)
begin
if a < b then
cout <= "00000001";
else
cout <= "00000000";
end if;
end process;
end dataflow;
architecture cond_waveform of SetLessThan is
begin
cout <= "00000001" when a < b else
"00000000";
end architecture;
SetLessThan的架构数据流是
开始
过程(a、b)
开始
如果acout您试图在适合并发语句的位置使用顺序语句
conditional_signal_assignment ::=
target <= options conditional_waveforms ;
conditional_waveforms ::=
{ waveform when condition else }
waveform [ when condition ]
您可以将if-then-else移动到process语句中,也可以将其作为条件波形(signal)赋值语句重新写入
conditional_signal_assignment ::=
target <= options conditional_waveforms ;
conditional_waveforms ::=
{ waveform when condition else }
waveform [ when condition ]
然后,您将在另一类错误中发现,字符串文字由一对双引号(而不是单引号)分隔
演示两种形式以及双引号:
architecture dataflow of SetLessThan is
begin
process (a,b)
begin
if a < b then
cout <= "00000001";
else
cout <= "00000000";
end if;
end process;
end dataflow;
architecture cond_waveform of SetLessThan is
begin
cout <= "00000001" when a < b else
"00000000";
end architecture;
SetLessThan的架构数据流是
开始
过程(a、b)
开始
如果acout不允许在体系结构主体raw中使用if..then..else
。必须将它们包含在过程中
或者,您可以对并发信号分配使用不同的语法,这称为条件信号分配。在您的情况下,它将变成:
cout <= "0000001" when a < b else "00000000";
cout不允许在体系结构主体raw中使用if..then..else
。必须将它们包含在过程中
或者,您可以对并发信号分配使用不同的语法,这称为条件信号分配。在您的情况下,它将变成:
cout <= "0000001" when a < b else "00000000";
无法尝试在流程语句中移动if块。请尝试在流程语句中移动if块。您能解释什么是条件波孔(信号)赋值语句吗?或者发布解释它的链接吗?您能解释什么是条件波孔(信号)赋值语句吗?或者发布解释它的链接吗?