我创建一个生成随机数的函数。这个数字代表一年。我需要找到那一年是否是闰年。生成数字的范围在2000年到2017年之间,所以我认为我可以使用案例而不是应用公式来找到闰年。
architecture arh_afisare of afisare is
signal year: integer;
signal leap_year: integer;
begin
process
begin
year <= random_gen(2000, 2017);
case year is
when '2000' => leap_year <='1';
when '2004' => leap_year <='1';
when '2008' => leap_year <='1';
when '2012' => leap_year <='1';
when '2016' => leap_year <='1';
when others => leap_year <='0';
end case;
wait for 100 ns;
end process;
end architecture;
我在'when'期待最后一行的每一行都收到此错误。
错误:COMP96_0019:Afisare.vhd:(28,9):关键字“其他人”预期。
答案 0 :(得分:2)
查看您的case
行:
when '2000' => leap_year <='1';
2000
是一个整数,但你在它周围放了单引号。这不是一个有效的结构;只需删除单引号:
when 2000 => leap_year <='1';
根据评论,integer
对leap_year
的选择有点奇怪。如果您使用std_logic
类型对其进行定义,则leap_year <= '1'
的分配将生效。或者,如果integer
合适,请将作业更改为leap_year <= 1
。