我创建一个生成随机数的函数。这个数字代表一年。我需要确定那一年是否是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;
我在每行上都带有“何时”期望最后一个错误。
Error: COMP96_0019: Afisare.vhd : (28, 9): Keyword 'others' expected.
最佳答案
查看您的case
行:
when '2000' => leap_year <='1';
2000
是一个整数,但是您在其周围加上了单引号。这不是有效的构造;只需删除单引号即可:when 2000 => leap_year <='1';
根据评论,为
integer
选择leap_year
有点奇怪。如果使用std_logic
类型定义此名称,则对leap_year <= '1'
的分配将变为有效。或者,如果适合integer
,则将分配更改为leap_year <= 1
。
关于random - VHDL案例陈述错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42953129/