Ich erstelle eine Funktion, die eine Zufallszahl generiert. Diese Zahl repräsentiert ein Jahr. Ich muss herausfinden, ob dieses Jahr ein Schaltjahr ist. Der Bereich der generierten Zahlen liegt zwischen 2000 und 2017, also denke ich, dass ich einen Fall verwenden könnte, anstatt eine Formel anzuwenden, um die Schaltjahre zu finden.VHDL Fallstatement Fehler
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;
Ich bekomme diesen Fehler in jeder Zeile mit 'wann' erwartet die letzte.
Error: COMP96_0019: Afisare.vhd : (28, 9): Keyword 'others' expected.
Ändern Sie auch leap_year in std_logic. – FritzDC
@FritzDC nicht unbedingt, wir kennen den Kontext nicht. Wenn es "ganzzahlig" oder besser ist, "natürlicher Bereich 0 bis 1", können Sie es zu daysPerYear usw. hinzufügen (aber Sie müssten die Anführungszeichen auch dort verlieren) –
Ja, "oder die Anführungsstriche auch verlieren" wäre in Ordnung. Allerdings ist es beim Schreiben von VHDL eine gute Angewohnheit, std_logic für binäre Logik zu verwenden. – FritzDC