【发布时间】:2016-02-28 08:43:35
【问题描述】:
我正在尝试使用 vhdl 实现线性搜索算法,我的代码是
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity q1 is port(
input : in integer;
output : out integer
);
end q1;
architecture beh of q1 is
type my_array is array (0 to 6) of integer;
constant sequence: my_array := (0,1,2,3,4,5,6,7);
begin
process(input)
for i in sequence' range generate
begin
GenIf: if (input=my_array(i)) generate then
output <=input;
else
output <=0;
end generate GenIf;
end generate;
end process;
end beh;
我得到的错误信息是:
错误 (10500):在 Search.vhd(16) 的文本“for”附近出现 VHDL 语法错误; 期待“开始”,或声明声明
错误 (10500):Search.vhd(18) 文本附近的 VHDL 语法错误 “产生”;期待“那么”
错误 (10500):在 Search.vhd(20) 的文本“else”附近出现 VHDL 语法错误; 期待“end”,或“(”,或标识符(“else”是保留的 关键字),或顺序语句
错误 (10500):在 Search.vhd(22) 靠近文本“结束”处的 VHDL 语法错误 生成 GenIf;"; 期望 "end",或 "(",或标识符,或 顺序语句
错误 (10500):Search.vhd(22) 附近文本信息处的 VHDL 语法错误: 在源文件search.vhd中找到0个设计单元,包括0个实体
【问题讨论】:
-
我建议拿一本好的 VHDL 书或阅读好的在线教程。这些语法错误很容易修复。解决方案几乎在错误消息本身中给出。当然,您总是可以就很难找到的语法错误提出问题。并检查您的 VHDL 编译器是否支持 VHDL'93 或 VHDL'08。
标签: arrays for-loop search int vhdl