Utilisation des liaisons séries embarquées dans les FPGA XILINX
Participation au Firmware de la TCC68 Utilisation du Virtex II Pro 1er FPGA Xilinx à contenir des modules séries haute vitesse intégrés Le Rocket IO : intégration au FPGAs d’une interface série rapide Possibilité de réaliser des liens série haute vitesse avec l’architecture ordinaire d’un FPGA
Le Rocket IO 1ère intégration dans les Virtex II Pro ~2001 Collaboration entre Xilinx, Mindspeed, IBM et WindRiver Xilinx Expertise FPGA, avec : SELECTIO (entrées/sorties Multiples standards jusqu’à 840 Mb.s-1 dans les Virtex II Pro) XCITE (Controlled Impedance Technology) pour l’ Intégrité de Signal
Le Rocket IO MindSpeed SkyRail : IP’s Transmetteurs à Performances (600 Mb à 3.125 Gbits.s-1) et manufacturabilité prouvées PCS Physical Coding Sublayer PMA Physical Media Attachement
Concurrent des SoC haute bande passante auparavant uniquement ASICs Le Rocket IO IBM manipulation live : PowerPC 405 connectique : CoreConnect Bus WindRiver Compiler, Soft Debugger et Hardware Probe : lien software Solution Complète avec support sur chaque partie du flow Concurrent des SoC haute bande passante auparavant uniquement ASICs
Le Rocket IO : solutions intégrées Standards complètements intégrés : Ethernet, Fast Ethernet, Gigabit Ethernet, Infiniband et XAUI (Ethernet 10 Gbits) Possibilité de customiser, mixer les Paramètres Vs Circuit externe : Puissance utilisation surface PCB lignes sur les bus contrôle des terminaisons, du swing et possibilité de préaccentuation optimiser le rapport signal/bruit
Le Rocket IO : solutions intégrées Power Switching : signal Power off place les RIO au niveau BIAS possibilité de couper (externe) les alims de terminaison des Pads VTTX/RX ports de sortie en HighZ Configurable en partie même en cours de fonctionnement à partir du cœur FPGA et du PowerPC (ICAP)
Complications… Les inconvénients : Composant rapide modèles dédiés pour la simulation HSPICE : analogique (modèles encryptés) SmartModels : logique (également cryptés) circuits boîtes noires Font le lien avec les modèles Swift (librairies HDL encryptées)
L’évolution Logicielle a un coût Modèles analogiques hautes fréquences : convergence simulateur : pas simulation picoseconde temps simulation du même rapport Modification d’options du simulateurs Utilisation des librairies Swift avec les simulateurs Licences de niveau supérieur ~30 simulateurs supportés Ex : ModelSim versions PE, SE ou XEIII et pas XE
L’installation des Librairies Installation SmartModels utilitaire Xilinx sl_admin [2] Compilation librairies Verilog cryptées Environnement Simulateur
L’exemple de la TCC68 Lien SRP (Selective Readout Processor) réalisée au CEA/DAPNIA (Irakli Mandjavidze) Implémentation d’un lien Customisé à 1.6 Gbits avec 8b/10b, Calcul de CRC Les problèmes rencontrés : La compilation : version et param. du simulateur Les constantes (Nombreuses et parfois obscures), génériques vs signaux
Attention!!! Un certain nombre de contraintes à respecter : Outre, la précision des alims et des circuits de protection Le Jitter de l’horloge externe (≤60ppm) Pads et Buffers d’horloge à utiliser Les différents domaines d’horloge à générer en interne pour récupération, réception, transmission, contrôle… Un guide de l’utilisateur lourd et manquant parfois de cohérence et de détails alors que peu synthétique. Paramétrage complexe et non intuitif Merci à …
Synthèse Complexité à 1ère vue, quelques semaines devraient suffire En fait… quelques mois et plusieurs lectures avec prise de notes Formations (ex: MVD) : quelques jours, jargon accumulé au fur et à mesure des développements, difficulté d’accès plus utile pour une synthèse et un support Appel à l’aide Mais Robustesse, précision et observabilité
Un autre cas Le rocket IO a de nombreux avantages Mais, Fréquences < 840 Mbits.s-1 implémenter un lien série à la main peut être plus rentable Description + proche du hardware Permet d’approcher de + près la structure du FPGA (meilleure maîtrise des enjeux) Meilleure maîtrise de la synthèse Compétences + réutilisables
Situation Modèles disponibles dans les notes d’application Xilinx qui possède de très bons développeurs FPGA (Ex : xapp265 [5] par Nick Sawyer). Données du LHC : TCC DCC (concentration de données) Lien cuivre à 720 Mb.s-1 réceptionné par un circuit de déserialisation fondeur (DS92LV18) Protocole de données peu standard.
(équivalent de la master transition du CIMT) Spécifications Horloge récupérée sur les données série mais pas avec un code Manchester, signaux NRZ… Transmission directe de la Clock en début de mot (équivalent de la master transition du CIMT) Régularité des transition forcée :
Détachement du modèle Problème : Change la fréquence de transmission, Perte de la symétrie des puissances de 2. Clock @80 MHz, Mots de 16 bits @40 MHz 640 Mb.s-1 normalement Ici 720 Mb.s-1. Machine de génération des trames séries plus complexe
Marge, enjeux, Robustesse Horloges : 1 @ rapport cyclique 1/9 1 @4,5xClk (9x@Data) + bascules DDR fréq. interne 360 MHz Utilisation multiplication d’horloge DCM : fréq. < 640 Mb.s-1 conseillé (Jitter) Point crucial : placement fortement contraint des bascules du design (location absolue) routabilité et respect des contraintes de timings très fortes.
Schéma du Sérialiseur 720 MHz
A l’oscilloscope en sortie de la carte (3 jours d’accumulation) Netteté des signaux Oscilloscope Lecroy Bande Passante 500MHz 5 Gsample/sec A l’oscilloscope en sortie de la carte (3 jours d’accumulation)
Validité Utilisation de Matlab pour processer les données échantillonnées à l’oscilloscope Jitter calculé sur 5 Méga échantillons avec un oscilloscope Lecroy 500MHz 5Gsample/sec
Conclusion Fonction de la fréquence de fonctionnement RIO très utile, plutôt facile d’utilisation et robuste une fois maîtrisé Bonnes performances et meilleure compréhension dans le 2ème cas Utilisable également quand pas de RIO
Liens et Contacts Marques pages dans le User’s Guide du RIO: Références : [1] RocketIO User’s Guide [2] Installation des librairies pour la simulation Dossiers de Presse Xilinx : [3] et [4] [5] Application Note 265 (SerDes) Électroniciens responsables du développement des cartes sus citées : TCC68 : Yannick Gereebaert SRP : Irakli Mandjavidze Marques pages dans le User’s Guide du RIO: P22 : schéma fonctionnel global p74 : liste des séquences de Clock correction p78 : machine d’état de synchronisation du récepteur p143 : liste des K-characters