Ich lerne VHDL mit Altera Max V und Quartus, um einige Beispiele zu tun, und ich habe ein Problem bei der Verwendung "With Select wenn" -Anweisung. Ich habe eine einfache 2-4-Decoder wie folgt:VHDL: Fehler bei der Verwendung von "With Select When" Anweisung
library ieee;
use ieee.std_logic_1164.all;
entity lesson9 is
port(
x: in std_logic_vector(1 downto 0);
en: in std_logic;
y: out std_logic_vector(3 downto 0)
);
end lesson9;
architecture rtl of lesson9 is
signal outputBuff: std_logic_vector(3 downto 0);
begin
decoder2to4: process(x)
begin
with x select
outputBuff <= "0001" when "00",
"0010" when "01",
"0100" when "10",
"1000" when "11";
end process decoder2to4;
y <= outputBuff;
end rtl;
Und ich habe die Fehlermeldung:
in der Nähe von Text "mit"; „Ende“ oder „(“ oder eine identifer erwartet („mit“ ist ein reserviertes Schlüsselwort), eine sequentielle Anweisung pr
Ich habe versucht, meinen Code zu überprüfen, konnte aber das Problem nicht finden?
Welche Version von Quartus verwenden Sie? With-Select es VHDL-2008 Konstrukt und nicht von älteren Tool-Version unterstützt. Stellen Sie außerdem sicher, dass VHDL-2008 für die Datei aktiviert wird, wenn Sie die aktuellere Quartus-Version verwenden. – FritzDC
'with ... select' ist kein VHDL-2008-Konstrukt, aber es ist neu,' 'mit ... select' in sequentiellem Code (z. B. einem Prozess) zuzulassen. Sie müssen entweder den Prozess entfernen, um gleichzeitig 'with ... select' zu erstellen oder die Kompilierung mit 2008-Features zu aktivieren, wenn Ihr Tool dies unterstützt. – Paebbels