/ Assignation / VHDL quand… sinon rend l'erreur de syntaxe

Affectation VHDL lorsque… else génère une erreur de syntaxe - syntaxe, vhdl

Simplement, quel serait le problème avec cette ligne?

zero <= "1" when alu_out = "00000000" else "0";

C'est dans un processus. zero est std_logic et alu_out est std_logic_vector(7 downto 0). Les deux sont définis dans l'entité et l'affectation est effectuée dans l'architecture. L'erreur est:

Error (10500): VHDL syntax error at alu.vhd(27) near text "when";  expecting ";"

Réponses:

2 pour la réponse № 1

Cela ressemble à l’utilisation de la révision VHDL-2002, dans laquelle le format d’affectation du signal conditionnel simultané ne peut pas être utilisé comme une instruction dans un processus.

Essayez d'activer le support de révision VHDL-2008 si l'outil le permet, sinon utilisez un if déclaration ou écrivez votre propre fonction ternaire.

Voir aussi ceci question et réponse.

Pour Altera Quartus Prime ver. 15.1 La sélection de la version d'entrée VHDL est illustrée dans la figure ci-dessous.

entrer la description de l'image ici