Emulateur de capteur vidéo sur FPGA

Conception d’un émulateur de capteur vidéo sur FPGA

Emulateur de capteur vidéo sur FPGA

Concevoir une carte de prototypage FPGA permettant d’émuler le fonctionnement d’un capteur vidéo avant le tape-out et ainsi de tester son design, tel était l’objectif de ce PFE, réalisé en collaboration avec la société Pyxalis.

En effet, après la fabrication il n’est plus possible d’altérer le design d’un capteur et la simulation nécessite une puissance de calcul importante.

Le rôle de Corentin, notre stagiaire, était de définir l’architecture logique de la carte permettant d’accueillir cette émulation de capteur et d’implémenter les interfaces nécessaires. Il nous raconte.

Pour découvrir les offres de stages PFE chez ELSYS Design, rendez-vous sur notre site emploi (taper le mot-clé « stage »). Il est également possible de déposer une candidature spontanée.

Le contexte

Le stage s’est divisé en trois grandes parties.

Premièrement une phase de conception. A partir du cahier des charges, il a fallu choisir les composants et l’architecture répondant aux besoins. Cela inclut le choix de la matrice FPGA, une solution de stockage de masse et un système de mise en cache pour les données de travail avec un DMA.

Faire les bons choix techniques a nécessité une montée en compétences afin de mieux comprendre les technologies mises en œuvre. Les échanges fluides avec notre partenaire ont également rendu possible l’assimilation de la totalité des besoins exprimés dans le cahier des charges.

Le choix s’est orienté vers un FPGA Ultrascale+ de XILINX avec une carte SD pour le stockage de masse et un module de QDRIV SRAM pour le cache. L’architecture est composée, au centre, du cœur d’émulation entouré d’une couronne de périphériques.

La phase de conception achevée, nous nous sommes lancés dans la partie développement avec la suite logicielle Vivado de XILINX.

Nous avons utilisé des bus AXI qui permettent de standardiser le protocole de communication entre les différents modules à intégrer.

En effet, Vivado inclut de nombreuses IP compatibles AXI qui prennent en charge certaines fonctions telles que le DMA, les interfaces UART et I2C et surtout le MicroBlaze : un microcontrôleur softcore qui permet d’exécuter du code C/C++ et donc de configurer les interfaces présentes sur le bus.

J’ai aussi développé un contrôleur SD en VHDL afin de lire ou d’écrire des données sur une carte SD en passant par le bus AXI ainsi qu’une interface AXI pour le module de QDRIV SRAM.

Finalement, la troisième étape était celle du test et de la validation.

Malheureusement, à cause de la situation compliquée dans le secteur du semi-conducteur, la carte développée pour ce stage n’a pas pu être disponible avant la fin et il n’a donc pas été possible de valider les fonctionnalités sur carte.

Toutefois, nous avons pu en valider un maximum par l’intermédiaire de simulations en écrivant des testbenchs et en utilisant des modèles de simulation, par exemple pour la QDRIV SRAM.

Certaines fonctionnalités, particulièrement le contrôleur SD, ont pu être testées sur carte de prototypage en utilisant des fonctionnalités de Vivado telles que l’analyseur logique intégré au FPGA (ILA).

Bilan

Pour moi, le réel intérêt de ce stage a été la diversité des tâches qui m’ont permis d’avoir une vision globale du développement d’un projet en micro-électronique.

J’ai pu monter en compétences dans des domaines tels que l’architecture système, le développement VHDL, la gestion de projet et la relation client.