Réduction de la métastabilité dans les conceptions FPGA

Jason Howie
|  Créé: Février 21, 2017  |  Mise à jour: Novembre 11, 2020

Ici, nous examinons le concept de métastabilité en ce qui concerne les circuits numériques – et donc les conceptions FPGA – et comment son 'apparition' peut être grandement réduite simplement en adhérant à des principes de conception éprouvés qui atténuent son effet.

La métastabilité ! Vous pourriez être pardonné de penser que cela pourrait être lié à l'intégrité de quelque récipient de confinement futuriste, ou champ de force : "La métastabilité du triangulateur de flux du moteur à distorsion et de l'enveloppe cryonique atteint des niveaux critiques, Capitaine !"

Pour ceux d'entre vous qui vivent et respirent l'électronique numérique au quotidien cependant, le terme sera probablement accueilli avec un mélange de dédain et de respect.

Ici, nous examinons le concept de métastabilité en ce qui concerne un circuit numérique – et donc les conceptions FPGA – et comment son 'apparition' peut être grandement réduite, simplement en adhérant à des principes de conception éprouvés qui atténuent son effet.

Explication de la Métastabilité

La métastabilité concerne les sorties des registres (ou des bascules synchronisées dans l'ancien langage) au sein des circuits numériques et la possibilité pour une borne de sortie d'entrer dans un « état métastable ». Les dispositifs FPGA utilisent typiquement des bascules de type D. Avant d'examiner comment un tel état peut être atteint, il est bon de se rafraîchir la mémoire avec quelques éléments de temporisation clés liés au fonctionnement d'un registre :

« Temps de préparation » – c'est le temps minimum pendant lequel l'entrée du registre doit être stable, avant l'arrivée de la prochaine impulsion d'horloge. Apparaît généralement sous la forme Tsu dans les fiches techniques.

« Temps de maintien » – c'est le temps minimum après l'arrivée de l'impulsion d'horloge, pendant lequel l'entrée du registre doit continuer à être dans le même état stable. Apparaît généralement sous la forme Th dans les fiches techniques.

« Délai de l'horloge à la sortie » – c'est la quantité de temps, après l'arrivée de l'impulsion d'horloge, au moment où la sortie du registre change. Cela est également désigné comme le 'temps de stabilisation' ou 'délai de propagation' du registre. Peut apparaître dans les fiches techniques sous, par exemple, Tco, ou Tphl et Tplh.

Chaque fois qu'un signal se déplace entre deux domaines d'horloge asynchrones – des sous-circuits numériques au sein de la conception globale qui fonctionnent sur des horloges différentes ou non liées – il existe la possibilité de rencontrer de la métastabilité. Cela est également vrai pour le transfert de données d'une région non horlogée d'une conception vers un système synchrone – par exemple, des signaux externes (extérieurs) introduits dans un FPGA.

L'image suivante illustre deux exemples de signaux asynchrones entrant dans un système synchrone. Dans l'exemple supérieur, un signal se déplace entre différents domaines d'horloge. Dans l'exemple inférieur, un signal provenant d'un système non horlogé est introduit dans un système horlogé (synchrone).

Asynchronous System and Synchronous System Graphic

Le problème survient lorsqu'un signal de données provenant d'un domaine d'horloge arrive à la logique de registre dans un autre domaine d'horloge. Le signal de données entrant du domaine source peut changer à tout moment par rapport à l'horloge dans le domaine cible – il n'y a pas de synchronicité entre les deux domaines, aucune connaissance des vitesses de transition dans les deux sous-circuits logiques. Si le signal de données change à un moment qui viole les temps de configuration (Set-up) ou de maintien (Hold) requis pour le registre de destination, la sortie de ce registre peut entrer dans un 'état métastable' – un état où le signal de sortie n'est ni logiquement bas, ni logiquement haut, mais plutôt dans la zone instable entre les deux.

La durée pendant laquelle la sortie continue de rester métastable peut dépasser le temps spécifié de « retard de l'horloge à la sortie » (temps de stabilisation) du registre. Dans la majorité des cas, les registres vont rapidement résoudre cette instabilité de sortie et retourner à l'un des deux états définis (et stables). Le problème pour une conception, cependant, se trouve dans la minorité des cas, lorsque le temps pour se stabiliser vers un état stable n'est pas assez rapide, ou que le signal de sortie se résout au niveau logique incorrect.

L'image suivante illustre la sortie d'un registre en fonction de la transition du signal de données d'entrée.

Output of a register

En considérant les trois entrées :

Entrée A : L'entrée respecte les temps de préparation et de maintien du registre et la sortie est disponible après le temps de retard de l'horloge à la sortie de l'appareil.

Entrée B : L'entrée se fait pendant le temps de préparation du registre, avec la sortie devenant métastable jusqu'à se stabiliser au niveau stable correct au-delà du temps de retard de l'horloge à la sortie.

Entrée C : L'entrée se fait pendant le temps de maintien du registre, avec la sortie devenant métastable. Non seulement la sortie se stabilise vers un état stable au-delà du temps de retard de l'horloge à la sortie, mais elle se stabilise également au mauvais niveau logique !

Si la sortie d'un registre alimente plus d'un registre subséquent dans le circuit – en parallèle – il existe une possibilité que ces registres de destination capturent les données à des niveaux logiques différents, selon que la sortie métastable du registre source s'est stabilisée dans un état stable avant que chaque registre de destination ne soit horlogé pour capturer les données suivantes. Les retards de parcours entre les registres source et destination, ajoutés au temps nécessaire pour que la sortie métastable devienne stable, ne font qu'aggraver le problème.

En résumé, la métastabilité est un ennemi basé sur la statistique ou la probabilité pour un concepteur. Selon les dispositifs utilisés et la disposition des circuits dans la conception, des états de sortie métastables peuvent survenir, ou non. S'ils se produisent, ils peuvent être préjudiciables – causant l'échec de la conception – ou la chance peut être de votre côté et les temps de stabilisation des dispositifs, les vitesses d'horloge et les chemins routés pourraient juste rendre leur apparition bénigne. Le problème en tant que concepteur, cependant, est que pouvez-vous vraiment vous permettre de prendre ce 'risque' ? Que se passe-t-il si le produit que vous concevez fait partie d'une installation médicale ou d'un avion de ligne commercial – l'échec de la conception pourrait être catastrophique.

Bien que la métastabilité ne puisse être totalement éradiquée – aucun dispositif au monde ne peut prétendre fonctionner absolument sans risque d'effets de métastabilité – elle peut être réduite au point de devenir à peine un 'point sur le radar'.

En tant que mesure de la fiabilité d'une conception, en ce qui concerne l'échec induit par la métastabilité, nous parlons de quelque chose appelé le Temps Moyen Entre Défaillances – ou MTBF. Avec une métastabilité non contrôlée – c'est-à-dire, aucune disposition prise dans une conception pour atténuer son effet – le MTBF pourrait être aussi peu que quelques secondes. En appliquant des méthodologies de conception numérique éprouvées pour combattre la métastabilité, et en faisant des choix judicieux des dispositifs numériques utilisés dans une conception, le MTBF peut être considérablement augmenté. Mille ans entre les défaillances. Un million d'années. Voire un milliard d'années si calculé mathématiquement et extrapolé. À ces valeurs pour le MTBF, une telle conception peut être estampillée comme 'Hautement Fiable' ou pratiquement 'Infaillible' (ou devrait-on dire 'Sans Défaillance') – mais vous voyez l'idée.

Les sections suivantes examinent comment vous, en tant que concepteur, pouvez prolonger le MTBF, et comment la technologie des dispositifs joue son rôle.

Synchronisation des Signaux Asynchrones

Peut-être la solution la plus répandue et largement acceptée au problème de la métastabilité est l'ajout de circuits en amont pour synchroniser un signal asynchrone entrant avec l'horloge du circuit synchrone cible. Sous sa forme la plus simple, ce circuit est composé d'un ou plusieurs bascules D, enchaînées ensemble, et synchronisées à l'aide de l'horloge du système cible. Cela est appelé une « chaîne de registres de synchronisation », ou simplement un « synchroniseur ».

Le délai supplémentaire imposé par chaque registre permet au signal entrant de se remettre de tout état métastable dans lequel il pourrait s'être trouvé. Plus il y a de registres dans la chaîne, plus le délai est long et donc plus de temps est accordé pour qu'une sortie métastable se résolve. Le délai total est souvent connu sous le nom de « Temps de Résolution de la Métastabilité ». Typiquement, le circuit de synchronisation comprendra deux registres, mais pour des applications critiques – telles que médicales et militaires – trois n'est pas rare.

L'image suivante illustre un exemple d'ajout d'un synchroniseur à 2 étages à l'avant d'un système synchrone, pour synchroniser un signal asynchrone entrant.

adding a 2-stage synchronizer to the front-end of a synchronous system

La logique de poignée de main entre les circuits dans différents domaines d'horloge et/ou la logique FIFO est également utilisée - en plus de la synchronisation frontale - pour garantir la réception de valeurs de données correctes. Cela est particulièrement important lorsqu'il s'agit d'un regroupement busé de multiples signaux asynchrones, chacun pouvant changer à tout moment et indépendamment des autres.

Le maillon faible...

Dans une conception numérique, il peut y avoir plusieurs domaines d'horloge différents et une pléthore de signaux passant entre eux. De plus, il peut y avoir une variété de signaux externes asynchrones – provenant de l'extérieur (surtout pour une conception mise en œuvre dans un FPGA et utilisant des composants périphériques externes et des interfaces de communication). Dans de tels cas, il n'est pas rare de trouver de nombreuses chaînes de registres de synchronisation, gérant les différents transferts de signaux asynchrones au sein du système global.

En termes de MTBF, chaque chaîne de synchronisation aura sa propre "valeur". Comme le taux de défaillance global pour un design est la somme des taux de défaillance individuels pour les chaînes de synchronisation à l'intérieur, et que le taux de défaillance est de 1/MTBF, vous pouvez facilement voir qu'une chaîne de synchronisation avec un MTBF réduit par rapport aux autres, aurait un effet global néfaste sur le MTBF global pour le design. En fait, le MTBF pour le design suivra essentiellement le MTBF de la pire chaîne de synchronisation – ce qui peut être désastreux si cinq chaînes avaient un MTBF de un million d'années et une sixième chaîne avait un MTBF de 50 ans !!

Pour gérer cela, la solution est d'ajouter un autre étage de registre à la chaîne de synchronisation la moins performante dans le design, augmentant ainsi le temps de résolution de la métastabilité et améliorant considérablement le MTBF pour cette chaîne - et donc le design global – considérablement (sinon de manière exponentielle !).

Technologie des dispositifs - Plus rapide vs Plus petit

Pour récapituler, la métastabilité (bien qu'il n'y ait rien de stable dans cet état !) se produit lorsqu'un signal asynchrone entrant effectue une transition en violation du temps de préparation et/ou de maintien d'un registre. La durée totale, Temps de préparation + Temps de maintien, définit essentiellement la "fenêtre" pour la survenue de la métastabilité – la "fenêtre de métastabilité" si vous voulez.

Il est logique que plus les temps de configuration (Set-Up) et de maintien (Hold) d'un registre sont rapides, plus petite est la fenêtre de métastabilité. En effet, les familles de logique plus rapides présentent ces temps plus courts et diminuent donc la probabilité d'un événement métastable. Si un événement métastable se produit (rappelons que la métastabilité ne peut être complètement éradiquée), les registres sont suffisamment rapides pour se rétablir rapidement. Par exemple, un registre de la famille 74F conduirait à un meilleur MTBF qu'un dispositif utilisé de la famille 74LS – deux extrémités du spectre de vitesse des dispositifs.

Avec les FPGA, la diminution des géométries de processus (de 180nm, à travers 90nm et jusqu'à 65nm, 40nm et au-delà) se prête à des vitesses de commutation des transistors plus rapides – améliorant typiquement le MTBF en raison de la métastabilité. Cependant, les avantages de la réduction de taille ne sont pas sans pénalité potentielle. La réduction des géométries entraîne naturellement des tensions d'alimentation réduites. Pendant un état métastable, la sortie d'un registre est typiquement la moitié de la tension d'alimentation. À mesure que la tension d'alimentation devient de plus en plus petite, la différence de tension entre le plein et la moitié se rétrécit, conduisant à une réduction du gain du circuit et à des temps plus longs pour que les registres se rétablissent d'un état métastable.

Les fournisseurs de FPGA effectuent généralement une analyse métastabilité rigoureuse pour assurer une robustesse contre la métastabilité dans les dispositifs physiques qui utilisent ces géométries de processus en constante diminution.

Liens Utiles

Utilisez les liens suivants pour accéder à des documents externes qui examinent de plus près et en détail le phénomène de la métastabilité et comment son effet est essentiellement rendu négligeable dans les conceptions électroniques numériques. Beaucoup de ces documents examinent les équations utilisées pour calculer le MTBF pour un basculeur, et le MTBF subséquent pour une conception entière, et fournissent eux-mêmes des références pour plus d'informations sur le sujet.

Métastabilité en logique numérique (www.interfacebus.com)

FPGA-FAQ 0017 : Parlez-moi de la Métastabilité (Philip Freidin)

Métastabilité en électronique (Wikipédia)

Qu'est-ce que la Métastabilité ? (www.asic-world.com)

Métastabilité dans la Conception (The VLSI Homepage)

Livre Blanc : Comprendre la Métastabilité dans les FPGA (Altera)

Note d'Application : Récupération Métastable dans les FPGA Virtex-II Pro (Peter Alfke, Xilinx)

Note d'Application : Métastabilité et la Famille ECLinPS (Ingénierie d'Applications, ON Semiconductor)

Réponse Métastable dans les Circuits Logiques 5-V (Texas Instruments)

A propos de l'auteur

A propos de l'auteur

Jason Howie est responsable de la rédaction technique chez Altium. Il apporte une remarquable expérience de la rédaction technique et il n’est pas rare que son ordinateur reste allumé jusqu'aux petites heures du matin. Avant de rejoindre Altium en mai 2000, Jason a passé un peu plus de 4 ans au Joint European Torus dans l'Oxfordshire, au Royaume-Uni, dans le cadre des Machine Instrumentation & Protection Systems.

Ressources associées

Documentation technique liée

Retournez à la Page d'Accueil
Thank you, you are now subscribed to updates.