Vous pouvez obtenir la simulation de fonctionner parfaitement sans la condition clock'event
, mais la synthèse va sortir faux.
La norme IEEE sur VHDL synthétisable requiert que vous ajoutez clock'event
. Il est communément accepté d'écrire if rising_edge(clock)
à la place. Cela traduit beaucoup mieux votre intention. Les deux fonctions rising_edge
et falling_edge
sont autorisées en tant que constructions VHDL synthétisables.
Pour la simulation:
process (clock) is
-- stuff
begin
if clock='1' then -- EVIL! don't do this
-- do things
end if;
end process;
En supposant que clock
juste passe de « 0 » à « 1 » et retour (pas de méta-valeurs), le comportement serait identique à ce que vous obtiendriez avec une condition clock'event
. Encore une fois, cela ne synthétisera pas ce que vous voulez! Vous aurez probablement un loquet, pas une bascule D.
(points de bonus pour quiconque tente de synthétiser cela et récupère les résultats!)
pas vrai, le processus ne se déclenche que lorsque l'un des signaux dans les listes de sensibilité changent. – Philippe