Cette page est la cinquième d’une série de pages présentant le transcepteur multi-gigabits (MGT). Après avoir parcouru beaucoup de sujets (et passé en revue certains protocoles pour FPGA), il est temps de voir comment le PMA transforme les données en signal électrique, et inversement.
Introduction
Le PMA est constitué des parties du MGT liées au canal physique. Le sérialiseur et le désérialiseur, notamment, font partie du PMA. En d’autres termes, c’est à l’intérieur du PMA que s’effectue la conversion des bits du canal physique en mot parallèle, et réciproquement.
Le PMA est aussi la partie qui convertit les bits en tensions électriques. C’est également lui qui reçoit les tensions électriques provenant du MGT situé de l’autre côté et les convertit en bits.
Un autre rôle important du PMA est de compenser la distorsion du signal de tension qui se produit lorsque ce signal circule entre les deux MGT :
- L’émetteur peut volontairement déformer le signal analogique qu’il génère pour la transmission. Cette déformation vise à faire l’inverse de ce que le canal physique fait subir au signal. On parle alors souvent de préaccentuation (pre-emphasis).
- L’égaliseur (equalizer) du récepteur peut manipuler le signal analogique reçu afin d’atténuer la distorsion causée par le canal physique.
Cette page présente ces fonctionnalités. Le PMA est également responsable d’autres tâches qui ne deviennent pertinentes que lorsque le flux de données est interrompu. Ces sujets sont traités à la page suivante.
Voici le schéma fonctionnel d’un MGT typique, présenté ici de nouveau pour situer le PMA dans un contexte plus large (ce schéma est le même que celui de la page précédente).
Comme pour la page précédente, j’utiliserai les expressions Tx PMA et Tx PCS pour désigner les parties du MGT qui servent à transmettre des données. De même avec Rx PMA et Rx PCS pour désigner les parties qui reçoivent les données.
Il est important de noter que, dans la grande majorité des cas d’utilisation, il n’est pas nécessaire de comprendre quoi que ce soit au canal physique, ni comment il déforme le signal, ni comment cette déformation est corrigée. En général, tout ce qu’il faut retenir, c’est qu’utiliser l’égaliseur est une bonne idée.
Cela dit, il faut être conscient que le PMA est, dans une large mesure, un composant analogique. Le MGT possède d’ailleurs des broches d’alimentation séparées sur la puce FPGA. Certaines de ces broches alimentent le PMA. La tension sur ces broches doit souvent être plus propre que la normale. Si ces exigences ne sont pas respectées, les performances du MGT peuvent s’en trouver sensiblement dégradées.
Pour faciliter les explications qui suivent, nous allons examiner une liaison à 5 Gb/s. C’est le débit utilisé par des protocoles comme SuperSpeed USB Gen 1 et PCIe 2.0. Nous supposerons également que le mot parallèle employé entre le PMA et le PCS est large de 32 bits. Je commencerai par une description simplifiée du canal physique, en laissant de côté certains détails abordés plus bas dans cette page.
Transmission des données
Le Tx PMA convertit le mot parallèle en signal électrique en transmettant le mot parallèle en commençant par le bit de poids faible (LSB). Ainsi, si le bit 0 vaut « 1 », le Tx PMA règle ses broches de sortie de sorte que la tension entre D+ et D- soit de 500 mV (par exemple). Si ce bit vaut « 0 », cette tension est de –500 mV (négative).
Le Tx PMA attend 0,2 ns, puis fait de même avec le bit 1 du mot parallèle. En d’autres termes, la tension entre D+ et D- sera de 500 mV ou de –500 mV selon la valeur du bit 1. Chacun des bits du mot parallèle est ainsi représenté sur les broches de sortie pendant 0,2 ns. Au bout de 6,4 ns, le mot parallèle entier a été transmis sur les fils. Le Tx PMA reçoit alors un nouveau mot parallèle du Tx PCS et commence à transmettre sa valeur de la même manière.
Le transfert du mot parallèle du Tx PCS vers le Tx PMA est synchronisé avec une horloge (souvent nommée XCLK). Dans cet exemple, la période de cette horloge est de 6,4 ns, donc sa fréquence est de 156,25 MHz. Sans surprise, 156,25 × 32 = 5000.
Ce que je viens de décrire, c’est le côté émetteur d’un SERDES. Le temps alloué à chaque bit en sortie de ce SERDES est de 0,2 ns, ce qui donne un débit de 5 Gb/s.
Dans cet exemple, la tension entre les deux broches différentielles de sortie était de 500 mV. Cette valeur se situe dans la plage admise pour PCIe et SuperSpeed USB. Notons que les spécifications des protocoles et les fiches techniques des MGT expriment généralement cette tension en tension différentielle de crête à crête : c’est la différence entre la tension différentielle la plus basse et la plus haute, c’est-à-dire entre –500 mV et 500 mV dans notre exemple. La tension différentielle de crête à crête vaut donc 1000 mV dans cet exemple. C’est cette valeur qui apparaît généralement dans les spécifications et les fiches techniques.
Mais le signal a déjà changé lorsqu’il arrive au récepteur. L’image ci-dessous montre un exemple de la forme d’onde du signal analogique :
La sortie de l’émetteur (la tension entre D+ et D-) est représentée en rouge. La forme d’onde bleue est un exemple de ce que ce signal peut devenir en arrivant au récepteur. Cet exemple est une simulation d’un simple filtre passe-bas dont la bande passante est de 2,5 GHz.
Dans toute cette page, je m’appuierai sur cet exemple, avec un débit de 5 Gb/s et une tension différentielle de 500 mV. D’autres valeurs sont bien entendu possibles : un MGT de FPGA permet de contrôler le débit des données et les tensions de sortie.
Le diagramme de l’œil
Les formes d’onde de l’image ci-dessus montrent que le signal qui arrive au récepteur diffère de celui qui a été généré par l’émetteur. Le diagramme de l’œil (eye diagram) est une représentation graphique du signal qui arrive au récepteur. Ce graphique est obtenu en traçant plusieurs formes d’onde sur les mêmes axes. Chacune de ces formes d’onde est le résultat d’une combinaison aléatoire de bits transmis. Les formes d’onde qui se superposent sur le graphique représentent ainsi toutes les formes possibles du signal arrivé.
Voici le diagramme de l’œil pour le même scénario que l’image ci-dessus :
Cette image explique pourquoi on parle de « diagramme de l’œil ». La zone verte au centre a la forme d’un œil.
La ligne rouge indique le moment optimal pour mesurer la tension afin de décider si le bit transmis est un « 0 » ou un « 1 ». C’est à cet instant que la différence de tension est la plus grande, et donc que l’immunité au bruit est la meilleure. Notons que le moment choisi se situe légèrement après zéro. Comparons avec l’image précédente : le bit détecté à cet instant a déjà été transmis depuis 0,2 ns, et la détection se produit même un peu plus tard.
Le diagramme de l’œil est couramment utilisé pour évaluer la qualité du signal qui arrive au récepteur. Ce graphique est souvent obtenu par des simulations du support physique qui transporte le signal. On peut aussi obtenir un diagramme de l’œil à partir de mesures sur un signal réel, à l’aide d’un oscilloscope ou d’un équipement de mesure plus spécialisé.
Réception des données
Le Rx PMA convertit un signal électrique en mot parallèle : il mesure la tension entre ses deux broches d’entrée (D+ et D-) une fois toutes les 0,2 ns. Si cette tension est positive, le bit 0 du mot parallèle reçoit la valeur « 1 ». Sinon, ce bit reçoit « 0 ». Le Rx PMA attribue ensuite les valeurs aux autres bits du mot parallèle, du bit 1 jusqu’au bit 31. Lorsque le mot parallèle est complet, il le remet au Rx PCS. Le Rx PMA est donc l’image miroir du Tx PMA.
Mais comment le Rx PMA sait-il exactement quand mesurer la tension sur ses broches d’entrée ? Cela doit se produire une fois par période de 0,2 ns, mais à quel moment précis de cette période ? Comment le Rx PMA connaît-il le moment optimal, représenté par la ligne rouge dans le diagramme de l’œil ci-dessus ?
Pour compliquer encore les choses, le Rx PMA n’a souvent pas accès à l’horloge de référence dont dépend le Tx PMA. La perception qu’a le récepteur de la durée de 0,2 ns n’est donc pas exactement la même que celle de l’émetteur. De plus, la fréquence de cette horloge de référence varie en permanence de manière aléatoire à cause de la gigue (jitter). Et pour les protocoles qui exigent une horloge à spectre étalé (SSC, Spread Spectrum Clock), la fréquence varie volontairement en continu selon une loi prédéfinie.
La solution à ce problème est la récupération d’horloge et de données (Clock Data Recovery, CDR). C’est un mécanisme interne au Rx PMA qui détermine le moment optimal pour l’échantillonnage (sampling) de la tension sur les broches d’entrée. Le CDR génère une horloge d’échantillonnage qui s’adapte au flux de données entrant. Cette horloge est divisée par 32 (dans notre exemple) afin de créer l’horloge servant d’interface avec le Rx PCS.
Le CDR est sensible aux transitions entre « 0 » et « 1 » dans le signal analogique entrant. Plus précisément, il détecte le moment où la tension entre les deux broches différentielles change de signe. Cela permet au CDR d’adapter la fréquence de l’horloge d’échantillonnage qu’il génère à celle de l’horloge utilisée par l’émetteur.
Pour fonctionner correctement, le CDR a besoin d’une horloge de référence qui lui est propre. La fréquence de cette horloge doit être approximativement égale à celle de l’émetteur. Cependant, cette horloge de référence ne sert qu’à la synchronisation initiale avec le flux de données. Après cette synchronisation initiale, le CDR suit la fréquence de l’émetteur à l’aide d’une PLL. Ce mécanisme adaptatif modifie en permanence et légèrement la fréquence de l’horloge d’échantillonnage afin de créer une réplique de l’horloge de l’émetteur. Par ailleurs, le CDR s’efforce aussi de déplacer le moment d’échantillonnage vers le point optimal, à l’intérieur de chaque période de 0,2 ns. En d’autres termes, le CDR tâche d’échantillonner le signal au moment indiqué par la ligne rouge sur le diagramme de l’œil.
Le CDR joue un rôle crucial pour obtenir une liaison fiable. Par exemple, si l’émetteur utilise une horloge de référence de mauvaise qualité, avec un niveau de gigue élevé, la durée de chaque bit sera entachée d’aléas. Si le CDR du récepteur ne parvient pas à s’adapter assez vite à ces variations, l’échantillonnage s’effectue à des positions non optimales, ce qui augmente la probabilité d’erreurs. Il est aussi possible que le CDR perde complètement la synchronisation, ce qui provoque une perte temporaire de la liaison. Ce genre de situation est souvent attribué à tort à un problème d’intégrité du signal sur les fils de données, alors qu’il s’agit en réalité d’une horloge de mauvaise qualité.
Dans un MGT de FPGA, le comportement du CDR dépend de plusieurs paramètres configurables. Malheureusement, la signification de ces paramètres est souvent obscure et mal documentée. Les outils FPGA choisissent automatiquement leurs valeurs en fonction des réglages du MGT, notamment du débit. Si un protocole connu est sélectionné, les paramètres du CDR sont choisis en conséquence. Il peut parfois être utile d’essayer différents réglages pour obtenir une liaison plus stable, en particulier lorsque la liaison entre les deux MGT comporte des câbles et des connecteurs de mauvaise qualité.
Inversion de polarité
Le Rx PMA comme le Tx PMA peuvent inverser la polarité du canal physique. Cela revient à transmettre un « 0 » à la place d’un « 1 », et inversement, ou à recevoir un « 1 » là où l’on recevrait normalement un « 0 », et vice-versa.
Autrement dit, si les fils D+ et D- sont inversés, le MGT peut compenser cette inversion. C’est une fonctionnalité triviale mais néanmoins très importante, qui simplifie souvent la conception du circuit imprimé (PCB).
Distorsion du signal
Dans un monde idéal, le signal de tension émis par le MGT émetteur arriverait tel quel au MGT récepteur. En réalité, le signal subit plusieurs modifications avant d’arriver à destination. Le problème le plus marquant est le comportement de filtre du trajet du signal : chaque fois que le Tx PMA émet un « 0 » après un « 1 », il y a une transition brutale de la tension positive vers la tension négative. L’inverse se produit évidemment lors d’une transition de « 0 » vers « 1 ». Cette variation brusque de tension est déformée par le support physique qui transporte le signal. Les câbles et les pistes de circuit imprimé se comportent comme un filtre passe-bas.
Cette image reprend le même exemple de formes d’onde que ci-dessus, mais avec la simulation d’un canal physique plus difficile :
La forme d’onde bleue montre comment la tension qui arrive au récepteur « se souvient » des valeurs de quelques bits transmis plus tôt. Rappelons que le récepteur doit décider si le signal est un « 0 » ou un « 1 » selon que la tension est négative ou positive. Les valeurs des bits précédents viennent donc interférer avec la décision du récepteur. Le fait que la valeur d’un bit interfere avec la décision portant sur un autre bit s’appelle l’interférence inter-symboles (Inter-Symbol Interference, ISI).
Le diagramme de l’œil pour la même simulation du canal physique :
Ce diagramme montre qu’il est encore possible de distinguer un « 0 » d’un « 1 », mais la marge est bien plus réduite. En d’autres termes, il faut beaucoup moins de bruit pour provoquer une erreur.
Outre l’effet simulé dans le diagramme de l’œil ci-dessus, le signal est également déformé d’autres manières :
- Le signal perd de l’énergie pendant son trajet vers le récepteur, si bien que la tension entre les fils différentiels devient plus faible qu’à l’émission.
- Des réflexions s’ajoutent au signal pendant son trajet de l’émetteur vers le récepteur. Cet effet est comparable à un écho acoustique ; il se produit notamment lorsque le signal traverse un connecteur ou une autre discontinuité brutale du milieu conducteur.
- Du bruit provenant de diverses sources extérieures s’ajoute également au signal. Ce n’est généralement pas un facteur dominant dans les communications entre MGT, car les effets de la distorsion sont d’ordinaire plus importants. Ce bruit peut toutefois devenir significatif avec un câble long et mal isolé.
Nous allons maintenant examiner deux mécanismes destinés à atténuer la distorsion du signal due au canal physique : l’égaliseur, qui fait partie du récepteur, et la préaccentuation, qui fait partie de l’émetteur.
Égaliseur
L’égaliseur manipule le signal analogique qui arrive au MGT. L’objectif de cette unité est d’atténuer les effets de la distorsion du signal due au canal physique. Ce faisant, l’égaliseur réduit la probabilité d’erreur binaire du canal et permet d’atteindre un débit plus élevé. L’égaliseur est toujours la première étape de la chaîne de traitement du Rx PMA.
Il existe principalement deux types d’égaliseurs. Un MGT peut prendre en charge les deux :
- LPM (Low Power Mode). Cet égaliseur se compose en général d’un filtre passe-haut qui compense la tendance du canal physique à atténuer la partie la plus haute du spectre du signal analogique. Certains MGT adaptent ce filtre automatiquement au signal reçu. Sur des MGT moins évolués, la logique applicative doit choisir un filtre parmi plusieurs possibilités.
- DFE (Decision Feedback Equalizer), c’est-à-dire un égaliseur à décision dans la boucle, expliqué plus en détail plus bas.
Rappelons, d’après l’exemple ci-dessus, que le Rx PMA mesure la tension entre ses deux broches d’entrée (D+ et D-) une fois toutes les 0,2 ns. Selon que cette tension est négative ou positive, il détecte un « 0 » ou un « 1 ». Lorsqu’un égaliseur est utilisé, le Rx PMA s’appuie sur la sortie de l’égaliseur à la place.
Si un DFE est utilisé, on suppose que l’émetteur garantit que les bits transmis sont statistiquement indépendants les uns des autres. Et si le canal physique ne déformait pas le signal ? Dans ce cas, les tensions sur lesquelles le Rx PMA se fonde pour décider d’un « 0 » ou d’un « 1 » seraient également mutuellement indépendantes sur le plan statistique. En d’autres termes, chaque fois que le Rx PMA examine son signal analogique d’entrée, il ne devrait exister aucune relation statistique avec les signaux précédents ou suivants.
Mais en réalité, le canal physique déforme le signal qui porte le flux de données. Il existe donc une relation statistique entre les tensions qui représentent un « 0 » ou un « 1 » : l’effet de filtre passe-bas étale le signal de tension, et les réflexions (« échos ») dégradent elles aussi la qualité du signal. Le niveau de tension de chaque bit déborde sur les bits voisins. Comme indiqué plus haut, cet effet s’appelle l’interférence inter-symboles (ISI). Si le récepteur ne fait rien pour atténuer l’effet de l’ISI, cette interférence mutuelle entre les bits équivaut à ajouter du bruit au canal.
Le DFE fonctionne un peu comme un suppresseur d’écho : il contient un filtre qui s’ajuste de manière à supprimer toute corrélation entre les échantillons qui représentent un « 0 » ou un « 1 ». Plus précisément, il élimine la corrélation entre les bits détectés (« 0 » ou « 1 ») et les signaux analogiques des bits voisins. Autrement dit, si le DFE atteint son objectif, il n’existe plus de corrélation statistique entre le signal analogique utilisé pour décider de la valeur d’un bit et les valeurs des autres bits. L’ISI est alors réduit à zéro, ce qui signifie que l’étalement du canal et les réflexions n’ont plus d’impact sur la qualité de la transmission.
Notons que s’il existe une corrélation statistique entre les bits transmis sur le canal, le DFE va tenter de supprimer cette corrélation. Il ajustera alors le filtre analogique d’une manière qui ne correspond pas à la distorsion du signal due au canal physique. Le DFE déformera donc le signal au lieu de le corriger. C’est pourquoi un embrouilleur (scrambler) est toujours obligatoire lorsque le DFE est activé.
S’il est impossible de garantir que les bits transmis ne sont pas corrélés entre eux, l’égaliseur LPM peut convenir. La fiche technique du MGT indique généralement si l’égaliseur LPM peut être utilisé sans embrouilleur.
Tous les MGT n’ont pas de DFE, mais presque tous ont un égaliseur LPM d’une forme ou d’une autre. Les informations fournies par les fiches techniques sont souvent incomplètes en ce qui concerne le type d’égaliseurs pris en charge par le MGT et leur fonctionnement. Si la fiche technique ne précise pas le type d’égaliseur, il s’agit très probablement d’un LPM.
Même si le DFE est un type d’égaliseur plus sophistiqué, il ne donne pas toujours de meilleurs résultats que le LPM, même lorsque les bits sont mutuellement décorrélés. En particulier, lorsque la qualité du canal physique est relativement bonne, le LPM peut être plus performant que le DFE.
Préaccentuation
Il peut être utile de manipuler le signal de sortie de l’émetteur pour améliorer le signal qui arrive au récepteur. Cette méthode s’appelle la préaccentuation (pre-emphasis). Elle est particulièrement utile lorsque la distorsion du signal est si forte que le récepteur n’arrive pas du tout à se synchroniser sur le flux de données. Cette méthode comporte plusieurs variantes, et chaque MGT possède son propre ensemble de fonctionnalités.
Dans la plupart des situations, le canal physique a l’effet d’un filtre passe-bas. L’émetteur peut compenser par avance une partie de la distorsion du canal en mettant en forme son signal de sortie. Le mécanisme le plus simple est l’accentuation post-curseur (post-cursor emphasis) : comme le canal physique réagit lentement aux changements de la sortie de l’émetteur, l’émetteur compense ce phénomène en appliquant une tension plus élevée lorsque le bit change. Ou, plus précisément, il réduit la tension lorsque le bit ne change pas.
Pour illustrer ce mécanisme, rappelons que dans l’exemple ci-dessus, la sortie de l’émetteur valait –500 mV ou 500 mV (pour un « 0 » ou un « 1 »).
Avec l’accentuation post-curseur, si la sortie passe de « 0 » à « 1 », la tension de sortie sera de 500 mV, comme avant. Mais si le bit suivant est encore un « 1 », la tension de sortie est plus basse, par exemple 400 mV. La même chose se produit pour les transitions de « 1 » vers « 0 ». Dans ce cas, la tension de sortie sera de –500 mV. Mais si le bit suivant est encore un « 0 », la tension sera de –400 mV.
Cette image montre la même simulation que la dernière image de formes d’onde, mais avec une accentuation post-curseur appliquée :
La forme d’onde rouge montre comment fonctionne l’accentuation post-curseur : la tension de sortie reçoit un léger coup de pouce à chaque changement de bit, puis revient à une tension plus basse entre-temps. Cette méthode est souvent appelée désaccentuation (de-emphasis), car l’émetteur réduit la tension des bits répétés, qui sont donc « moins accentués ».
En comparant la forme d’onde bleue avec l’image ci-dessus, on constate que l’amplitude de cette tension est plus petite. Cela ne semble peut-être pas très important, mais la différence est plus nette sur le diagramme de l’œil :
C’est nettement mieux, mais pas encore suffisant : un égaliseur reste nécessaire dans un tel scénario.
Notons que l’accentuation post-curseur peut être décrite comme un simple filtre FIR. Désignons par x(n) les tensions de l’émetteur sans accentuation (n est le numéro du bit transmis). Chaque x(n) peut valoir –500 mV ou 500 mV. La sortie de l’émetteur avec accentuation post-curseur peut donc s’écrire comme suit :
y(n) = 0,9 x(n) – 0,1 x(n–1)
C’est une expression simple de filtre FIR qui favorise les signaux à haute fréquence. On peut y voir une compensation du comportement de filtre passe-bas du canal physique.
La partie « post-curseur » de l’expression « accentuation post-curseur » vient du fait que le filtre FIR correspondant peut s’écrire :
y(n) = (1-a) x(n) – a x(n–1)
Dans cette expression, a est généralement choisi positif.
Ce filtre FIR dit essentiellement ceci : la valeur de y(n) dépend principalement de x(n), mais si x(n–1) avait la même valeur, y(n) est un peu plus proche de zéro. La modification de y(n) dépend donc du bit précédent.
Le mot « curseur » se rapporte au bit en cours de transmission. Le mot « post » indique que ce filtre dépend du bit transmis précédemment, c’est-à-dire le bit qui suit le « curseur ».
Il est possible de généraliser l’idée d’un filtre FIR qui favorise davantage les hautes fréquences. En particulier, ce filtre est souvent implémenté dans les MGT :
y(n) = apre x(n+1) + a0 x(n) – apost x(n–1)
Dans cette expression, apost correspond à l’accentuation post-curseur déjà présentée. apre représente la dépendance vis-à-vis du bit précédant le « curseur », c’est-à-dire l’accentuation pré-curseur (pre-cursor emphasis), parfois aussi appelée preshoot. Il ne faut pas confondre cela avec le terme préaccentuation, qui recouvre toute la gamme des manipulations du signal de sortie de l’émetteur représentables par un filtre FIR.
Chaque MGT offre différentes possibilités pour mettre en forme le signal émis. L’accentuation post-curseur est généralement disponible, car plusieurs protocoles l’exigent. Pour les autres variantes, cela dépend du MGT.
L’inconvénient évident de la préaccentuation est que le résultat des réglages de l’émetteur n’est visible que du récepteur. Rappelons que l’égaliseur peut s’ajuster en continu pour obtenir une réception optimale. Mais en général, le mécanisme de préaccentuation ne sait pas si le signal est bien reçu de l’autre côté. Le protocole peut résoudre ce problème. Par exemple, le protocole DisplayPort spécifie un mécanisme qui permet au côté récepteur d’envoyer des requêtes à l’émetteur. Le récepteur contrôle ainsi le niveau de tension de l’émetteur et le niveau d’accentuation post-curseur.
La préaccentuation est également utile lorsque le canal physique est connu à l’avance, par exemple lorsque deux FPGA sont connectés l’un à l’autre sur un circuit imprimé. Il peut néanmoins être judicieux de l’utiliser même lorsque les paramètres du canal sont inconnus, en particulier à des débits élevés (8 Gb/s et plus).
Notons que la préaccentuation et l’égaliseur ne sont pas des substituts l’un pour l’autre, même si ce sont tous deux des filtres qui améliorent la qualité du signal et réduisent les erreurs. L’égaliseur est généralement l’outil le plus puissant des deux. La préaccentuation a plutôt pour rôle d’aider l’égaliseur, ou de garantir que la qualité du signal est suffisante pour permettre au récepteur de se synchroniser sur l’émetteur.
La préaccentuation n’est pas utilisée du tout dans de nombreuses applications. Cet outil est utile notamment lorsque la distance entre les deux MGT est grande, et en particulier lorsque le signal circule sur un circuit imprimé. Lorsque la distance est raisonnablement courte et que le récepteur est muni d’un bon égaliseur, il n’y a généralement aucune raison de manipuler le signal de sortie de l’émetteur.
Balayage d’œil statistique
Il est souvent souhaitable d’évaluer la qualité du canal, même lorsque toutes les données arrivent sans erreur. Il est notamment intéressant de savoir à quelle distance le canal se trouve du point où les erreurs commenceraient à apparaître. Le canal est-il robuste, ou des erreurs vont-elles apparaître au moindre changement du support physique ?
Rappelons également, d’après la page précédente, que lorsque le canal sert à transmettre des données utiles, il est impossible d’effectuer un test de BER en même temps. Il est donc difficile d’évaluer la qualité du canal pendant qu’il est utilisé (à l’exception de certains protocoles qui signalent toutes les erreurs, par exemple xillyp2p).
La façon habituelle d’évaluer la qualité d’une liaison consiste à mesurer le diagramme de l’œil côté récepteur. C’est possible lorsque le signal arrive par un câble et un connecteur : il existe un équipement de mesure à cet effet (assez coûteux). En revanche, lorsque le signal circule sur un circuit imprimé et arrive à une puce (un FPGA notamment), il n’y a généralement aucun point où capter le signal. Toucher un fil du circuit imprimé avec une sonde modifierait radicalement la forme du signal, rendant la mesure inutile.
La solution élégante à ce problème est le balayage d’œil statistique (statistical eye scan). Autrement dit, c’est le Rx PMA lui-même qui mesure le diagramme de l’œil du signal. Cette méthode présente plusieurs avantages :
- Le signal est mesuré exactement à l’endroit où le Rx PMA décide si le bit est un « 0 » ou un « 1 ».
- La mesure ne modifie pas le signal.
- La mesure tient compte de la correction apportée par l’égaliseur. Elle aide donc à choisir l’égaliseur à utiliser et à ajuster finement ses paramètres.
- Si le CDR n’arrive pas à suivre la gigue de l’horloge de l’émetteur, cela se voit sur cette mesure.
- La mesure n’interfère pas avec le fonctionnement normal du Rx PMA. Il est donc possible de tester le canal pendant qu’il transporte de vraies données.
Cette méthode n’a qu’un seul inconvénient : son résultat n’est pas vraiment un diagramme de l’œil. Mais le résultat est presque aussi utile.
Rappelons que le Rx PMA décide si le signal reçu est un « 0 » ou un « 1 » selon que la tension différentielle du signal arrivé est négative ou positive. C’est au CDR de faire cette décision au moment optimal.
Pour le balayage d’œil statistique, une unité supplémentaire participe à la décision « 0 » ou « 1 ». Cette seconde unité prend toutefois sa décision un peu plus tôt ou un peu plus tard que la première. Ce décalage temporel est contrôlé en configurant les registres du MGT (cela peut être fait pendant que le MGT fonctionne).
Autre différence entre les deux unités : la façon de décider si le signal est un « 0 » ou un « 1 ». Comme déjà mentionné, la première unité compare la tension du signal à zéro. La seconde unité peut quant à elle comparer avec une plage d’autres seuils de tension. Par exemple, si le seuil de tension est fixé à 100 mV, la seconde unité décide que c’est un « 1 » si le signal reçu est supérieur à 100 mV ; sinon, elle décide que c’est un « 0 ».
La seconde unité fait donc exactement la même chose que la première, mais avec un décalage à la fois temporel et en tension. La logique interne du MGT compare automatiquement un nombre déterminé de décisions et compte le nombre de fois où ces décisions diffèrent. Autrement dit, elle compte combien de fois la décision du Rx PMA sur le bit aurait été différente si le moment d’échantillonnage et le seuil de tension avaient été déplacés.
S’il n’y a jamais de différence entre les décisions des deux unités, cela signifie que la position de la seconde unité (en temps et en tension) se trouve à l’intérieur de la zone marquée en vert sur les diagrammes de l’œil ci-dessus. Cette situation se reconnaît à un compteur toujours à zéro après une durée de mesure significative. Lorsque la position de la seconde unité se rapproche des bords de la zone verte, le compteur s’élève de plus en plus.
Le balayage d’œil statistique est obtenu en répétant cette comparaison entre les deux unités pour une gamme de décalages temporels et de seuils de tension. Cette opération est effectuée par la logique applicative, ou en réglant les registres du MGT via JTAG. Le processus ressemble à un programme informatique qui exécute une boucle « pour » sur les décalages temporels à l’intérieur d’une boucle « pour » sur les seuils de tension. La durée de cette opération dépend de la précision souhaitée pour la mesure.
Voici un exemple de balayage d’œil statistique (extrait de une autre page), obtenu avec un FPGA Artix-7. La zone verte au centre correspond à la zone verte des diagrammes de l’œil ci-dessus. Le résultat mesuré diffère quantitativement de toutes les images montrées ci-dessus, car les exemples précédents ne simulaient qu’un seul type de distorsion du signal.
Il faut environ une minute pour obtenir une image de ce genre. Mais il est possible de se faire une bonne idée de la qualité du canal à partir d’une image plus grossière, obtenue en moins d’une seconde.
Pour obtenir un balayage d’œil statistique, il n’y a généralement rien à concevoir. Cette opération peut notamment être réalisée par Vivado à l’aide de la connexion JTAG. Malheureusement, tous les MGT ne disposent pas des capacités nécessaires au balayage d’œil statistique.
Ceci clôt la cinquième page de cette série consacrée aux MGT. La page suivante poursuit la discussion sur le PMA et ses capacités lorsque le flux de données normal est interrompu.







