繁体   English   中英

VHDL案例陈述错误

[英]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_yearinteger选择有些奇怪。 如果使用std_logic类型定义它,则leap_year <= '1'分配将变为有效。 或者,如果integer合适,则将分配更改为leap_year <= 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM