Cherif - Développeur VHDL C++ C QT

Ref : 150615G001
Email vérifié
Photo de Cherif, Développeur VHDL C++ C QT
Compétences
Expériences professionnelles
CV plus récent en cours de mise à jour
  • Expérience professionnelle

    Depuis Octobre 2018 - Lepton technologies, Grenoble (Rhones Alpes)

    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

    Environnement technique :
    Ubuntu, Sbt, cocotb, verilator, gtkwave, vivado, picoscope, Meson build.

    Novembre 2017 – Octoble 2018 - Eolane Engineering, Grenoble (Rhones Alpes)

    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

    Environnement technique :
    Linux, Spirent, ISE, Vivado, Modelsim, SVN.

    De 09/2015 à 11/2015 – Lacroix electronics , Echirolles (Rhones Alpes)

    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

    Juin 2013 – Fevrier 2015 - M2M , Les Ulis (IDF)

    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.
    Environnement technique :
    Windows, Vivado 2013.2, EDK, SDK, ISE, Modelsim, Core generator, Chipscope pro, oscilloscope, cartes de développement (ZQ702), SVN.

    Septembre 2012– Juin 2013 – CNRS - GANIL, Caen
    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.
    Environnement technique :
    Windows, EDK, ISE, Synplify, Modelsim, Core generator, Chipscope pro, oscilloscope, cartes de développement (AVNET et ML507).

    2011 – BARCO SILEX, Peynier – 5 mois
    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).
    Environnement technique :
    Linux, Windows, ModelSim, Visio, Total Commander, UltraEdit, SVN, MS-DOS, C-Shell

    2009/2010 – IROC TECHNOLOGIES, Grenoble – 18 mois
    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/écriture sous radiations alpha, gamma ou X.
    L'intervention se situe principalement a concevoir l’interfaçage CPU/mémoires sur FPGA Xilinx Virtex 5 ainsi que d'adapter l'interface de communication PC/CPU en fonction des caractéristiques des mémoires sous test.
    De plus, j'ai eu à prendre l'ensemble du cycle de développement en V d'un bloc IP d'un outil DFT pour les tests sous radiation de mémoires de type CAM ternaire. Il s'agissait de concevoir un bloc générique sur FPGA Xilinx Virtex 5 qui permette les tests de CAM binaire ou ternaire par un simple paramétrage de l'outil.
    • Vérification mémoires RAM
    Étude architecture mémoire et modes d’accès.
    Spécification PCB de composants RAM a tester.
    Développement interfaces CPU/mémoires en VHDL sur cible FPGA Xilinx, le tout forùmant une plateforme (interface logique, spécification générateur vecteur de test, FIFO et SRAM).
    Debugging du design sur la plate-forme CPU/FPGA (analyseur logique Tektronix), utilisation communication GPIB.
    Debugging de toutes les cartes a mémoire (vérification des pistes du PCB et de la fonctionnalité générale de chaque carte).
    Utilisation protocole réseau TCP/IP avec développement d'applications spécifiques interface serveur/client (microprocesseur Z80/PC) en C/C++dans une application graphique de communication.
    Développement environnement de validation automatique et d'analyse des résultats (scripts shell bash).
    • Design FPGA : les phases d'étude, de développement et l'intégration de bloc d'IP au niveau RTL
    Étude de l’interfaçage CPU/CAM
    Analyse des solutions devant être mises en œuvre pour minimiser les modifications de l'architecture du circuit sur FPGA Virtex 5.
    Conception d'un bloc qui permet l’interfaçage de CAM ternaire par une solution de bits de masque des entrées.
    Codage niveau RTL du bloc.
    Mise en place d'un plan de test.
    Simulation sous Modelsim.
    Intégration avec l'ensemble préexistant par modification de code.
    Test de l'ensemble de l'outil avec une CAM non réalisée.
    Environnement technique :
    Virtex 5, Unix, ISE, Modelsim, Zylog studio, GPIB, analyseur logique, oscilloscope.

    2009 - SOCOMEC, Benfeld – 6 mois
    Validation analogique de la partie contrôle commande d'un système de surveillance de réseaux électriques:
    Rédaction plans de test.
    Étude des cartes électroniques, puis subdivisions des systèmes en sous-modules indépendants.
    Test des sous-modules en courant, tension et température.
    Test d'intégration progressive de ces modules en courant, tension et température.
    Validation analogique des systèmes électroniques de contrôle-commande d’appareils de conversion électrique et de surveillance de réseaux électriques.
    Environnement technique :
    Alimentation électrique, GBF, oscilloscope, multimètres, fer à souder, Windows.

    2007 – Electronavale, Nantes – 6 mois (stage de fin d'études)
    Mon sujet de satge consistait en la prise en charge des phases du cycle de développement en V de CPLD d’une carte de contrôle commande générique devant être intégrée dans un variateur de vitesse, ainsi que de l'implémentation de fonctions de pilotage sur DSP et microcontrôleur pour la phase de test de la carte.
    Les 2 CPLD étaient du fondeur Lattice. Le DSP TMS320 est au centre de la partie commande de la carte et le microcontroleur PSD3200 avec un cœur de 8032.
    Les outils de développement étaient donc Isp Lever, DMC Developer pro et Keilµvision.
    • Analyse du cahier de charge
    Interfaçage avec le DSP et le microcontrôleur
    Interfaçage avec des I/O externes à la carte (capteur de température et de pression, etc.).
    • Conception des circuits 1 et 2.
    Rédaction documentation de conception
    Développement en VHDL sur ISP Lever des circuits
    Simulation
    • Validation de l'ensemble
    Développement soft embarqué sur DSP TMS320 en Assembleur et sur microcontrôleur PSD3200 en vue des tests.
    Test de la carte in situe par programmation JTAG.
    Les essais notamment pour la partie contrôle s'effectuent via une invite de commande sur PC.
    Environnement technique :
    Windows,VHDL, C, Assembleur, Office, Isp Lever, DMC Developer pro, Keilµvision.

Études et formations
CV plus récent en cours de mise à jour
  • Compétences spécifiques

    Langages: VHDL, Assembleur, C/ C++, Python, TCL/TK, Shell bash.
    Outils CAO: SYNPLIFY, XPS, CORE GENERATOR, MODELSIM, CHIPSCOPE PRO, ISE, QUARUS, ISP LEVER PRO, MATLAB, DMC DEVELOPER PRO, KEILUVISION.
    Fondeurs : XILINX, ALTERA, LATTICE.
    Processeurs : INTEL (80x86), MOTOROLA (68xxx),
    Processeurs : XILINX (VIRTEX5), ALTERA (stratixII), TMS320
    Informatique : Station UNIX – PC, LINUX
    Instrumentation : Analyseurs logique, générateurs de signaux, sondes de courant, sondeur de température, oscilloscope, GBF, multimètre, fer à souder.
    Méthodologies : Cycle en V.

    Diplôme
    2007 Master professionnel Conception, Mise en œuvre et Qualité des composants électroniques et optoélectroniques. Université de Nantes.

    2006 Master Electronique Electrotechnique Automatique. Université de Nantes.

    2004 DUT Génie électrique et informatique industrielle. IUT GEII de Cuffies.

    2001 Maîtrise Physique. Université de Dakar.

D'autres freelances
Développeur VHDL

Ces profils pourraient vous intéresser !
CV Développeur GO
Younes

Développeur GO

  • CAGNES-SUR-MER
GO DOCKER SQL JAVASCRIPT PYTHON C++ VHDL Vue.js DEVOPS
CV Ingénieur développement logiciel embarqué et programmation web et mobile
Bechir

Ingénieur développement logiciel embarqué et programmation web et mobile

  • BREST
PYTHON C++ VHDL SQL SERVER WEBDEV Angular JAVA ORACLE C SHARP ANDROID
CV Ingénieur Télécom C++
Maelic

Ingénieur Télécom C++

  • BREST
MATLAB C++ VHDL PYTHON
CV Ingénieur FPGA et software et développeur Web
Anas

Ingénieur FPGA et software et développeur Web

  • GENTILLY
FPGA VHDL MODELSIM JIRA C++ PYTHON MATLAB JAVASCRIPT REACT.JS HTML5
CV Consultant
Anis

Consultant

  • PARIS
JAVA C++ ANDROID VHDL C
CV Ingénieur intelligence artificielle
Anis

Ingénieur intelligence artificielle

  • AUBERVILLIERS
PYTHON C++ C Arduino XML GIT Github VHDL
CV Ingénieur système FPGA
Billal

Ingénieur système FPGA

  • MORSANG-SUR-ORGE
C++ LINUX RISC XILINX VIRTEX Electronique C FPGA VHDL ARM MATLAB
CV Ingénieur en développement VHDL / FPGA
Anas

Ingénieur en développement VHDL / FPGA

  • MONTIGNY-LE-BRETONNEUX
VHDL C C++ PYTHON FPGA OPENCV
CV Ingénieur de développement SYSTEMES EMBARQUES
Damien

Ingénieur de développement SYSTEMES EMBARQUES

  • CASTRES-GIRONDE
SYSTEMES EMBARQUES C RS232 TEMPS REEL BUS CAN USB ETHERNET ARM VHDL
CV Ingénieur d'études VHDL
Guillaume

Ingénieur d'études VHDL

  • CARQUEFOU
VHDL FPGA CAO