Un état métastable est similaire à un équilibre instable. Un exemple courant d'équilibre instable est un pendule inversé . Si vous pouvez équilibrer le pendule en position verticale, c'est un état stable. Cependant, si quelque chose pousse le levier d'un côté ou de l'autre (courants d'air ou vibrations du sol, par exemple), le pendule ne se remettra pas en position verticale, il tombera. Contraste avec un pendule régulier qui, s'il est poussé d'un côté, finira par se redresser à la verticale.
Des équilibres stables sont utilisés dans les systèmes électriques pour créer des éléments de stockage. Les équibria instables ne font pas de bons éléments de stockage (car ils perdent facilement leur état), mais existent souvent comme état parasite.
Un élément de stockage numérique commun est une paire d'onduleurs à couplage croisé:
L'élément de stockage a deux états stables, l'un où le nœud à gauche est à la tension d'alimentation et le nœud à droite est à la masse, et l'autre dans la condition opposée. Il existe également un état instable, dans lequel chaque nœud est à une tension intermédiaire.
Pour mieux comprendre comment survient l'état instable, rappelez la fonction de transfert d'un onduleur. Le tracé de la fonction de transfert montre la tension de sortie de l'onduleur pour une tension d'entrée donnée.
L'onduleur est non linéaire; une façon simple d'obtenir une solution approximative d'un circuit non linéaire consiste à tracer les caractéristiques du circuit; les intersections des tracés sont les solutions, ou en d'autres termes, les points où les caractéristiques électriques de tous les composants du circuit sont satisfaites. Normalement, cela se fait avec des tracés iv comme dans cet exemple de diode sur Wikipedia . Cependant, pour les onduleurs, nous le ferons avec des tracés vv. Superposition d'une deuxième fonction de transfert de l'onduleur sur le tracé (avec les axes inversés, car le deuxième onduleur est à l'envers:
Il y a trois intersections des parcelles: une à (0, Vs), une à (Vs, 0) et une à (Vs / 2, Vs / 2). L'état (Vs / 2, Vs / 2) est métastable. Après une petite perturbation de l'un ou l'autre des nœuds, le circuit se stabilisera presque toujours dans l'un des états stables plutôt que de revenir à (Vs / 2, Vs / 2).
La façon d'écrire une valeur sur l'élément de stockage à double onduleur consiste à forcer l'un des nœuds à la valeur souhaitée à l'aide d'un pilote plus fort que les onduleurs. Une façon courante de le faire est d'utiliser un transistor de passage:
Si vous connectez la grille du transistor de passage à l'horloge, vous avez un verrou D (je laisse de côté la structure de sortie). Lorsque l'horloge est élevée, ce qui permet au transistor de passage, le verrou est transparent - l'entrée passe directement à la sortie. Lorsque l'horloge est basse, le verrou conserve la valeur précédente. La métastabilité survient au moment où les échantillons de verrouillage sont détectés. Si l'entrée est une tension haute ou basse stable lorsque le verrou échantillonne, cela fonctionnera correctement. Cependant, si l'entrée se situe autour du point Vs / 2 lorsque les échantillons de verrouillage, il est possible que le verrouillage se retrouve dans l'état métastable (Vs / 2, Vs / 2). Une fois qu'il est dans l'état métastable, il peut y rester indéfiniment (en supposant que le verrou n'est plus synchronisé), mais comme il s'agit d'un équilibre instable, quelque chose se produit généralement assez rapidement pour le faire sortir de l'état métastable.
Quand s'inquiéter de la métastabilité
Si vos éléments de stockage deviennent métastables, vous perdez au moins une partie du budget de synchronisation pour la logique en aval. La logique ne peut pas effectuer l'évaluation souhaitée tant que l'état métastable n'est pas résolu. Dans le pire des cas, l'état métastable persiste ou se propage via la logique, et les éléments de stockage en aval deviennent également métastables, ou plusieurs éléments de stockage associés capturent des valeurs incohérentes.
Une logique synchrone correctement conçue et fonctionnelle n'a pas de problèmes de métastabilité. La période d'horloge est plus longue que le temps d'évaluation pour la logique, toutes les entrées de bascule sont stables au bord d'horloge suivant (exigence de configuration satisfaite), et elles chargent toutes une valeur valide.
Certaines des situations courantes où la métastabilité est un problème sont les suivantes:
- Échantillonnage logique d'une entrée externe, par exemple, un interrupteur sur le panneau avant, ou la sortie de circuits de contrôle qui peuvent passer à tout moment (sous-tension, surtempérature).
- Logique utilisant plusieurs horloges qui n'ont pas de relation synchrone. Cela se produit souvent avec des interfaces d'E / S qui ont des exigences d'horloge particulières, mais cela se produit également en interne lorsque différentes parties d'une puce ont des exigences de performances différentes. Par exemple, toute la logique de votre processeur 3 GHz ne fonctionne pas réellement à 3 GHz. (Un CPU n'est pas un bon exemple, cependant, car la plupart des horloges d'un CPU sont des multiples synchrones les unes des autres.)