Aedvices

Développement en C++ d’une application d’analyse de la robustesse de designs VHDL/Verilog

Le sujet du stage

Le but du stage est de développer une application logiciel appliquée à la conception de circuits microélectroniques afin de valider la robustesse de ces circuits.

Les circuits numériques type ASIC et les microprocesseurs sont soumis aux radiations cosmiques pouvant perturber leur fonctionnement. Pour faire face à ces perturbations, les systèmes critiques sont conçus en intégrant des éléments logiques complémentaires afin de les rendre robustes à ces perturbations. Une des méthodes pour valider la robustesse de ces circuits consiste à injecter des « fautes » dans le circuit lors de simulations.

En partenariat la société PYXALIS basée à Moirans, ce stage devra permettre :

  • De développer les fonctionnalités d’injection de fautes, sur la base d’un « Proof-Of-Concept » existant.
  • D’implémenter un algorithme d’injection de fautes cohérent, ainsi que l’extraction des données pour l’analyse.
  • De mettre en place une méthodologie de travail pour le développement de systèmes robustes.

Déroulement du stage

Après une formation interne et une prise en main de la plateforme existante, tu vas :

  • Implémenter en C++ les fonctions de détection des bascules, d’injection de fautes et d’extraction des résultats.
  • Intégrer la librairie TCL et l’implémentation des commandes spécifiques à l’application.
  • Implémenter en C++ ou en Python, une interface graphique permettant de simplifier l’utilisation de l’outil.
  • Utiliser lors d’un proof-of-concept et réaliser l’analyse de la robustesse d’un processeur RiscV et de comparer les résultats avec une implémentation non-robuste.
  • Intégrer la solution dans un flot d’intégration continue tel que Jenkins.

Tu développeras les compétences suivantes :

  • Développement de librairie dynamique C et C++ sous Linux.
  • Interface du code avec des API de logiciel métiers (VPI et VHPI).
  • Développement logiciel en mode Agile en Intégration Continue via Git et Jenkins.
  • Compréhension des flots de conception et de vérification de circuit numérique.

Possibilité d’embauche en CDI à l’issue du stage.

Est-ce bien pour toi ?

  • Dernière année d’école d’ingénieur ou équivalent avec une spécialisation en conception logiciel.
  • Connaissances en programmation orientée objet.
  • Connaissances des langages de développement C++ et Python.
  • Connaissances VHDL et/ou Verilog.
  • Développement sous Linux : gcc, librairie, makefile, IDE (Eclipse, SublimeText, Visual Studio Code, …).
  • Anglais.

Tu es rigoureux(se), bon(ne) communicant(e) et tu apprécies le travail en équipe. Tu as aussi une curiosité naturelle d’apprentissage.

Télécharger le catalogue des formations

Veuillez saisir votre nom et email pour télécharger le catalogue des  formations.