FR 2786632 A1 20000602 FR 9814991 A 19981127 La présente invention concerne les dispositifs d'alignement de phase et se rapporte plus particulièrement aux dispositifs d'alignement de phase à grande vitesse destinés à l'alignement de données et de signaux d'horloge. Il s'agit de resynchroniser des données à l'horloge la plus appropriée et de délivrer les données avec une horloge de référence malgré les instabilités, et la distorsion dans les données d'entrée et dans les signaux d'horloge. L'invention a pour objet un procédé d'alignement de phase entre un signal de données et un signal d'horloge principal, caractérisé en ce que le flux de données du signal d'entrée est découpé en éléments d'une largeur égale à une fraction de la période d'horloge par échantillonnage dudit signal d'entrée à l'aide de signaux tirés dudit signal d'horloge et déphasés les uns par rapport aux autres de ladite fraction de période du signal d'horloge principal, les bits de don- nées ainsi obtenus sont observés à travers une fenêtre d'une largeur d'un bit du signal de données, la fenêtre est déplacée pour que les fronts de transition des bits de données soient en son milieu et le flux de données ainsi observé est transmis à des pipelines dans lesquels il subit un traitement en parallèle assurant l'extraction des bits de données qu'il contient. Suivant une caractéristique particulière - la présence d'un bit de données dans ledit signal échantillonné est déterminée, soit par la présence d'un front de transition, soit en l'absence de front de transition, par le dernier bit du mot. L'invention a également pour objet un dispositif d'alignement de phase pour la mise en oeuvre de procédé défini ci-dessus, caractérisé en ce qu'il comprend: - des moyens de génération à partir d'un signal d'horloge principal de signaux d'horloge déphasés les uns par rapport aux autres d'une fraction de pé- riode dudit signal d'horloge principal, un bloc de compensation de dérive qui uti- lise comme entrée les données provenant des pipelines et fournit en sortie des données sous forme parallèle, ladite compensation de dérive étant assurée par I'intermédiaire d'une fenêtre de sortie, un premier registre à décalage pour con- trôler la position de;a fenêtre d'observation, un second registre à décalage pour contrôler la position de la fenêtre de sortie et un troisième registre à décalage pour contrôler le chargc.nent et le déchargement des pipelines et un bloc de commande qui gère le déplacement des fenêtres d'observation et de sortie en fonction des informations recueillies sur la position des transitions dans les pipe- lines et en fonction de la position de la fenêtre d'observation. La solution suivant l'invention diffère des solutions connues en ce que l'algorithme utilisé n'essaie pas de trouver la meilleurs phase pour échantillonner les données, mais de trouver la meilleure position pour une fenêtre de n bits afin d'observer le flux de données, numérisé avec une précision de 1/n de la période d'horloge. A l'intérieur de cette fenêtre d'observation, I'algorithme essaie de trou- ver un front de transition. Lorsqu'un front de transition est trouvé, le bit suivant est la donnée. Ceci permet de disposer d'une largeur de données de T/n, T étant la période d'horloge. L'avantage de la présente solution réside dans le fait que cette nou- velle architecture: - accepte pour les données d'entrée une largeur plus faible, - assure une meilleure immunité vis à vis des instabilités, - permet une fréquence de fonctionnement plus élevée. L'invention sera mieux comprise à l'aide de la description qui va sui- vre, donnée uniquement à titre d'exemple et faite en se référant aux dessins an- nexés, sur lesquels: - la Fig.1 est un schéma synoptique d'un dispositif d'alignement de phase de type classique; - la Fig.2 est un diagramme montrant l'alignement de phase obtenu à l'aide du dispositif de la Fig.1 entre un signal d'entrée et un signal d'horloge; - la Fig.3 est un chronogramme représentant le principe de numérisa- tion et d'observation à travers une fenêtre du flux de données suivant l'invention; - la Fig.4 est un schéma synoptique du dispositif d'alignement de phase suivant l'invention; - la Fig.5 est un schéma montrant certains détails du schéma de la figure 4; et - la Fig.6 est un schéma d'un pipeline entrant dans la construction du dispositif d'alignement de phase suivant l'invention. Sur la figure 1, on a représenté un dispositif d'alignement de phase de type classique. Le dispositif d'alignement de phase 1 comporte une première entrée connectée à un générateur de signaux d'horloge 2. Le générateur de signaux d'horloge 2 reçoit un signal d'horloge d'en- trée CLKIN et délivre au dispositif d'alignement 1, sur huit sorties, des signaux d'horloge ayant huit phases différentes PHASE-O à PHASE - 7. Le dispositif d'alignement délivre des données de sortie DATA OUT et un signal d'horloge de sortie CLKOUT. Les signaux d'entrée et de sortie du dispositif d'alignement de phase sont représentés à la figure 2. Les huit phases délivrées par le générateur 2 sont déphasées de 1/8 de période d'horloge les unes par rapport aux autres. Une de ces phases est choisie par le dispositif d'alignement pour échantillonner la donnée. Dans l'exemple représenté à la figure 2, le signal d'entrée DIN est échantillonné par la phase 4 car c'est pour cette phase que les fronts montants se trouvent au milieu d'un bit de donnée. En sortie, les signaux sont resynchronisés sur une phase de réfé- rence, ici la phase 0. Suivant l'invention, on ne cherche pas à trouver la meilleure phase pour échantillonner des données entrantes. On utilise les phases pour numériser le flux de données avec une précision de 1/N de la période d'horloge. A cet effet, selon l'exemple représenté à la figure 3, on échantillonne le signal d'entrée DIN à l'aide de huit signaux d'horloge déphasés les uns par rapport aux autres de 1/8 de période d'horloge du signal d'horloge principal. En fonction de l'état dudit signal, on obtient huit états binaires corres- pondant chacun à un front de transition de l'un des huit signaux d'horloge. Le flux de données ainsi obtenu est observé à travers une fenêtre d'une largeur d'un bit de données. La position optimale pour la fenêtre d'observation est trouvée quand les transitions sur les données sont en son centre. Afin d'être en mesure de travailler à haute fréquence, les éléments de données d'un bit de largeur provenant de la fenêtre d'observation, sont transmis à plusieurs pipelines en vue d'un traitement en parallèle. A l'intérieur de chaque pipeline, un algorithme essaie de trouver un front de transition. Lorsqu'un front est trouvé, le bit suivant est la donnée. S'il n'y a pas de front de transition, le dernier bit du mot est la donnée. Le fait de ne pas chercher la meilleure phase pour échantillonner les données mais la meilleure position pour une fenêtre d'observation, dans laquelle on applique l'algorithme décrit ci-dessus permet d'admettre des distorsions sur les données bien supérieures à celles admissibles dans les solutions classiques. En terme de "jitter" ou "gigue" par exemple, tant que le front de transi- tion reste dans la fenêtre d'observation, on ne commet pas d'erreur. Donc, idéa- lement, on peut admettre un jitter ou gigue équivalent à + une demipériode de l'horloge. De même, un bit de donnée pourra avoir au minimum une largeur équi- valente à la distance séparant deux phases utilisées pour la numérisation (T/n) sans pour autant affecter sa tolérance à la gigue. L'autre avantage important de cette solution est, en dehors de la nu- mérisation des données, le fait de n'utiliser qu'une seule horloge, c'est-à-dire qu'aucune resynchronisation de données n'est nécessaire. La possibilité avec cette technique de récupérer un train de données distordues permet une économie d'énergie significative dans la conception d'en- trée/sortie I/O à grande vitesse. En résumé, cette solution est plus robuste du fait de la distorsion qu'elle peut tolérer et elle permet une distribution d'horloge plus aisée. Ces deux faits permettent d'obtenir une fréquence de fonctionnement plus élevée. La Fig.4 représente de façon détaillée le dispositif d'alignement de phase à grande vitesse suivant l'invention. Le dispositif d'alignement comporte un circuit d'échantillonnage 10 comprenant une première entrée pour les données d'entrée DIN et des secondes entrées au moyen desquelles il est connecté à un circuit d'horloge 12 auquel sont appliqués des signaux d'horloge de phase PHO, PH1, PH2, PH3. La sortie du circuit d'échantillonnage 10 qui comporte en fait quatre sorties en parallèle est connecté à un circuit de fenêtre d'observation 14 auquel est associé un circuit 15 de décalage de fenêtre d'observation. Le circuit 14 de fenêtre d'observation comporte cinq sorties par les- quelles il est connecté à un circuit pipeline 16 auquel est associé un circuit 17 de chargement de pipeline. Le circuit pipeline comporte onze sorties parallèles par lesquelles il est relié à des entrées correspondants d'un circuit de fenêtre de sortie 18 auquel est associé un circuit 19 de décalage de fenêtre de sortie. Le circuit de fenêtre de sortie comporte une première sortie d'émission d'un mot de sortie DOUT et une seconde sortie d'émission d'un mot de sortie supplémentaire DOUTEXTRA. Le circuit de décalage de fenêtre 19 comporte deux sorties supplé- mentaires 'BOTH" et " NONE ". Quand la sortie BOTH passe à l'état haut, les données présentes sur la sortie DOUTEXTRA doivent être insérées dans le flux de données de sortie. Quand la sortie NONE passe à l'état haut, les données présentes sur la sortie DOUT doivent être supprimées du flux de données de sortie. Le circuit 15 de décalage de fenêtre d'observation et le circuit 19 de décalage de fenêtre de sortie sont connectés à un bloc de commande 20 qui re- çoit également des instructions du circuit 15 de décalage de fenêtre d'observa- tion et du circuit pipeline 16. Le circuit 17 de chargement des pipelines fournit de plus en sortie l'horloge basse fréquence requise par les sorties parallèles. Sur la figure 5, on a représenté de façon plus détaillée la réalisation matérielle de certains des composants du schéma de la figure 4, ces compo- sants entourés par des cadres en trait mixte étant désignés par les mêmes nu- méros de référence que les composants correspondants du schéma de la Fig. 4. Le fonctionnement du dispositif d'alignement de phase suivant l'inven- tion va être décrit en référence aux Fig.4 et 5. Le flux de données est observé à travers une fenêtre d'une largeur égale à un bit de données du signal d'entrée DIN et un algorithme trouve ensuite la meilleure position pour cette fenêtre d'observation. Pour pouvoir travailler à haute fréquence, les éléments de largeur d'un bit de données échantillonées sont envoyés à dix pipelines 21 pour un traitement en parallèle. Dans chaque pipeline 21, la donnée est récupérée et une commande vers le haut UP ou vers le bas DOWN de déplacement de la fenêtre d'observa- tion est envoyée au bloc de commande 20 (Fig.4). Le choix de la commande UP ou DOWN dépend de la position dans laquelle la donnée est trouvée. Les dix bits de données provenant des dix pipelines 21 sont transmis à un registre à vingt bits utilisé pour délivrer dix bits de données en parallèle (sortie DOUT) avec une capacité de compensation de dérive de +/5 bits. Lorsque la capacité de ce registre est dépassée, deux drapeaux ap- pelés BOTH et NONE provenant du circuit de décalage de fenêtre de sortie, plus un mot supplémentaire de dix bits DOUTEXTRA émis par la fenêtre de sortie 18 sont utilisés pour permettre à un système extérieur de récupérer les données. A l'intérieur du bloc d'échantillonnage 10, les données entrantes DIN sont échantillonnées avec chacune des quatre phases PHO à PH3. L'objectif est de numériser les données avec une précision de 1/4 de la période d'horloge. Trois différentes phases sont utilisées pour resynchroniser correcte- ment ces échantillons et pour garantir d'attendre au moins 3/% de période d'hor- loge avant de synchroniser une donnée. Les données échantillonnées par les signaux PHO et PH1 sont syn- chronisées deux fois par le signal PHO. En même temps, les données échantillonnées par PH2 et PH3 sont synchronisées par PH2 et la seconde fois par PH1. Après ces deux étapes, il est possible de charger les quatre échantillons sur le même signal d'horloge PHO. Ce bloc est le plus important en ce qui concerne la fréquence maxi- male de fonctionnement car dans le cas présent, on travaille pour la resynchroni- sation au-dessous de la période d'horloge. Mais on a minimisé le problème en utilisant deux étapes de resyn- chronisation de sorte que l'on peut garantir que l'on ne travaille pas au-dessous de %3/4 de la période d'horloge. Les quatre échantillons provenant du bloc d'échantillonnage sont chargés dans un registre à quatre bits 24. Au cours de la période d'horloge suivante un nouveau mot de quatre échantillons est chargé et le mot ancien est stocké dans un autre registre à qua- tre bits 25. Ceci permet de disposer d'un mot de huit échantillons consécutifs du flux de données entrant. Il est alors facile de choisir parmi ces huit échantillons cinq d'entre eux pour les envoyer au bloc PIPELINE 16. Chaque position de la fenêtre d'observation 14 est implémentée par cinq portes de transmission ouvertes quand le bit correspondant du registre à décalage progressif-regressif CLKSHIFT 15 est à 1. La position de la fenêtre d'observation est déterminée par le bloc de commande 20 (Fig.4) qui " filtre" les instructions provenant des pipelines 21 (Fig.5). Par exemple, il est nécessaire de disposer de 25 directives de comp- tage UP pour déplacer la fenêtre d'un pas (1/4 de la période d'horloge). Lorsque le mot contenu dans le registre 15 de commande de la fenê- tre d'observation 14 passe de 1000 à 0001, la fenêtre d'observation 14 se dé- place de la position haute correspondant à la transmission des bits contenus dans le registre 25 à la position basse correspondant à la transmission des bits contenus dans le registre 24, le mot d'échantillon qui est copié en même temps dans le registre 25 devant être envoyé à un pipeline supplémentaire 26 pour ne pas être perdu. Ce mot supplémentaire est réinséré dans le flux de données par le bloc de compensation de dérive 18. De la même façon lorsque le mot contenu dans le registre à décalage passe de 0001 à 1000, la fenêtre d'observation 14 passe de la position infé- rieure à la position supérieure. Le mot d'échantillon qui est copié en même temps dans le registre du haut a déjà été envoyé à un pipeline 21 (Fig.5) de sorte qu'il doit être supprimé du flot de données pour ne pas être dupliqué. Ceci est réalisé par le bloc de compensation de dérive 18. Dix pipeli- nes 21 plus un pipeline 26 pour le " bit supplémentaire " assurent un traitement en parallèle. A l'intérieur de chaque pipeline 21, un algorithme essaie de trouver un front de transition. Lorsqu'un front est trouvé, le bit suivant est la donnée. S'il n'y a pas de front de transition, le dernier bit du mot est la donnée. Si un front est trouvé sur la première partie du mot, une commande vers le haut UP est envoyée au bloc de commande 20. Si un front est trouvé dans la seconde partie du mot, une commande vers le bas DOWN est envoyée au bloc de commande 20. Le registre à décalage CLKPIPE 17 à 10 bits est synchronisé à cha- que période de l'horloge, le "1" circulant dans le registre commandant le charge- ment des dix pipelines et dix périodes d'horloge plus tard, le stockage des don- nées extraites. Toutes les dix périodes d'horloge, les dix bits de données provenant du bloc de pipelines 16, sont chargés dans le registre à 10 bits 22. Dix périodes d'horloge plus tard, un nouveau mot de dix bits de don- nées est chargé et le mot ancien est stocké dans un autre registre à dix bits 28. Ceci permet de disposer d'un mot de vingt bits consécutifs de données. Comme cela est réalisé dans la fenêtre d'observation 14, on peut prendre dix bits de données parmi ces vingt bits pour sortir des données DOUT. La position de la fenêtre de sortie 18 est déterminée par le bloc de commande 20 (Fig.4), qui: - déplace vers le haut la fenêtre de sortie 18 chaque fois qu'un "bit supplémentaire " est ajouté au flux de données. - déplace vers le bas la fenêtre de sortie 18 chaque fois qu'un bit doit être supprimé du flux de données. L'addition du "bit supplémentaire" est réalisée pendant la recopie du mot de dix bits. Un mutliplexeur 22b permet d'effectuer cette opération. De la même façon, la suppression est réalisée en chevauchant par un bit les deux mots de dix bits. Lors que le mot WORDSHIFT contenu dans le registre 19 de décalage de fenêtre de sortie 18 passe de 1000000000 à 0000000001, la fenêtre de sortie 18 passe de la position haute à la position basse. Le mot copié en même temps dans le registre haut 28 doit être envoyé vers un registre de sortie "supplémentaire", DOUTEXTRA 28a, pour ne pas être perdu. Au même moment, le drapeau BOTH devient haut pour indiquer à un système extérieur d'insérer ce mot supplémentaire dans le flux de données. De la même manière lorsque le mot WORDSHIFT passe de 0000000001 à 1000000000, la fenêtre d'observation 14 passe de la position basse à la position haute. Le mot copié en même temps dans le registre du haut 28 a déjà été envoyé à une registre de sortie DOUT 22a, de sorte qu'il doit être supprimé du flux de données pour ne pas être dupliqué. Le drapeau NONE passe à l'état haut pour indiquer de ne pas tenir compte de ce mot. Sur la figure 6, on a représenté l'un des pipelines 21 faisant partie du circuit pipeline 16 de la figure 5. Ce pipeline comporte un registre à cinq bits 30. Des portes OU-EXCLUSIF 31 associées chacune à deux bits voisins du registre 30 comportent une entrée connectée à un bit et une autre entrée connectée au bit voisin. La sortie de chaque porte OU-EXCLUSIF 31 est connectée à une en- trée d'une porte NON-ET correspondante 32. L'autre entrée de la première porte NON-ET 32 à partir de la droite reçoit un "1" logique tandis que les autres entrées des trois autres portes NON- ET 32 sont connectées aux sorties des portes NON-ET voisines par l'intermé- diaire d'inverseurs 33. La sortie 34 de la seconde porte NON-ET 32 à partir de la droite est la sortie UP/DOWN de commande de la fenêtre d'observation 14. Les données du pipeline sont disponibles sur une sortie de données 36. Après chargement du mot d'échantillonnage dans le registre à cinq bits 30, les portes NON-ET 32 connectées aux portes OU-EXCLUSIF 31 per- mettent selon l'état de leur sortie conditionnée par les niveaux des bits du regis- tre 30 appliqués aux portes OU-EXCLUSIF correspondantes, de connaître si un front de transition a été trouvé et si oui, à quel endroit. Le changement d'état entre deux bits de chaque porte NON-ET 32 ouvre directement la bonne porte de transmission pour délivrer un bit de don- nées qui suit la transition. L'agencement qui vient d'être décrit permet d'effectuer des aligne- ments de phase à une fréquence de 935 MHz. La technique qui vient d'être décrite repose sur des algorithmes numé- riques, ce qui permet de réaliser des solutions à l'aide d'une technologie CMOS standard. REVENDICATIONS 1. Procédé d'alignement de phase entre un signal de données et un signal d'horloge principal, caractérisé en ce que le flux de données du signal d'entrée est découpé en éléments d'une largeur égale à une fraction de la pé- riode d'horloge par échantillonnage dudit signal d'entrée à l'aide de signaux tirés dudit signal d'horloge et déphasés les uns par rapport aux autres de ladite frac- tion de période du signal d'horloge principal, les bits de données ainsi obtenus sont observés à travers une fenêtre d'une largeur d'un bit du signal de données, la fenêtre est déplacée pour que les fronts de transition des bits de données soient en son milieu et le flux de données ainsi observé est transmis à des pipe- lines dans lesquels il subit un traitement en parallèle assurant l'extraction des bits de données qu'il contient. 2. Procédé d'alignement de phase suivant la revendication 1, caracté- risé en ce que la présence d'un bit de données dans ledit signal numérisé est déterminée par l'échantillon qui suit un front de transition et en l'absence de front de transition, par le dernier échantillon du mot. 3. Dispositif d'alignement de phase pour la mise en oeuvre de procédé suivant l'une des revendications 1 et 2, caractérisé en ce qu'il comprend: - des moyens de génération à partir d'un signal d'horloge principal de signaux d'horloge déphasés les uns par rapport aux autres d'une fraction de pé- riode dudit signal d'horloge principal, un bloc (18,19) de compensation de dérive qui utilise comme entrée les données provenant des pipelines (16) et fournit en sortie des données sous forme parallèle, ladite compensation de dérive étant assurée par l'intermédiaire d'une fenêtre de sortie, un premier registre à déca- lage pour contrôler la position de la fenêtre d'observation (14), un second registre à décalage pour contrôler la position de la fenêtre de sortie (18) et un troisième registre à décalage pour contrôler le chargement et le déchargement des pipeli- nes (16) et un bloc de commande (20) qui gère le déplacement des fenêtres d'observation et de sortie (14,18) en fonction des informations recueillies sur la position des transitions dans les pipelines (16) et en fonction de la position de la fenêtre d'observation (14).