Analyse temporelle et CDC

Chaque bit d'une donnée de 4 bits a été transmis vers un autre domaine d'horloge via son propre synchroniseur à 2 étages. Lorsque la donnée passe de 0111 à 1000, quel problème peut survenir ?

  1. ALes cycles de capture diffèrent d'un bit à l'autre, et l'on peut recevoir une valeur intermédiaire comme 1111 ou 0000
  2. BLe passage par les synchroniseurs aligne tous les bits sur le même cycle, donc aucun problème ne survient
  3. CLes 4 bits deviennent tous métastables et ne reviennent plus ni à 0 ni à 1
Afficher la réponse et l'explication

Réponse : A. Les cycles de capture diffèrent d'un bit à l'autre, et l'on peut recevoir une valeur intermédiaire comme 1111 ou 0000

Pour chaque bit, un synchroniseur à 2 étages ne permet pas de savoir si le changement sera capturé au front courant ou au suivant. Lors du passage de 0111 à 1000, les 4 bits changent, si bien que l'on peut recevoir pendant 1 cycle 1111, 0000, 0100 ou une autre valeur où seuls certains bits ont pris la nouvelle valeur. Si le récepteur utilise cette valeur, il dysfonctionne. La métastabilité se résout en 0 ou en 1 avec le temps. Pour une valeur de compteur, on la convertit en code de Gray afin qu'un seul bit change ; pour des données quelconques, on utilise un handshake ou une FIFO asynchrone.

S'entraîner sur ce thème Retour au thème

Autres questions sur Analyse temporelle et CDC

  1. Quelle méthode permet correctement de transmettre en toute sécurité une donnée multibit vers un autre domaine d'horloge ?
  2. Une impulsion qui vaut 1 pendant un seul cycle (2 ns) dans un domaine d'horloge à 500 MHz a été transmise à un domaine à 100 MHz via un synchroniseur à 2 étages. Quel problème peut survenir ?
  3. Pour transmettre de façon fiable un signal de niveau d'un domaine à 400 MHz vers un domaine à 100 MHz via un synchroniseur, on veut que la largeur du signal soit d'au moins 1,5 fois la période de l'horloge de réception. Quelle largeur minimale, en cycles de l'horloge émettrice, faut-il ?
  4. En synchronisation par toggle (on transmet un signal de niveau qui s'inverse côté émetteur à chaque impulsion), quelle est la bonne méthode pour récupérer l'impulsion d'origine côté récepteur ?
  5. Quelle contrainte s'applique correctement lorsqu'on transmet des impulsions d'un domaine d'horloge rapide vers un domaine d'horloge lent par synchronisation par toggle ?