Ce guide de démarrage vous apprend à programmer en Python sur la plate-forme SoC Xilinx Zynq Z7020 de Digilent Arty Z7-20.
 
 
Choses utilisées dans ce projet:

Eléments matériels
  

Platine PYNQ-Z1  Platine Digilent PYNQ-Z1

Platine Arty Z7-20  Platine Digilent Arty Z7-20

  

Python est un langage de programmation très puissant et flexible, permettant aux ingénieurs d'effectuer des analyses mathématiques complexes, de mettre en œuvre des solutions d'intelligence artificielle et de développer une gamme d'autres solutions d'ingénierie complexes. La possibilité d'utiliser Python sur un composant FPGA (Field Programmable Gate Array) a cependant été précédemment limitée. Avec la sortie du framework PYNQ , les développeurs Python ont pour la première fois pu exploiter les capacités et les performances fournies par la logique programmable. Les développeurs FPGA en ont également profité car ils ont pu intégrer les capacités de haut niveau de Python à leurs conceptions FPGA.
  
Voyons plus en détail comment nous pouvons y parvenir
  
Pour que l'image PYNQ soit opérationnelle sur la platine Digilent Arty Z7-20, nous devons (une fois que nous avons l'image) graver le fichier ISO sur une carte MicroSD™, idéalement cette carte devrait avoir au moins 8 Go. Pour graver l'image ISO sur une carte microSD™, nous utiliserons Win32 Disk Imager. 
  

 
Win32 Disk Imager 
  

Une fois que l'image est écrite sur la carte MicroSD™, il est temps d'insérer la carte dans la platine Arty Z7-20 (en s'assurant que le cavalier de configuration est configuré pour démarrer à partir de la carte microSD™), puis de connecter un câble Ethernet (à l'ordinateur) avant d'allumer la carte. L'Arty Z7-20 peut être alimentée à partir du port USB-JTAG-UART intégré (J14) ou à partir d'un autre type de source d'alimentation telle qu'une batterie ou une alimentation externe. Le cavalier JP5 (près de l'interrupteur d'alimentation) détermine la source d'alimentation utilisée.
Platine Arty Z7
Après quelques secondes, vous verrez le voyant Terminé s'allumer, indiquant que le Zynq de Xilinx a été configuré, suivi d'une activité sur les voyants Ethernet. Une fois la séquence de démarrage terminée et le framework PYNQ prêt. Les quatre LED et les deux LED RGB clignotent plusieurs fois avant de laisser les quatre LED allumées.
 
 

Détail des leds de la platine Arty Z7
 
                          Les leds Terminé, Ethernet ainsi que les 4 leds au dessus des boutons sont allumés
  
   
 
 
Nous sommes maintenant prêts à exploiter Python sur la platine Arty Z7-20, nous le faisons en utilisant le bloc-note Jupyter fonctionnant sur l'Arty Z7-20. Pour se connecter à l' Arty Z7-20 et à son bloc-note Jupyter, nous devons ouvrir un navigateur sur le même réseau que l'Arty Z7-20, en entrant l'adresse Pynq: 9090, cela ouvrira la page initiale comme indiqué ci-dessous. C'est à partir d'ici que nous pouvons développer nos applications basées sur Python.
   

 
Jupyter 
 
 

Une fois sur la page de destination, ouvrez le répertoire getting_started et lisez les informations sur le bloc-note Jupyter, les environnements Python et les fonctionnalités avancées de Python. Ceux-ci fourniront une excellente introduction sur la façon de commencer à utiliser l'environnement de développement.
 
Alors que l'image Linux avec son bloc-note Jupyter et Python s'exécutent sur les cœurs du processeur du Zynq, la logique programmable est utilisée pour fournir plusieurs interfaces et superpositions logiques programmables. Ces superpositions peuvent être chargées et utilisées à partir de l'environnement Jupyter pendant l'exécution de votre script Python. L'image PYNQ est livrée avec une superposition de base qui prend en charge toutes les entrées et sorties (IO) sur l'Arty Z7-20.


Schéma fonctionnel du PYNQ
                                                                           Schéma fonctionnel du PYNQ


Bien sûr, il est possible de développer des superpositions personnalisées. Ces superpositions personnalisées sont développées à l'aide d'un flux traditionnel de Vivado Design Suite comprenant un SDK et une synthèse de haut niveau utilisant Vivado HLS ou SDSoC Development Environment. Pour permettre l'intégration au sein de l'environnement Python, les pilotes logiciels (SW) pour la logique programmable (PL) sont exploités à l'aide de l'interface de fonction C de Python.
 
Le développement de ses propres superpositions permet aux utilisateurs d'accélérer les applications, mais avant de consacrer du temps au développement de leurs propres superpositions, les utilisateurs doivent revoir les offres de la communauté PYNQ. Comme au sein de la communauté PYNQ, il existe plusieurs superpositions et scripts Jupyter disponibles dans la communauté PYNQ étendue que les utilisateurs peuvent exploiter lorsqu'ils développent leurs propres applications.


Crédits: Adam Taylor.

@Digilent Inc - 2020

Traduction du projet : https://projects.digilentinc.com/90432/programming-python-on-zynq-fpga-ec4712

 
Promo Digilent

Produit ajouté à ma liste