En raison d’un problème dans le logiciel Quartus® II, la synthèse de Quartus II peut générer cette erreur en essayant d’évaluer une expression indexée en VHDL qui est hors de la plage dans une expression s’il se trouve à l’intérieur d’une boucle.
Il est possible que vous voyiez cette erreur lorsque toutes les conditions suivantes sont remplies :
- Une déclaration dans un for loop
- La déclaration s’il s’agit d’une comparaison de deux expressions de nombres entiers utilisant , >= ou =
- La variable de boucle se produit dans les expressions évaluées par la déclaration if
- L’expression évaluée par l’affirmation s’il est limité à , -, et *
Voici un exemple de quand cette erreur se produirait :
entity test is
port
(
i1_data_in : in std_logic_vector(3 downto 0);
i_div_pos : in std_logic_vector(7 downto 0);
o_data_out : out std_logic_vector(7 downto 0)
);
END entity test;
architecture rtl of test is
signal idx : integer;
signal lim : NATURAL range 0 to 5;
idx <= to_integer(unsigned(i_div_pos));
lim <= 3;
process(i1_data_in, idx)
variable temp : std_logic_vector(o_data_out\'range);
begin
temp := (others => \'0\');
u1 : for i in 0 to 7 loop
if i <= 3 - lim then
temp(i) := i1_data_in(i);
else
temp(i) := i_div_pos (i);
end if;
end loop;
o_data_out <= temp;
end process;
end rtl;
Un correctif est disponible pour résoudre ce problème avec la version 11.0 SP1 du logiciel Quartus II. Téléchargez et installez le correctif 1.40 à partir du lien approprié ci-dessous. Après l’installation du correctif, activez le correctif en créant ou en éditant le fichier quartus.ini dans votre répertoire de projet pour inclure la ligne suivante :
vrfx_optimize_if_dead_code=on
- Téléchargez la version 11.0 SP1 du correctif 1.40 pour Windows (.exe)
- Téléchargez la version 11.0 SP1 du correctif 1.40 pour Linux (.tar)
- Téléchargez le readme pour le logiciel Quartus II version 11.0 SP1 du correctif 1.40 (.txt)
Si vous rencontrez cette erreur lors de l’utilisation d’une version différente du logiciel Quartus II, soumettez une demande de service à l’aide de mySupport.