La logique de contrôle est incorrectement générée en raison d’un problème dans les versions 4.1 et 4.1 SP1 du logiciel Quartus II si les conditions suivantes sont respectées :
- Vous insérez instantanément un lpm_counter mégafunction ou le lpm_counter mégafunction est déduit de votre code HDL pendant la synthèse.
- Le compteur de votre conception utilise à la fois des signaux clairs asynchrones et synchrones
- Vous compilez le ciblage de conceptionStratix®,Stratix GX, Cyclone®,MAX® II ou les périphériques Hardcopy Stratix
Le comportement incorrect est dû à un problème avec l’implémentation de la boîte claire du lpm_counter mégafunction. Pour éviter le problème si vous disposez d’un compteur dans votre conception qui utilise à la fois les signaux clairs prédéfini asynchrones et synchrones, copiez le fichier lpm_counter.tdf dans le répertoire d’installation <Quartus II>répertoire \libraries\megafunctions dans votre répertoire de projets.
Ce problème est résolu à partir du logiciel Quartus II version 4.2.
Vous trouverez ci-dessous un exemple de code implémenté incorrectement dans les versions 4.1 et 4.1 SP1 du logiciel Quartus II. Dans cet exemple, le clr
signal est supprimé dans l’implémentation finale.
process (clk, clr, preset) is
begin
if (preset = '0') then
counter <= (others => '1');
elsif rising_edge(clk) then
if (clr = '1') then
counter <= (others => '0');
else
counter <= counter 1;
end if;
end if;
end process;