Brevet FR2863712A1 — publié le 20050617

Contexte Les circuits intégrés sont généralement très complexes et nécessitent plusieurs itérations de conception et de vérifications à différents niveaux d'abstraction. Les niveaux d'abstraction peuvent être différenciés par les influences environnementales et par les détails de mise en oeuvre physique modélisés. Certaines influences environnementales peuvent créer des anomalies de synchronisation qui affectent la synchronisation des signaux reçus. Même si des modèles de circuits précis sont utilisés pour prendre en compte les différents éléments de retard associés aux éléments de circuits individuels, les retards sont considérés comme étant déterministes. D'autres sources de retard peuvent être présentes dans le système. Les simulateurs classiques ne prennent pas en compte les variations de retard au sein d'un signal d'horloge courant, qui peuvent être le résultat d'un phénomène physique tel que le sautillement. Le sautillement peut avoir des effets déterministes et non déterministes sur une horloge. Le sautillement peut varier au sein du circuit intégré, si bien que le changement d'horloge reçue est différent à des emplacements physiques distincts. Cette variation de l'horloge peut créer des conditions de précipitation entraînant un comportement logique imprévu. Ces conditions de précipitation sont préjudiciables pour le fonctionnement planifié du circuit intégré. Malgré les tentatives de minimisation des effets du sautillement pendant la phase de conception, certains modes de réalisation physiques du circuit intégré peuvent souffrir d'une quantité inacceptable de sautillement. Des tests peuvent être effectués sur le circuit intégré afin de déterminer si le circuit intégré se comporte comme prévu et si un quelconque comportement imprévu est le résultat d'un sautillement. Compte tenu de la taille et de la complexité des circuits intégrés modernes, cependant, ces tests peuvent ne pas être pratiques pour une vérification rapide. Résumé Compte tenu des limitations des systèmes et des procédés connus, différents procédés et appareils pour 10 mesurer le sautillement sont décrits. Un procédé de mesure du sautillement comprend la génération d'une impulsion de sautillement possédant une largeur correspondant à une quantité de sautillement. L'impulsion de sautillement est fournie à une pluralité (M) de bascules couplées en série afin d'ajuster successivement l'impulsion au fur et à mesure qu'elle se propage au sein des bascules couplées en série. Chaque bascule, 1, fournit un résultat bi indiquant la réception d'un front de l'impulsion de sautillement. Un appareil de mesure du sautillement comprend un détecteur de phase/de fréquence fournissant une impulsion ayant une largeur d'impulsion correspondant à une quantité de sautillement au sein d'un signal d'horloge. L'appareil comprend une pluralité (M) de bascules couplées en série, dans lequel chaque bascule propage une impulsion ajustée possédant une largeur d'impulsion plus courte qu'une impulsion reçue, dans lequel chaque bascule li fournit un résultat b;. indiquant la réception d'un front d'une quelconque impulsion reçue. Brève description des dessins La présente invention est illustrée à titre 35 d'exemple et non à titre de limitation sur les figures des dessins d'accompagnement, sur lesquels des références similaires indiquent des éléments similaires, et sur lesquels: La figure 1 illustre l'effet du sautillement sur 5 un signal d'horloge. La figure 2 illustre un mode de réalisation des circuits de mesure du sautillement. La figure 3 illustre un mode de réalisation d'un détecteur de phase/de fréquence. La figure 4 illustre un mode de réalisation d'une bascule. La figure 5 illustre un mode de réalisation d'un circuit à boucle à verrouillage de phase. La figure 6 illustre un mode de réalisation d'un 15 procédé pour mesurer le sautillement. Description détaillée Les phénomènes tels que le sautillement peuvent modifier une horloge de manière incohérente le long du trajet du signal d'horloge, si bien que les transitions de front d'horloge reçues par les différents éléments de circuits peuvent avancer ou décaler la transition de front d'horloge prévue de l'horloge commune pendant n'importe quel cycle d'horloge donné. La modification peut également changer de manière imprévisible au sein des cycles d'horloge. Le sautillement au sein du signal d'horloge est la déviation par rapport à la synchronisation idéale ou prévue de l'évènement (comme par exemple l'emplacement des transitions de front). Le sautillement est composé d'un contenu déterministe et non déterministe (c'est-à-dire aléatoire). Le sautillement déterministe est lié à l'amplitude et possède une cause identifiable. Les catégories de sautillement déterministe comprennent la distorsion de cycle d'exploitation, qui dépend des données, qui est sinusoïdale et qui est non corrélée. Les signaux d'horloge sont susceptibles d'une distorsion de cycle d'exploitation et d'un sautillement périodique. Le sautillement déterministe est généralement provoqué par une diaphonie, une commutation simultanée des entrées/des sorties (provoquant des pointes de courant/de tension et des changements des seuils de détection), une interférence électromagnétique, ou des modèles de signaux récurrents. Le sautillement non déterministe est de nature stochastique. Ce sautillement aléatoire est non lié. Les sources du sautillement aléatoire comprennent les imperfections matérielles, la vibration thermique des structures cristallines à semi-conducteurs, le rayonnement, et d'autres sources. Généralement, le terme "sautillement" se rapporte collectivement au sautillement déterministe et non déterministe. La figure 1 illustre une horloge de référence (forme d'onde A) et un mode de réalisation de l'horloge de référence avec un sautillement (forme d'onde B). Un résultat du sautillement est le déplacement des transitions de front d'horloge par rapport à leurs emplacements idéaux. Ainsi, le sautillement peut provoquer le fait que les fronts d'horloge soient avancés ou décalés par rapport à leurs emplacements idéaux pour n'importe quelle transition donnée, si bien que le front d'horloge sautillé fait avancer l'emplacement idéal sur une transition et décale l'emplacement idéal sur une autre transition. Par exemple, le front d'horloge sautillé 122 décale le front d'horloge de référence 112 selon un déplacement AT1. Le front d'horloge sautillé 124 fait avancer le front d'horloge de référence 114 selon un déplacement AT2. Généralement, pour un emplacement de front d'horloge donné 116, le front d'horloge sautillé se produit dans une région 140 située près de l'emplacement du front d'horloge de référence correspondant. Pour n'importe quel cycle d'horloge donné, l'emplacement du front d'horloge sautillé possède une relation statistique avec l'emplacement idéal (c'està-dire la transition de front d'horloge de référence correspondant), comme cela est indiqué par la fonction de répartition de probabilité 130. Une horloge asymétrique se rapporte généralement à une horloge possédant un déplacement de front d'horloge fixe (par exemple, qui avance ou qui est décalé selon le même déplacement à chaque cycle) par rapport à un front correspondant de l'horloge de référence de telle sorte que l'horloge asymétrique soit une version de l'horloge de référence à décalage temporel. Le cycle d'exploitation de l'horloge asymétrique est le même que celui de l'horloge de référence. Contrairement à une horloge asymétrique, le déplacement de front d'une horloge sautillée n'est pas constant et peut faire varier chaque cycle de l'horloge, faisant ainsi varier le cycle d'exploitation de l'horloge. Lorsque le sautillement provoque le fait qu'un front d'horloge soit décalé de manière substantielle par rapport aux moments de blocage ou de mise en place de la porte logique, le résultat peut être une anomalie logique. Même un sautillement léger peut provoquer le fait que des circuits génèrent des résultats incorrects de manière incohérente. Le fait de savoir que le sautillement dépasse un seuil prédéterminé peut être utile pour isoler la source des anomalies logiques ou pour remplacer ou éliminer le circuit intégré provoquant le sautillement. La figure 2 illustre un mode de réalisation d'un circuit de mesure du sautillement. Dans un mode de réalisation, le circuit de mesure du sautillement est incorporé à un circuit intégré de telle sorte que le détecteur de phase/de fréquence 210, le générateur de différences d'impulsions 220, le multiplexeur 230 et les bascules 240 à 248 se trouvent sur la même matrice de circuit intégré 200. La logique 260 à 274 se trouve également sur la même matrice de circuit intégré 200. Dans un mode de réalisation, la matrice de circuit intégré est fabriquée comme un circuit intégré à semi-conducteur (CMOS) en oxyde de métal complémentaire. Le détecteur de phase/de fréquence 210 détecte les différences de phase ou de fréquence entre deux signaux d'horloge, CLK1 212 et CLK2 214. Les signaux DN-L 216 et UP-L 218 sont des trains d'impulsions dans lesquels les largeurs d'impulsions varient en fonction de la relation entre les fronts d'horloge des signaux CLK1 et CLK2. Un générateur de différences d'impulsions fournit un signal UP-DN 222 correspondant à la magnitude d'une quelconque différence de phase ou de fréquence entre les signaux UP-L et DN-L. UP-DN 222 est fourni à une pluralité de bascules couplées en série M 240 à 248. Chaque bascule est une bascule à bit de rappel. Une fois réglée, la bascule reste dans l'état défini jusqu'à ce qu'elle soit réinitialisée quelle que soit la variation de UP-DN. La figure 3 illustre un mode de réalisation du détecteur de phase/de fréquence. Le détecteur de phase/de fréquence 310 compare CLK1 312 et CLK2 314. Dans le mode de réalisation illustré, le détecteur de phase/de fréquence 310 est basé sur une architecture de porte NAND. Les portes NAND 350, 352 et 354, 356 forment des paires de bascules. Une boucle de réaction formée par la porte NAND 360 et les inverseurs 362, 364 effectue une fonction de réinitialisation pour générer les trains d'impulsions. Les signaux UP-L 318 et DN-L 316 sont entraînés dans des mémoires tampon 370 et 372. Dans des modes de réalisation alternatifs, le détecteur de phase/de fréquence peut être basé sur une porte NOR ou une autre architecture. Le détecteur de phase/de fréquence génère des trains d'impulsions pour chacune des sorties UP-L et DN-L. Les impulsions de UP-L et DN-L possèdent des fronts d'attaque générés sensiblement simultanément. Les fronts arrières de chaque impulsion UP-L et DN-L, cependant, peuvent varier à la suite de fronts d'horloge non alignés dans les deux signaux d'horloge CLK1, CLK2. Ainsi, les différences des trains d'impulsions des signaux UP-L et DN-L indiquent des fronts d'horloge non alignés. La différence peut indiquer un sautillement en fonction de la source de CLK1 et CLK2. En référence à nouveau à la figure 2, le générateur de différences d'impulsions 220 peut être considéré comme faisant partie du détecteur de phase/de fréquence. Le résultat du détecteur de phase/de fréquence 210 est effectivement un signal différentiel. Le fait de connaître UP-L et DN- L est nécessaire pour déterminer le front d'horloge qui fait avancer ou décaler l'autre front d'horloge, et dans quelle mesure. Bien que la quantité de l'avancée ou du décalage puisse être importante pour certaines applications, le fait de savoir quelle horloge fait avancer ou délacer l'autre horloge au sein de n'importe quel cycle particulier n'est pas pertinent pour la détermination du sautillement. Le signal UP-DN 222 généré par le détecteur de différences d'impulsions 220 est une "impulsion de sautillement" possédant une largeur correspondant à la valeur absolue de la différence entre les largeurs d'impulsions UP-L et DN-L. Des circuits d'initialisation sont prévus afin de permettre la réinitialisation ou l'initialisation des bascules. Un multiplexeur 230 sélectionne l'un des signaux PWGOOD ou UP-DN selon un signal INIT. Dans le mode de réalisation illustré, les circuits d'initialisation sont conçus pour initialiser les bascules lors de la mise sous tension. Lorsque INIT est faible, le signal PWGOOD est sélectionné. Lorsque INIT est élevé, le signal UP-DN est sélectionné. Le signal sélectionné est fourni à une entrée RESET sur chacune des bascules. Un mode de réalisation de l'architecture à bascules est illustré plus en détail sur la figure 4. INIT est faible pendant une courte période de temps lors de la mise sous tension, après quoi INIT passe à un niveau élevé. Ainsi, le multiplexeur 230 fournit le signal PWGOOD (qui est faible à ce moment) à la pluralité de bascules à bits de rappel couplées en série. Une fois que la puissance a été confirmée, PWGOOD-L passe à un état faible et PWGOOD passe en conséquence à un état élevé. INIT passe de son niveau faible initial à un niveau élevé en réponse à la transition du signal PWGOOD. Une fois que INIT est passé au niveau élevé, les circuits comprenant les portes NAND 270, 272 et 274 garantissent que INIT reste en état élevé jusqu'à la prochaine mise sous tension. En particulier, le signal INIT est fourni en tant que signal de réaction aux portes NAND afin de garantir que le signal INIT est bloqué en état élevé. Chacune des bascules fournit un résultat à un bit, b. En réponse au signal INIT, chacune des bascules est réinitialisée selon un état faible de telle sorte que b=0 pour chaque bascule. Après l'initialisation, le multiplexeur applique l'impulsion conditionnée aux bascules couplées en série M. L'impulsion de sautillement est appliquée à l'entrée de signal in (SI) de la première bascule 240. La première bascule ajuste une quantité prédéterminée de l'impulsion de sautillement reçue afin de former une impulsion modifiée au niveau de la sortie de signal out (SO) de la première bascule. L'entrée SI de chaque bascule successive est couplée à la sortie SO de la bascule précédente. Chaque bascule sélectionnée li ajuste son impulsion reçue possédant une largeur d'impulsion ri selon une quantité prédéterminée di, dans laquelle la bascule sélectionnée fournit une impulsion de sortie correspondante d'une largeur oi = ri - di lorsque ri > di. La bascule sélectionnée ne fournit aucune impulsion de sortie lorsque ri A partir d'une impulsion de largeur d'impulsion P fournie par les circuits du générateur de différences d'impulsions, le sautillement maximal rencontré peut être déterminé en identifiant la dernière bascule (1k) en partant de 1... M dont la sortie a été définie de telle sorte que = j k 1 jsk Etant donné la nature discrète des retards, le bit le plus élevé défini bk implique 2 di Etant donné que bi = 0 Vi > k, nous avons k 2 di -2bide Si le retard provoqué par chacune des bascules est sensiblement le même (c'est-à-dire d = di = d Vi,j s {1,2, ..., M}), alors 3,=dk i-1 La figure 4 illustre un mode de réalisation d'un circuit à bascule 450 convenant pour les circuits de mesure du sautillement de la figure 2. Le signal fourni au niveau de la sortie de signal out (SO432) est retardé par rapport au signal apparaissant au niveau de l'entrée de signal (SI422) par les inverseurs 420 et 430. Les inverseurs sont conçus pour dévier le front d'attaque de l'impulsion davantage que le front de fuite, et ainsi réduire la largeur d'impulsion fournie à SO432. Dans un mode de réalisation, chaque inverseur contribue à un retard d'environ 12,5 ps (picosecondes). Le signal retardé en 412 est fourni à l'entrée d'horloge de la bascule 410. Dans un mode de réalisation, la bascule 410 est une bascule bistable D dont l'entrée de données est reliée de manière élevée en interne, et le signal INIT 466 est appliqué à l'entrée de réinitialisation de la bascule bistable. Le signal INIT 466 sert à réinitialiser la bascule 410 (et ainsi la bascule 450) pendant l'initialisation. La configuration de la bascule 410 garantit que la bascule 450 est une bascule à retard possédant un "bit de rappel", b 418. Une fois que b a été défini, il reste réglé jusqu'à ce que la bascule 410 soit réinitialisée ou initialisée. Par conséquent, lors d'une transition de front de SI422, la bascule 450 retarde le signal d'entrée des dispositifs successifs couplés en série à sa sortie 50432 et définit b. Une largeur d'impulsion nominale peut être prévue pour les circuits de mesure du sautillement même en l'absence d'un quelconque sautillement significatif. Les circuits de mesure du sautillement "décalent" ainsi la mesure du sautillement avec un décalage attribuable aux circuits de mesure du sautillement eux-mêmes. Dans un mode de réalisation, une ou plusieurs bascule(s) est/sont dédiée(s) à l'élimination du décalage attribuable au procédé de mesure du sautillement. En référence à la figure 2, par exemple, les bascules 240 et 242 peuvent être utilisées pour éliminer le décalage provoqué par les circuits de mesure du sautillement lors de la mesure du sautillement. Dans ce cas, n'importe laquelle de ces bascules peut être désignée comme une bascule de décalage. Ainsi, bien que la valeur codée par thermomètre bM.. b2b1 soit représentative du sautillement, le bit bl associé à la bascule 240 et le bit b2 associé à la bascule 242 peuvent toujours être définis en raison du décalage inclus à la mesure du sautillement. Dans un mode de réalisation, les premières bascules n sont dédiées à l'élimination du décalage de telle sorte que la valeur bM...b _1b1 disponible pour la détection indique la mesure du sautillement sans aucun décalage. Que la mesure du sautillement comprenne ou non un décalage attribuable au procédé et à l'appareil de mesure du sautillement, une valeur détectée supérieure à un seul prédéterminé indique que la quantité de sautillement est inacceptable pour le bon fonctionnement du circuit intégré. Une boucle à verrouillage de phase (PLL) est généralement utilisée pour générer une horloge à partir d'une horloge de référence. Bien que les horloges puissent être de fréquences différentes, les fronts d'horloge de l'horloge à basse fréquence sont alignés avec les fronts d'horloge de l'horloge à fréquence élevée en raison de la synchronisation fournie par la PLL. Dans un mode de réalisation, le détecteur de phase/de fréquence des figures 2-3 est muni de l'horloge de référence et du signal issu d'un trajet de réaction de la PLL afin de mesurer le sautillement. La figure 5 illustre un mode de réalisation d'une PLL classique 520. La PLL 520 comprend un détecteur de phase 522, un filtre à boucle 524, un oscillateur à tension asservie, et une boucle de réaction 529 qui peut comprendre un diviseur à contre-réaction 528 pour générer un CLOCK OUT 530 qui est une fraction de l'horloge de référence CLK1 510. L'horloge de référence d'entrée CLK1 510 est prévue comme CLK1 212 sur la figure 1. CLK2 214 de la figure 2 est issue de la boucle de réaction 529 après n'importe quel élément de réaction. La PLL 520 fournit également un signal de boucle à verrouillage de phase PLL-LOCK 268 qui est faible jusqu'à ce que le détecteur de phase 522 détermine que la différence de phase/de fréquence entre CLK1 510 et CLK2 214 est inférieure à un seuil de verrouillage. Dans ce cas, le signal PLLLOCK 268 passe à un niveau élevé afin d'indiquer que CLK1 et CLK2 sont synchronisés. Le signal PLL-LOCK 268 est utilisé sur la figure 2 pour générer le signal INIT 266. La figure 6 illustre un mode de réalisation d'un procédé de mesure du sautillement. A l'étape 610, les circuits de mesure du sautillement du circuit intégré sont initialisés. Les circuits de mesure du sautillement comprennent une pluralité de bascules couplées en série M couplées afin d'ajuster successivement une impulsion de sautillement reçue possédant une largeur correspondant à une quantité de sautillement au sein du circuit intégré. Chaque bascule fournit un résultat b indiquant la réception d'un front d'impulsion. A l'étape 620, la sortie de la bascule kth (c'est-à-dire bk) est détectée afin de déterminer si la quantité de sautillement a dépassé un seuil prédéterminé. bk est la sortie verrouillée de la bascule k. Le choix de k dépend de la quantité de retard attribuable à chaque bascule et de la quantité de sautillement que le circuit intégré doit pouvoir supporter. Dans un mode de réalisation, la sortie verrouillée 35 de chacune des bascules (c'est-à-dire bM..b2b1) est détectée afin de déterminer le sautillement maximal rencontré. Si bk = 1, comme cela est déterminé à l'étape 630, alors la quantité de sautillement rencontré a dépassé le seuil prédéterminé associé à bk et le circuit intégré est traité comme "défaillant" à l'étape 650. La panne peut être signalée, par exemple, en envoyant un signal, en définissant un bit de défaillance, ou en arrêtant le circuit intégré dans différents modes de réalisation. Si bk = 0, alors le circuit intégré fonctionne probablement dans les tolérances de sautillement acceptables. Ainsi, le circuit intégré est traité comme "OK" à l'étape 640. Dans un mode de réalisation, la mesure du sautillement est effectuée principalement à des fins de contrôle qualité afin de garantir que les circuits intégrés possédant des niveaux inacceptables de sautillement n'entrent pas dans les canaux de distribution. Dans d'autres contextes, cependant, une mesure permanente du sautillement est souhaitée. Ainsi, les étapes 620-640 peuvent être effectuées après l'initialisation et répétées de manière continue pendant le fonctionnement du circuit intégré afin de garantir l'intégrité du circuit intégré dans un environnement opérationnel. Différentes modifications et différents changements peuvent être réalisés sans s'écarter de l'esprit et de l'étendue de l'invention telle que définie dans les revendications. La spécification et les dessins, par conséquent, doivent être considérés à titre illustratif et non au sens restrictif. R E V E N D I C A T I O N S 1. Appareil de mesure du sautillement comprenant: un détecteur de phase/de fréquence (210) fournissant une impulsion - possédant une largeur d'impulsion correspondant à une quantité de sautillement au sein d'un signal d'horloge; et une pluralité (M) de bascules couplées en série (240), dans lequel chaque bascule 1i propage une impulsion ajustée possédant une largeur d'impulsion plus courte qu'une impulsion reçue, dans lequel chaque bascule 1i fournit un résultat b,_ indiquant la réception d'un front de n'importe quelle impulsion reçue. 2. Appareil selon la revendication 1, dans lequel chaque bascule sélectionnée li définit sa sortie bi en réponse à un front de n'importe quelle impulsion reçue, dans lequel la bascule sélectionnée ajuste son impulsion reçue possédant une largeur d'impulsion ri selon une quantité prédéterminée di, dans lequel la bascule sélectionnée fournit une impulsion de sortie correspondante d'une largeur oi = ri - di lorsque ri > di, et ne fournit aucune impulsion de sortie lorsque ri di. 3. Appareil selon la revendication 2, dans lequel 25 les di sont sensiblement identiques de telle sorte que di = di Vi,j {1,2, ..., M}. 4. Appareil selon la revendication 1, dans lequel les sorties bi successives forment une valeur codée par thermomètre bM... b1 représentant la quantité de sautillement. 5. Appareil selon la revendication 1, dans lequel le détecteur de phase/de fréquence et la pluralité de bascules se trouvent sur une même matrice de circuit intégré (200). 6. Appareil selon la revendication 1 comprenant en outre: une boucle à verrouillage de phase (520) pour générer une horloge à partir d'une horloge de référence CLK1, dans lequel une boucle de réaction de la boucle à verrouillage de phase fournit un signal d'horloge CLK2, dans lequel le détecteur de phase/de fréquence est couplé afin de fournir un signal correspondant à une différence d'alignement de fronts entre CLK1 et CLK2. 7. Appareil selon la revendication 1, dans lequel le détecteur de phase/de fréquence comprend: un détecteur de phase/de fréquence (310) fournissant un premier et un second trains d'impulsions, dans lequel une différence relative entre le premier et le second trains d'impulsions indique laquelle d'une première horloge CLK1 et d'une seconde horloge CLK2 fait avancer l'autre; et un générateur de différences d'impulsions (220) fournissant l'impulsion de sautillement, dans lequel la 20 largeur de l'impulsion de sautillement correspond à une magnitude de la différence d'alignement entre CLK1 et CLK2. 8. Appareil selon la revendication 1, dans lequel chaque bascule Ii comprend en outre: une pluralité d'inverseurs (420, 430) couplés afin de fournir l'impulsion ajustée (432) à partir de l'impulsion reçue (422) ; et une bascule bistable (410) possédant une entrée d'horloge (412) couplée afin de recevoir l'impulsion 30 ajustée, dans lequel une sortie (418) de la bascule bistable correspond à la sortie bi. 9. Appareil selon la revendication 8, dans lequel la pluralité d'inverseurs comprend un premier et un second inverseurs couplés en série, dans lequel le 35 premier et le second inverseurs sont conçus pour décaler un front d'attaque de l'impulsion reçue davantage qu'un front de fuite de l'impulsion reçue.