Exécution de Xilinx ISE sur un Mac M1

illustrations illustrations illustrations illustrations illustrations illustrations illustrations
post-thumb

Publié le 18 août 2022 par Andrew Owen (5 minutes)

En mars 2022, j’ai écrit un article sur la façon d’exécuter Xilinx Vivado sur un Mac M1 pour générer des cœurs pour la série de FPGA Artix-7 (tels qu’ils sont utilisés sur le Mega 65). La solution la plus simple consiste à exécuter les binaires Intel sur ARM Windows sous Parallels Desktop. Mais il est également possible d’utiliser les binaires Linux avec UTM.

L’UTM est idéal pour faire fonctionner d’autres systèmes d’exploitation ARM (comme Ubuntu). Mais l’émulation des instructions Intel 64 bits est lente. Toutefois, dans le prochain macOS 13, les applications tierces comme UTM pourront tirer parti de la traduction juste à temps (JIT) de Rosetta pour les instructions Intel 64 bits. UTM devrait devenir beaucoup plus rapide.

J’ai donc décidé de réexaminer le problème de l’utilisation de l’ancien outil ISE de Xilinx pour générer des cœurs pour le Spartan-6 (tel qu’utilisé sur le ZX-Uno). Publié à l’origine en 1995, le logiciel n’a pas été mis à jour depuis 2013. Même sous Windows 10, Xilnix fournit un environnement Linux émulé pour exécuter le logiciel.

Au départ, j’avais essayé de le faire fonctionner sous Debian 11, mais cette version était souvent bloquée. L’astuce est que vous avez besoin de quelque chose d’assez vieux pour fonctionner de manière fiable avec ISE, mais d’assez récent pour supporter les ajouts d’invités UTM (pour les dossiers partagés). Le passionné de ZX-Uno Microjack m’a informé qu’il avait réussi à faire fonctionner ISE de manière fiable sur Linux Mint 20.1 Cinnamon.

Mais Cinnamon repose sur l’utilisation d’un GPU pour faire le gros du travail dans l’interface graphique. C’était anormalement lent. Heureusement, il existe une distro Xfce, dont les exigences matérielles sont bien moindres. Après avoir joué avec différents paramètres, j’ai été surpris de constater que cela fonctionnait et que j’étais capable de générer un binaire qui se comportait comme prévu sur du vrai matériel. Voici comment procéder.

  1. Installez UTM. J’utilise la version 3.2.4 (58).
  2. Télécharger l’image ISO de Linux Mint 20.1 Xfce.
  3. Dans UTM, sélectionnez File > New > Emulate > Linux > Browse et naviguez jusqu’à l’image ISO que vous avez téléchargée.
  4. Dans le volet Hardware, réglez la Memory sur la moitié de votre RAM disponible (dans mon cas, 8192 Mo). Assurez-vous que les valeurs par défaut sont définies pour l’Architecture (x86_64) et le System (PC standard), puis cliquez sur Continue.
  5. Dans le volet Storage, définissez la Size à 40 Go et cliquez sur Continue.
  6. Dans le volet Shared Directory, sélectionnez votre dossier Downloads et cliquez sur Continue.
  7. Démarrez la machine et sélectionnez Start Linux Mint 20 Xfce 64-bit (compatibility mode). Suivez les invites à l’écran pour installer le système d’exploitation en utilisant les paramètres par défaut. Vous pouvez activer la connexion automatique lorsque vous y êtes invité. Il se peut que vous deviez forcer un redémarrage selon que vous pouvez ou non éjecter l’image ISO.
  8. Démarrez la machine virtuelle. Depuis le Terminal, entrez: sudo apt install spice-vdagent spice-webdavd libncurses5. Redémarrez maintenant la machine virtuelle.
  9. Sur macOS, téléchargez Xilinx ISE 14.7 for Linux.
  10. Sous Linux, ouvrez le GFile Manager et double-cliquez sur rowse Network, puis double-cliquez sur Spice client folder. Si l’on vous demande de choisir une application, vous pouvez rejeter la fenêtre contextuelle.
  11. Copiez Xilinx_ISE_DS_Lin_14.7_1015_1.tar depuis le Mac vers votre dossier Documents sous Linux. Extrayez ensuite le contenu.
  12. Sous Linux, à partir du Terminal, naviguez jusqu’au dossier où le fichier tar a été extrait et entrez chmod +x ./xsetup, puis entrez sudo ./xsetup et suivez les instructions à l’écran. Cochez les cases relatives aux licences et assurez-vous de choisir la version du WebPack ISE. Pour tout le reste, vous pouvez utiliser les valeurs par défaut.
  13. Le programme d’installation vous indique l’espace disque restant. Avant de continuer, supprimez le fichier tar que vous avez copié du Mac vers la VM.
  14. Sous Linux, à partir du Terminal, naviguez vers /opt/Xilinx/14.7/ISE_DS/. Entrez sudo chmod +x settings64.sh.

Pour lancer le logiciel, naviguez vers /opt/Xilinx/14.7/ISE_DS/ et entrez:

source settings64.sh`  
./settings64.sh`  
ise`

Vous voudrez probablement en faire un script.

La première fois que vous lancez le logiciel, il vous sera demandé de fournir une licence. J’ai trouvé que la façon la plus simple de le faire était de me connecter à mon compte Xilinx sur le Mac, de télécharger une licence WebPack ISE gratuite, et de la copier sur la VM Linux.

Une fois que vous avez vérifié que le logiciel a été correctement installé, vous pouvez supprimer le dossier Xilinx_ISE_DS_Lin_14.7_1015_1 et son contenu.

Lorsque vous avez terminé, vous pouvez arrêter la VM Linux. Si vous avez au moins 40 Go d’espace libre sur le disque dur de votre Mac, vous pouvez réduire la taille de votre image VM. Dans UTM, allez dans Settings > Drives et sélectionnez le grand IDE Drive (étiqueté disk-0.qcow2). Cliquez ensuite sur Reclaim space, puis sur Reclaim and Compress. Cela prendra un certain temps, mais vous devriez récupérer environ 20 Go d’espace.

Il arrive que le dossier partagé cesse de fonctionner sans raison apparente. J’ai constaté que la meilleure façon de résoudre ce problème est d’arrêter la VM, de supprimer le Shared Directory dans les paramètres en cliquant sur Clear, puis de le réintroduire. Si cela ne fonctionne pas, vous devrez peut-être redémarrer macOS. Mais si cela ne fonctionne toujours pas, il y a une autre option:

sudo apt-get install davfs2
sudo mkdir /mnt/dav
sudo mount -t davfs -o noexec https://nextcloud.example.com/remote.php/webdav/ /mnt/dav/

Lorsque l’on vous demande un nom d’utilisateur et un mot de passe, appuyez simplement sur Enter.

Et c’est tout. C’est un peu lent pour le moment, mais quand j’aurai macOS 13, je mettrai à jour cet article si je constate une amélioration majeure de la vitesse sous Rosetta.