[英]VHDL Case statement error
我创建一个生成随机数的函数。 这个数字代表一年。 我需要确定那一年是否是a年。 生成数字的范围在2000年至2017年之间,因此我认为我可以使用案例而不是应用公式来查找the年。
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;
我在每行上都带有“何时”期望最后一个错误。
错误:COMP96_0019:Afisare.vhd:(28,9):预期使用关键字“其他”。
查看您的case
行:
when '2000' => leap_year <='1';
2000
是整数,但是您在其周围加上了单引号。 这不是有效的构造; 只需删除单引号即可:
when 2000 => leap_year <='1';
根据评论,对于leap_year
的integer
选择有些奇怪。 如果使用std_logic
类型定义它,则leap_year <= '1'
分配将变为有效。 或者,如果integer
合适,则将分配更改为leap_year <= 1
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.