J'apprends le VHDL en utilisant Altera Max V et Quartus pour faire quelques exemples et j'ai un problème en utilisant l'instruction "Avec Select when". J'ai un décodeur simple, 2-4 comme suit:VHDL: erreur lors de l'utilisation de "With Select When" Statement
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;
Et je reçu le message d'erreur:
texte près "avec"; attendre « fin », ou « (», ou un identifer (« avec » est un mot-clé réservé), pr une déclaration séquentielle
J'ai essayé de vérifier mon code, mais n'a pas pu trouver le problème?
Quelle version de Quartus vous utilisez? Avec-sélectionnez-le VHDL-2008 construire et non pris en charge par l'ancienne version de l'outil. Assurez-vous également d'activer VHDL-2008 pour le fichier si vous utilisez une version plus récente de Quartus. – FritzDC
'with ... select' n'est pas une construction VHDL-2008, mais c'est nouveau pour autoriser' with ... select' dans le code séquentiel (par exemple un processus). Vous devez soit supprimer le processus pour rendre simultanées 'with ... select' ou activer la compilation avec les fonctions 2008 si votre outil les prend en charge. – Paebbels