Écriture standard (circuit synchrone)

L’horloge choisie doit être le signal le plus rapide du système c’est à dire celui qui donnera le temps minimal d’échantillonnage des autres signaux (qualifiés de lent). ==> UNE SEULE HORLOGE
Chaque fois que l’on écrit h’event AND…, le synthétiseur comprend que h est une horloge.

Si le circuit est synchrone, tous les processus avec mémorisation par registres devront s’écrire:

synchrone: PROCESS
BEGIN
WAIT UNTIL rising_edge (clk); — c’est donc synchrone de clk
IF clear = ’1′ THEN
q <= OTHERS => ’0′; — remise à zéro synchrone
ELSIF condition_logique THEN — Entrée Enable des bascules D
q <= entree_particuliere;
END IF;
END PROCESS;

Remarques:

  • Préférer le WAIT UNTIL plus explicite à la liste de sensibilité (Clk) suivie d’un IF rising_edge(clk)
  • Autant de rising_edge sur des signaux différents autant d’horloges. Dans les cas simple, une seule horloge suffit
  • Si l’on doit traiter des signaux lents par rapport à l’horloge, ils interviennent au niveau de l’ »enable » c’est à dire de la condition logique du PROCESS. Par exemple, l’horloge est à 50 MHz, on veut compter un signal qui provient touts les Millisecondes. La condition logique sera vraie pendant une seule période de base toutes les millisecondes ( voir aussi exemple suivant)

Leave a Reply

You must be logged in to post a comment.