Dans un contexte de développement d'un système de déflexion de faisceau électronique (canon à électron) architecturé autour d’un FPGA ARTIX-7 avec un microblaze embarqué pour la réalisation d’une imprimante 3D métallique:
développement d’une API C/C++ pour le pilotage du système de commande du canon.
développement du firmware C/C++ exécuté par le microblaze (lecture, écriture, régulation de tensions et courants, etc.)
développement d’une IHM en C++ (Gtkmm) pour le pilotage du canon, puis migration vers Qt.
conception d’un pseudo - Gcode pour dessiner des motifs par déflexion du faisceau
étude du code Scala et de la library spinalhdl pour la correction des bugs, rédaction de la documentation.
développement VHDL de modules de pilotage de périphériques pour diverses applications : pilotage moteur pas à pas et alimentations par SPI, I2C, etc...
exploitation des électrons retro-diffusés et des rayon X pour de l’imagerie, utilisée pour faire de la détection de plan de joint des pièces a souder et de l’autocalibration
Débogue, puis redesign de deux versions d’un système de duplication/filtrage de trames Ethernet (64 – 1518 octets).
C’est un système à 4 ports Ethernet, dont 3 ports opérationnels (NET1, NET2, HOST) et 1 port de supervision (SUP).
Filtrage :
Les trames entrantes sur NET1 et NET2 sont filtrées quand elles sont redondantes. Une trame sur NET1 et une autre sur NET2 sont considérées redondantes si elles sont identiques et décalées de moins de 10 ms. La première trame est acheminée vers le port HOST et la deuxième est supprimée.
Duplication
Les trames entrantes sur HOST sont dupliquées et acheminées vers NET1 et NET2.
Le port SUP sert de port de débogage et de supervision pour visualiser les registres internes du FPGA via une connexion SSH avec le firmware interne du FPGA.
Débogue de la Version 1 du système a 100 Mo/s de débit maximum sur Virtex4 avec PowerPC embarqué dans un contexte a fortes contraintes (impossibilité d’inclure des outils de debug tel que Chipscope a cause du taux de remplissage élevé du FPGA, relecture difficile du code VHDL, difficultés à router le FPGA au moindre changement du code).
Etude de la documentation technique du système de duplication/filtrage
Mise en place de test bench
Reproduction des bugs avec Spirent (trames corrompues ou perdues en filtrage suivant les tests)
Utilisation d’un port de supervision pour la lecture des registres et compteurs du FPGA par connexion SSH avec le PowerPC
Redesign des modules filtrage et Qos de la Version 2 du système a 1 Go/s maximum sur Zynq avec ARM embarqué.
Spécification du module de filtrage
Support d’activités de design/debug/implémentation d’un multiplexeur vidéo au cœur d’un FPGA ultrascale Xilinx
Rédaction de la spécification détaillée du FPGA et des contraintes d’implémentation
Garant de la traçabilité complète des exigences : en amont vers la spécification de la carte, en aval de la spécification du fpga jusqu’au code
Conception du FPGA : codage VHDL/VERILOG, intégration d’IPs, gestion du top-level.
Support à la définition et à la mise en place de la stratégie de debug des différentes fonctions (simulation et/ou portage sur carte d’évaluation)
Implémentation du FPGA (définition des contraintes et du script TCL de commande du flot) et de l’analyse des résultats (STA)
Reporting hebdomadaire
Projet design système SOC de sauvegarde/dépouillement de données d'acquisition dans un cadre de contrôle non destructif dans des cartes SDXC et codage du software en C pour le pilotage de l'ensemble par une plate-forme ARM:
Design firmware en VHDL et Verilog pour la sauvegarde de données provenant de sondes dans un contexte de contrôle non destructif. Le système est architecturée en étoile autour d'une carte CPU reliée au PC par USB, de 5 cartes SYNCHRO reliées a cette dernière par un lien LVDS, 10 cartes ER (émission/réception) )reliées a chaque carte SYNCHRO par un lien LVDS et 2 cartes SDXC reliées a chaque carte ER.
Notons aussi un bus lent qui relie la carte CPU a toutes les autres cartes SYNCHRO et ER pour la programmation et 2 sondes reliées a chaque carte ER.
Les cartes SYNCHRO sont architecturées autour d'un ZYNQ (plate-forme ARM) et comprennent en outre une DDR de 1Go qui sert de buffer de données en sauvegarde et en dépouillement.
Les cartes ER sont architecturées autour d'un FPGA Kintex7.
Integration contrôleur SDXC dans un Kintex7 (VHDL et Verilog)
Design d'un firmware encapsulant le contrôleur (VHDL)
Codage test bench pour des opérations de lecture/écriture dans un modèle de carte SD (VHDL)
Etude protocole SD
Codage DLL de test en C pour le pilotage du système par le CPU a partir du PC
Design (VHDL et Verilog) sous Vivado d'un système dans la plate-forme ARM comprenant :
Une DMA qui transfert les données entre la DDR de la plate-forme ARM des cartes SYNCHRO vers les cartes mémoires SDXC
Interface AXI/LVDS pour l'envoie des commandes vers les cartes mémoires SDXC (étude protocole AMBA)
Test de lecture/écriture des mémoires SDXC par le processeur
Mesure des vitesses de lecture/écriture des mémoires SDXC
Mise en place interruptions pour l'optimisation de la vitesse d'écriture dans les mémoires
Etudes de la FAT et formatage des mémoires SDXC.
Projet customisation IP SPI:
Customisation d'un IP SPI interface PowerPC440 – lignes à retard dans un FPGA Virtex 5 servant au pilotage des horloges distribuées au système uTCA.
Customisation de l'IP avec 12 périphériques esclaves
Codage d'un programme en C pour le pilotage de l'IP via le microprocesseur PowerPC440
Implémentation du design sur une carte de développement AVNET et validation du design
Projet design module Multi-Gigabit Transceiver (MGT) sans flow control contenu dans le FPGA Virtex 5:
Etude et design d’un firmware autour du MGT pour une communication GTX 1 lane ,1.25 Gbits/s et 2.5 Gbits/s avec horloge de référence 125 Mhz, interface streaming et data flow mode duplex.
Etude du port GTX et du protocole Aurora 8b/10
Spécification du module MGT (1 fifo RX, 1 fifo TX et module GTX)
Conception du module MGT et rédaction de la documentation
Codage VHDL du module MGT sur ISE 12.4 et synplify
Validation temporelle par un test bench du module MGT avec Modelsim
Conception d’un environnement de validation sur le kit ML507 (interfaçage contrôleur mémoire EMC-MCH, bus PLB_V46, GPIO et PowerPC440)
Validation en mode loopback, transmission cuivre et fibre optique
Projet design module Multi-Gigabit Transceiver (MGT) avec flow control contenu dans le FPGA Virtex 5:
Etude et design d’un firmware autour du MGT pour une communication GTX 1 lane, 1.25 Gbits/s et 2.5 Gbits/s avec horloge de référence 125 Mhz, interface framing, data flow mode duplex et user flow control (UFC).
Etude du port GTX et du protocole Aurora 8b/10
Spécification du module MGT (2 fifos RX, 2 fifos TX et module GTX)
Conception du module MGT et rédaction de la documentation
Codage VHDL du module MGT sur ISE et synplify
Validation temporelle par un test bench du module MGT avec Modelsim
Conception d’un environnement de validation sur le kit ML507 (interfaçage contrôleur mémoire EMC-MCH, bus PLB_V46, GPIO et PowerPC440)
Validation en mode loopback, transmission cuivre et fibre optique
Validation en mode normal entre 2 kits de développement ML507 par interruption du processeur en mode flow contrôle et liaison fibre optique 60 m.
Projet design interfaces:
Design d’interfaces pour l’accès du contrôleur mémoire EMC-MCH à différents périphériques :
Interface EMC-MCH / fifo en mode burst double accès.
Interface EMC-MCH / DP BRAM par le port B.
Projet Vérification FPGA DO254:
Test d'intégration et qualification de FPGAs Actel dans le domaine de l'aéronautique suivant la norme DO254 niveau de criticité B.
Description du plan de test du module (VTP).
Réalisation scripts de compilation MS-DOS, C-Shell.
Conception du test bench en VHDL.
Simulation du module sous Modelsim.
Analyse des défaillances.
Analyse de couverture de code.
Comparaison du code VHDL des modules avec la documentation de conception détaillée (DDD).
Analyse de traçabilité des exigences.
Rédaction documentation des résultats des tests (VTR).
Iroc technologie est spécialisée dans les soft errors de composants. L'objectif principal de la mission consiste à mettre œuvre le dispositif de test de mémoires RAM en lecture/écr...