Pourquoi les bascules D-Flip en cascade empêchent-elles la métastabilité?

15

Je comprends ce qu'est la métastabilité, mais je ne comprends pas comment la liaison des tongs réduit cela?

Si la sortie de la première bascule est métastable, celle-ci est utilisée comme entrée pour la seconde. Mais je ne vois pas comment la 2e bascule pourra faire quoi que ce soit avec cette entrée et la rendre stable.

Merci d'avance!

Wouter A
la source
2
Toujours à la recherche d'une occasion de mentionner le cul de Buridan: en.wikipedia.org/wiki/…
copper.hat

Réponses:

11

La métastabilité ne peut pas être «guérie», mais si vous attendez assez longtemps , la probabilité qu'elle se produise peut être arbitrairement réduite. Une fois que vous l'avez réduit à une fois à l'ère de l'univers, il est peu probable qu'il vous cause des ennuis.

C'est comme équilibrer un crayon sur sa pointe. Il est probable qu'il tombe, et plus vous attendez, moins il est probable qu'il reste debout.

Il y a deux problèmes à attendre longtemps, et l'un d'eux est fondamental.

Le problème fondamental est que si vous avez un seul élément de mémoire (verrou ou bascule, ils souffrent tous deux de métastabilité) dans un système cadencé recevant la sortie d'un système externe asynchrone, vous ne pouvez pas physiquement définir une limite inférieure au temps d'attente , il arrive que le signal externe effectue une transition près du bord de contrôle de verrouillage. Vous devez acheminer le signal vers une autre bascule pour le laisser y attendre. Cela vous donne un temps d'attente minimum garanti d'un cycle d'horloge.

Le deuxième problème est que vous essayez souvent d'exécuter un système aussi vite que possible, et la fréquence d'horloge du système ne peut pas être ralentie pour donner suffisamment de temps dans la deuxième bascule. La seule façon d'augmenter la latence du signal à ce qui est nécessaire, sans diminuer le débit, est de canaliser l'attente vers plus d'étapes.

Certaines personnes ont du mal à visualiser ce qui se passe entre les tongs. Il existe deux façons d'induire la métastabilité, et elles impliquent toutes deux de violer les règles de bascule. Une façon consiste à violer la configuration d'entrée et les temps de maintien, pour effectuer une transition lorsque la bascule s'attend à ce que l'entrée soit stable. L'autre consiste à violer les niveaux logiques d'entrée, à faire en sorte que l'entrée de données de bascule se trouve à un niveau de tension intermédiaire. Une bascule métastable peut produire l'un ou l'autre type de violation sur sa sortie, pour se répercuter sur la prochaine bascule.

Neil_UK
la source
6
À titre d'exemple, à l'époque où je faisais de la conception de puces, je possédais la métastabilité, tous les passages d'horloge, nous avons fait le calcul, compris les chances de défaillance du synchroniseur à chaque flop, groupe de flops, etc., etc., j'ai examiné les résultats. être ... la plupart du temps un pixel sur l'écran pourrait baisser, à la fin tout le long de la puce est descendu à environ une fois tous les deux ans - c'était une carte graphique pour Win95 qui à l'époque ne pouvait pas rester plus de environ un jour, nous avons décidé que personne ne remarquerait même un synchroniseur MTBF de 2 ans.
Taniwha
7
Une autre chose que personne ne mentionne est ce qui se passe avec l'échec absolu de la métastabilité ... parfois, l'échec du synchroniseur entraîne un flop oscillant en interne à une fréquence stupidement élevée, peut-être à des niveaux entre les hauts et les bas numériques normaux - si cela échappe à votre haut - gagner des flops de synchroniseur anti-métastabilité qu'une catastrophe bruyante peut infecter tous les flops en aval (comme les fans de trucs) entraînant d'énormes tirages de courant et même potentiellement une surchauffe et la mort de puce - alors faites attention à cela comme un problème
Taniwha
@Neil_UK Vous utilisez le mot verrou qui me semble déroutant. Dans mes cercles, un verrou est un élément asynchrone. Je les appellerais des tongs pour plus de clarté.
jalalipop
1
@jalalipop J'utilisais le verrou pour signifier une bascule, bien que sa signification ait peut-être changé au cours des décennies depuis que j'ai commencé à l'utiliser. Bien que je convienne que «verrou» se réfère généralement au type transparent asynchrone, ils souffrent également de la métastabilité si les données changent sur le bord «verrouillé» de l'entrée d'activation. Une bascule maître-esclave est généralement construite en interne à partir d'une paire de verrous commandés en opposition de phase par l'horloge. Merci de l'avoir mentionné, je vais modifier la réponse pour clarifier.
Neil_UK
@ Tamiwha Pouvez-vous fournir une réponse avec des diagrammes et des constantes de temps et les mathématiques, pour clarifier les comportements internes des verrous lorsqu'ils essaient de résoudre. Vous devez montrer (comme vous le savez certainement) comment le gain de boucle et la constante de temps de régénération et le bruit de fond (thermique et VDD) affectent la capacité de résolution.
analogsystemsrf
9

Il réduit la probabilité de métastabilité affectant le circuit en laissant plus de temps jusqu'à ce que le signal soit réellement utilisé. Avec deux bascules, il permet un cycle d'horloge supplémentaire pour que le signal se stabilise. Avec trois, il permet deux cycles d'horloge supplémentaires.

user253751
la source
2
Bonne réponse. Le point important est que la métastabilité n'est pas empêchée , nous réduisons simplement la probabilité à un niveau acceptable.
Elliot Alderson
1
Les bascules en cascade donnent donc le temps au signal de s'installer entre 0 et 1, mais cela ne résout pas une mauvaise valeur? puisqu'un signal métastable peut tomber dans les deux sens?
Wouter A
2
@WouterA S'il est métastable, les deux valeurs sont correctes.
user253751
4
Je ne pense pas que ce soit une bonne réponse, seul le premier flop échantillonne le signal d'entrée dans ce cas. Comme mentionné ci-dessus, ce qui se passe est qu'il y a une probabilité de métastabilité (dépend du gain dans les boucles de rétroaction internes du flop, de la vitesse d'horloge et de la vitesse à laquelle la chose échantillonnée passe entre les seuils d'entrée) dans un flop particulier, c'est (espérons-le) un petit nombre <1 = p - deux flops nous donnent p ^ 2 chances de MS passant 2 flops, 3 p ^ 3 etc etc
Taniwha
4

Ils n'empêchent pas la métastabilité d'affecter la sortie, mais ils peuvent augmenter considérablement le temps moyen entre les incidents car la métastabilité devrait être d'une durée relativement longue.

La cascade de trois (ou plus) tongs bien conçues peut augmenter le temps entre les incidents à quelque chose comme l'âge de la terre.

Spehro Pefhany
la source
Dépend de votre fréquence d'horloge et de votre technologie de processus. Une bascule pourrait être suffisante pour que votre MTBF soit infinitésimal, tant que vous gardez le mou haut.
jalalipop
@jalalipop Sure. Il y a des informations de test réelles (très datées maintenant) dans le papier IEEE original. DOI: 10.1109 / TC.1983.1676187
Spehro Pefhany
@jalalipop: généralement, c'est un problème qui est plus pertinent lorsque vous ne pouvez pas garantir le temps de relâchement ... alias conception asynchrone, comme le FIFO qui communique entre le cœur du processeur et le SOC lorsque les horloges respectives ne sont pas verrouillées en phase. Sinon, vous définissez simplement un temps d'installation difficile et garantissez que la métastabilité ne se produira pas.
jbord39
Oui, la métastabilité est une préoccupation sur une interface asynchrone. Le jeu auquel je fais référence est le jeu de la logique synchrone après la bascule. Si votre jeu est important, l'événement de métastabilité s'éteindra avant qu'il n'affecte le reste de votre conception.
jalalipop
2

Car la première bascule, même si elle est métastable, aura toute la période de l'horloge pour se stabiliser. Au moment où la deuxième bascule échantillonne la première bascule, sa sortie pourrait être déjà stable.

Claudio Avi Chami
la source
1

Si vous voulez l'excitation de la métastabilité, implémentez DEUX ONDULEURS TRÈS LENTS, connectez-les dos à dos et polarisez-les (dans une simulation) à VDD / 2. Supprimez ensuite la polarisation et observez la vitesse de résolution aux niveaux logique1 et logique0. Vous devrez peut-être choisir une tension de polarisation initiale autre que VDD / 2.

Si vos 2 ou 3 tongs sont LENTES par rapport à la période d'horloge, la vie peut être remplie de problèmes.

analogsystemsrf
la source
1

La métastabilité signifie simplement que, si vous avez une transtion de données dans une fenêtre temporelle particulière référencée à l'horloge, la sortie se comportera mal pendant une certaine période après le front d'horloge. Cependant, la fenêtre n'est pas un intervalle fixe. Au contraire, la probabilité d'une mauvaise valeur (oscillation ou niveau de tension intermédiaire) diminue de façon exponentielle avec le temps. Donc, si vous échantillonnez le signal avec une horloge, puis attendez un peu avant d'appliquer l'horloge à la deuxième bascule, vous pouvez réduire les chances d'un mauvais bit à toute probabilité souhaitée (mais non nulle). Si le temps requis est trop long, vous pouvez utiliser 3 tongs ou plus en série.

WhatRoughBeast
la source