Developpez.com - Rubrique Hardware

Le Club des Développeurs et IT Pro

Xilinx propose Vitis pour faciliter la programmation de FPGA

Avec un compilateur C et des bibliothèques faciles à l'emploi

Le 2019-10-01 22:45:12, par dourouc05, Responsable Qt & Livres
Un FPGA n'est pas un processeur comme les autres à programmer : on ne travaille pas avec des instructions, mais directement avec des portes logiques. Ainsi, il faut utiliser d'autres technologies pour programmer un FPGA : avec le même code, cependant, on aura déjà fait un grand pas vers la conception complète d'un processeur. Le domaine dispose de deux langages principaux : Verilog et VHDL. Aucun des deux n'est vraiment très apprécié dans la communauté, surtout par les habitués des langages de programmation de plus haut niveau…


C'est pourquoi Xilinx développe un nouvel ensemble d'outils pour faciliter la programmation de FPGA, sous le nom de Vitis. Ces outils seront disponibles dès le 1er novembre, selon Xilinx, en supplément de Vivado. Vitis contient notamment des bibliothèques précodées, mais aussi un compilateur C et C++ (voire Python) en remplacement des outils VHDL/Verilog. La grande différence par rapport à Vivado est le prix : Vitis devrait être entièrement gratuit, contrairement à Vivado. De plus, Vitis est prévu pour être très facile à intégrer dans les environnements de développement existants.


Vitis est notamment prévu pour l'apprentissage profond, où le matériel avance très vite : le temps de concevoir une puce, de la faire fabriquer, de la déployer, il est probable qu'elle ne soit plus utile. Sur des FPGA, il est possible de reprogrammer très vite l'accélérateur et de toujours profiter des dernières avancées. Vitis permet, par exemple, de développer ses modèles avec TensorFlow ou PyTorch en Python, puis de les déployer sur FPGA pour les accélérer.


Vitis est aussi livré avec une série de bibliothèques déjà optimisées, très faciles à utiliser. Xilinx livre par exemple une implémentation de BLAS pour l'algèbre linéaire ou des algorithmes de vision par ordinateur.

En C, le code à compiler par Vitis doit être annoté pour indiquer les entrées et sorties de chaque fonction (qui sera traduite par un bloc) : chaque argument, la valeur de retour. Par exemple : #pragma HLS INTERFACE s_axilite port=in1 bundle=control.

Source : Xilinx

Voir aussi : tutoriels et bibliothèques sur GitHub.
  Discussion forum
2 commentaires
  • mith06
    Membre expérimenté
    D'abord catapult C, ensuite vivado HLS maintenant Vitis.


    Essayez donc de faire une interface avec un ADC ou un DAC avec ces outils...
  • florentw
    Membre à l'essai
    Envoyé par mith06
    D'abord catapult C, ensuite vivado HLS maintenant Vitis.


    Essayez donc de faire une interface avec un ADC ou un DAC avec ces outils...
    Vitis est prévu pour le développement sur une plateforme. Donc les interfaces sont déjà définies. Vitis ne prévoit pas de remplacer Vivado qui sera toujours la pour définir la plateforme. Une fois la plateforme créée (avec les interfaces pour les DAC/ADC) Vitis peut être utiliser pour le développement de l'application (au sens large du terme puisque Vitis ne genere pas uniquement le SW met peut créer (en utilisant HLS) ou utiliser (RTL ou HLS) des kernels dans la partie logique).