Les Process
Le bloc process : liste de sensibilité, instructions séquentielles, et patterns combinatoire/séquentiel.
Qu'est-ce qu'un process ?
Le process est le seul endroit en VHDL où les instructions s'exécutent séquentiellement (comme dans un langage de programmation classique).
-- Structure générale
process(liste_de_sensibilite)
-- déclarations locales (variables)
begin
-- instructions séquentielles
end process;Un process est un bloc concurrent par rapport au reste de l'architecture : plusieurs process s'exécutent en parallèle entre eux, mais les instructions internes à un process sont séquentielles.
La liste de sensibilité
Le process se "réveille" uniquement quand un signal de sa liste de sensibilité change.
Process combinatoire
-- Tous les signaux lus dans le process doivent être dans la liste
process(i_a, i_b, i_sel)
begin
if i_sel = '0' then
w_mux <= i_a;
else
w_mux <= i_b;
end if;
end process;Si un signal est oublié dans la liste de sensibilité d'un process combinatoire, la simulation peut devenir incohérente avec la synthèse. Un latch est inféré surtout quand toutes les sorties ne sont pas assignées sur tous les chemins.