random - VHDL案例陈述错误

标签 random error-handling vhdl leap-year

我创建一个生成随机数的函数。这个数字代表一年。我需要确定那一年是否是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/

相关文章:

node.js - 为什么这个Azure时间触发功能不会失败?

c# - 是否有可能知道ErrorProvider在哪个控件上显示?

VHDL Testbench 过度仿真

vhdl - 通用记录(通过 vhdl 2008 通用包尝试)

c - 开始现有项目的工作

javascript - 如何在数组中选择随机元素避免(如果是的话除外)某个值?

c - 用 C 语言运行 rand() 并使用 Shell 脚本循环

JavaScript:Math.Random() 是否使用当前时间戳来生成随机数?

random - 对于大型数据库,从 Impala 采样的最佳查询是什么?

c# - 从MVC中的自定义异常类型返回403