0
난 난수를 생성하는 함수를 만듭니다. 이 숫자는 1 년을 나타냅니다. 그 해가 윤년인지 찾아야합니다. 생성 된 숫자의 범위는 2000에서 2017 사이이므로 윤년을 찾기 위해 수식을 적용하는 대신 사례를 사용할 수 있다고 생각합니다.VHDL 사례 문 오류
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'이 마지막 행을 예상 할 때마다 발생합니다. 당신의 case
라인에서
Error: COMP96_0019: Afisare.vhd : (28, 9): Keyword 'others' expected.
또한 leap_year를 std_logic으로 변경하십시오. – FritzDC
@FritzDC가 반드시 필요한 것은 아니며 문맥을 알지 못합니다. 정수형 또는 그 이상인 경우 자연스러운 범위 0에서 1까지 daysPerYear 등에 추가 할 수 있습니다 (단, 따옴표를 잃어 버릴 수도 있습니다). –
예, "따옴표도 잃어 버릴 수 있습니다" 순서대로. VHDL을 작성하는 동안 std_logic을 사용하여 이진 논리를 학습하는 것이 좋은 습관 일 수 있습니다. – FritzDC