Analyse temporelle et CDC

Dans une FIFO asynchrone de 16 mots de profondeur, quelle est la raison correcte pour laquelle les pointeurs d'écriture et de lecture ont 5 bits, soit 1 bit de plus que l'adresse ?

  1. AParce qu'il faut 5 bits pour représenter les adresses de 16 mots
  2. BPour pouvoir distinguer, lorsque les pointeurs sont égaux, l'état vide (même tour) de l'état plein (un tour d'écart)
  3. CPour utiliser le bit supplémentaire comme parité et détecter les erreurs de pointeur
Afficher la réponse et l'explication

Réponse : B. Pour pouvoir distinguer, lorsque les pointeurs sont égaux, l'état vide (même tour) de l'état plein (un tour d'écart)

Les adresses de 16 mots s'expriment sur 4 bits, mais avec des pointeurs de 4 bits seulement, lorsque les adresses de lecture et d'écriture coïncident, on ne peut pas distinguer l'état vide, où tout a été lu, de l'état plein, où l'écriture a fait un tour complet et rattrapé la lecture. En ajoutant un 5e bit qui indique le tour, on peut, en comparaison binaire, conclure à l'état vide si les 5 bits coïncident, et à l'état plein si seul le bit de poids fort diffère. Avec des pointeurs en code de Gray, la comparaison pour détecter l'état plein change légèrement. Le bit n'est pas utilisé comme parité.

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

Autres questions sur Analyse temporelle et CDC

  1. Dans une FIFO asynchrone de 16 mots de profondeur utilisant des pointeurs de 5 bits en code de Gray, quelle condition de détection de l'état plein (full) côté écriture est correcte ?
  2. Dans une FIFO asynchrone, le pointeur de l'autre côté est utilisé après synchronisation, si bien que la valeur visible a 2 à 3 cycles de retard. Quel est l'effet correct de ce retard sur la détection de full/empty ?
  3. Dans une FIFO asynchrone dont le côté écriture est à 100 MHz et le côté lecture à 80 MHz, le côté écriture écrit des rafales de 100 mots à raison d'un mot par cycle, et le côté lecture lit un mot par cycle. Il y a suffisamment de temps de repos entre les rafales. Quelle est la profondeur minimale nécessaire pour éviter tout débordement (le retard dû à la synchronisation est ignoré) ?
  4. Le côté écriture écrit, à 200 MHz, des rafales de 120 mots à raison d'un mot par cycle. Le côté lecture, avec une horloge de 150 MHz, ne lit un mot que pendant 2 cycles sur 3. Quelle est la profondeur minimale nécessaire pour éviter tout débordement (le retard dû à la synchronisation est ignoré) ?
  5. Le côté écriture est à 250 MHz et le côté lecture à 200 MHz, et tous deux transfèrent un mot par cycle. Quelle est la profondeur minimale théoriquement nécessaire pour une FIFO recevant des rafales de 64 mots (le retard dû à la synchronisation est ignoré, et les fractions sont arrondies à l'entier supérieur) ?