01signal.com

Le test « Hello, world » avec Xillybus sous Microsoft Windows

Le test « Hello, world » de Xillybus

Ceci est la troisième étape pour démarrer avec Xillybus : le bitstream contenant Xillybus a déjà été chargé dans le FPGA, et le pilote est installé sur l’hôte. Il est maintenant temps de faire un test simple. Le but de ce test est de vérifier que les fichiers de périphérique ont bien été créés et qu’ils fonctionnent.

Cette page traite de Xillybus sur un hôte Windows. Il existe une page similaire pour Linux.

Je vais me concentrer ici sur Xillybus avec PCIe, mais tout se passe presque de la même manière avec XillyUSB. Les différences sont indiquées en bas de cette page.

Pour plus d’informations à ce sujet, consultez le document « Prise en main de Xillybus sur un hôte Windows ».

Le périphérique PCIe est-il détecté ?

Le Gestionnaire de périphériques (Device Manager) affiche les périphériques PCIe détectés. Cela a été expliqué précédemment dans le cadre de l’installation du pilote.

Avant l’installation du pilote, le périphérique de Xillybus apparaissait dans la liste « Autres périphériques ». Après l’installation, ce périphérique apparaît dans un groupe appelé « Xillybus ». Si le Gestionnaire de périphériques n’affiche ni l’une ni l’autre de ces deux options, c’est que le FPGA n’est pas détecté comme périphérique PCIe : il y a probablement un problème avec le FPGA. La raison est souvent une confusion sur le bitstream chargé dans le FPGA.

Des captures d’écran et une explication plus détaillée sur ce sujet figurent dans le guide Prise en main pour Windows.

Le pilote a-t-il démarré correctement ?

L’étape suivante consiste à vérifier l’état du pilote. Pour cela, ouvrez le Gestionnaire de périphériques : cliquez avec le bouton droit sur l’icône du groupe Xillybus (le nom du périphérique est « Xillybus driver for generic FPGA interface »). Choisissez « Propriétés ». Une fenêtre contextuelle apparaît. Cherchez la zone de texte intitulée « État du périphérique ». Le texte qui y figure doit être « Ce périphérique fonctionne correctement ». Cela signifie que le pilote a initialisé Xillybus avec succès et créé les fichiers de périphérique nécessaires.

Si le texte indique autre chose, un problème est survenu lors de l’initialisation du pilote. Cela provient en général d’un problème dans la logique du FPGA. Cela arrive notamment lorsque le bloc PCIe du FPGA est configuré de manière incorrecte. Par exemple, si vous avez modifié les paramètres du bloc PCIe dans le pack de démonstration (demo bundle), cela peut provoquer ce genre d’erreurs.

Vous trouverez plus d’informations sur le problème dans l’Observateur d’événements (Event Viewer) de Windows. Pour filtrer les messages du pilote de Xillybus : créez une vue personnalisée qui affiche les messages provenant de la source appelée « Xillybus ». La marche à suivre est expliquée en détail dans le guide Prise en main pour Windows.

« Hello, world »

Le pilote crée cinq fichiers de périphérique : \\.\xillybus_read_8, \\.\xillybus_read_32, \\.\xillybus_write_8, \\.\xillybus_write_32 et \\.\xillybus_mem_8. Notez que si vous créez un cœur IP personnalisé (custom IP core) sur l’IP Core Factory, vous pouvez choisir le nombre de fichiers de périphérique créés, ainsi que leurs noms et leurs propriétés.

Mais pour l’instant, le FPGA contient le pack de démonstration. Essayons donc deux de ces fichiers de périphérique. Ces fichiers de périphérique sont en réalité des objets du système d’exploitation, mais on peut y accéder comme à des fichiers ordinaires. La partie « \\.\ » peut paraître étrange à ceux qui ne connaissent pas la programmation de bas niveau sous Windows. C’est pourtant ainsi que les logiciels de l’espace utilisateur (souvent des DLL) accèdent habituellement au matériel.

Il y a une boucle de retour (loopback) dans le pack de démonstration entre read_8 et write_8. Cela signifie que lorsque l’ordinateur écrit des données vers write_8, le FPGA renvoie exactement les mêmes données par l’intermédiaire de read_8. Cela ne sert que de démonstration. Cette boucle n’a aucune autre utilité pratique.

Voici le test : ouvrez deux fenêtres d’invite de commandes sur votre ordinateur. Dans ces deux fenêtres, placez-vous dans le répertoire « precompiled-demoapps ». Ce répertoire se trouve dans le répertoire « xillybus-windowspack ». Rappelez-vous que je vous avais suggéré de télécharger xillybus-windowspack.zip en même temps que le pack de démonstration.

Tapez ceci dans la première fenêtre d’invite de commandes :

$ streamread \\.\xillybus_read_8

Tapez ensuite ceci dans la deuxième fenêtre d’invite de commandes :

$ streamwrite \\.\xillybus_write_8

Tapez maintenant n’importe quoi dans la deuxième fenêtre d’invite de commandes et appuyez sur Entrée. Le même texte apparaîtra dans la première fenêtre d’invite de commandes. Cela montre comment le texte a été écrit dans le premier fichier de périphérique, a atteint le FPGA, puis est revenu vers l’ordinateur.

Vous pouvez arrêter ces deux programmes avec CTRL-C.

Le code source de ces programmes se trouve dans le sous-répertoire demoapps (dans le même fichier zip). Ces programmes sont écrits en C et montrent comment accéder aux fichiers de périphérique de Xillybus avec une API d’entrées-sorties standard. Le guide Prise en main pour Windows explique comment compiler ces programmes.

Même si cet exemple est simple, il est important de comprendre comment il fonctionne. En particulier, il est important de comprendre comment la logique du FPGA a rendu cela possible. C’est le point de départ pour intégrer votre propre logique.

XillyUSB

Si vous utilisez XillyUSB, tout ce qui a été dit ci-dessus s’applique, mais avec quelques différences.

XillyUSB dispose d’un outil appelé showdiagnostics qui permet d’examiner la qualité de la connexion physique avec le FPGA. Il est vivement recommandé d’utiliser cet outil afin de vous assurer que la liaison de données brute est exempte d’erreurs. Même si XillyUSB semble fonctionner parfaitement, il est important de procéder à cette vérification. En effet, le protocole USB 3.0 masque les erreurs de la liaison de données brute, mais ces erreurs peuvent quand même provoquer de rares problèmes qui ressemblent à un bug.

Il n’y a aucune raison de tolérer ce genre d’erreurs. La solution est souvent simple, par exemple utiliser un autre port USB de l’ordinateur.

Autres différences :

Cette page a été traduite de l’anglais par une machine. En cas de doute, veuillez vous reporter au texte original
Copyright © 2021-2026. All rights reserved. (dcc38493)