Démarrage sans installation - ULX3S

Le moyen le plus rapide d’essayer Hazard3-Doom sur une ULX3S 85F consiste à utiliser les fichiers précompilés du projet et le Device Tool dans le navigateur. Cette méthode ne nécessite ni clonage du dépôt, ni Yosys, ni nextpnr, ni compilateur RISC-V, ni scripts Python d’upload, ni OpenOCD, ni GDB.

Cette page programme temporairement le FPGA, charge Doom en SDRAM et le démarre. La procédure ne modifie pas la flash SPI de l’ULX3S : l’image FPGA est donc perdue à la mise hors tension.

Note

Ce chemin uniquement dans le navigateur est l’exception à l’exigence WSL du projet : WSL n’est pas requis pour utiliser sous Windows l’image ULX3S précompilée. Un navigateur récent basé sur Chromium, comme Chrome ou Edge, est requis. Le FT231X du port US1 de l’ULX3S peut devoir utiliser le pilote WinUSB avant que WebUSB puisse y accéder. Si vous construisez ou modifiez ensuite le projet depuis les sources sous Windows, utilisez WSL/Ubuntu. Voir Flasher FPGA WebUSB.

Matériel et fichiers nécessaires

  • une carte ULX3S 85F ;

  • un écran HDMI ;

  • la connexion USB US1 de l’ULX3S pour la programmation WebUSB du FPGA ;

  • un adaptateur USB-vers-UART externe connecté à l’UART Hazard3-Doom ;

  • les fichiers précompilés .bit et .h3img correspondant à la carte ;

  • un IWAD Doom obtenu légalement, par exemple DOOM.WAD ou DOOM1.WAD.

Pour une installation matérielle compacte, le panneau HDMI Elecrow de sept pouces est un exemple documenté avec un boîtier ULX3S optionnel imprimable en 3D. Le boîtier est spécifique à ce panneau, mais Hazard3-Doom ne l’est pas ; un autre écran HDMI peut être utilisé s’il accepte la temporisation vidéo générée. Voir Vidéo, micro-SD et stockage d’exécution pour les détails.

Voir Brochages des cartes et câblage pour les connexions UART et Outil Web pour les périphériques pour la référence complète du Device Tool.

1. Télécharger les fichiers précompilés

Le répertoire bin/ du dépôt est la source recommandée pour les images précompilées publiées par le projet :

Parcourir le répertoire bin de Hazard3-Doom

Utilisez bin/INVENTORY.md et l’inventaire des sommes de contrôle associé pour identifier les fichiers publiés et leur rôle :

Voir bin/INVENTORY.md

Sélectionnez la paire correspondant au FPGA de la carte :

Carte

Image FPGA

Image Doom H3IMG

ULX3S 85F

fpga_ulx3s_85f.bit

hazard3-doom-ulx3s-85F.h3img (à renommer DOOM.IMG pour l’utilisation sur carte SD)

ULX3S 12F

fpga_ulx3s_12f.bit

hazard3-doom-ulx3s-12F.h3img (à renommer DOOM.IMG pour l’utilisation sur carte SD)

Ne mélangez pas des fichiers provenant de profils de carte différents. Le flasher du navigateur sonde l’identifiant JTAG ECP5 physique et refuse un fichier .bit dont la cible intégrée ne correspond pas au FPGA détecté.

Répertoire bin de Hazard3-Doom sur GitHub montrant les fichiers précompilés ULX3S.

Fichiers précompilés ULX3S publiés dans le répertoire bin/ du dépôt, avec INVENTORY.md pour l’identification et la vérification.

Builds récents de GitHub Actions

Le workflow GitHub Actions Board integration builds fournit également les sorties des builds récents réussis :

Ouvrir Board integration builds

Ouvrez une exécution réussie et téléchargez l’artifact correspondant exactement au profil de carte voulu. Ces artifacts conviennent aux tests d’un build CI récent, mais ne constituent pas un emplacement de téléchargement permanent : ils ont une durée de rétention et disparaissent lorsque l’exécution ou l’artifact expire ou est supprimé. Les fichiers publiés dans bin/ sont donc le choix le plus simple pour un premier essai.

Page GitHub Actions Board integration builds affichant les artefacts téléchargeables ULX3S.

Le workflow Board integration builds peut aussi fournir des artefacts ULX3S récents pour les essais.

2. Ouvrir le Device Tool

Ouvrez l’application hébergée :

Hazard3-Doom Device Tool

Pour cette méthode sans installation, toutes les opérations nécessaires sont réalisées directement dans le navigateur. web-server.py, OpenOCD et GDB ne sont pas requis ; ils servent uniquement au workflow facultatif de chargement et de débogage du firmware console ELF.

3. Programmer la SRAM du FPGA

Connectez le port USB US1 de l’ULX3S, puis dans le Device Tool :

  1. Développez Device uploading.

  2. Développez FPGA web flasher.

  3. Sélectionnez le fichier .bit correspondant.

  4. Choisissez Connect ULX3S USB et sélectionnez le périphérique FTDI ULX3S.

  5. Choisissez Probe JTAG et vérifiez le FPGA détecté.

  6. Choisissez Program FPGA SRAM.

  7. Attendez que le journal indique la réussite de la programmation.

La configuration FPGA est volatile. Un cycle d’alimentation restaure la configuration persistante normale de la carte.

Programmateur FPGA WebUSB de Hazard3-Doom avec un bitstream ULX3S sélectionné et le FPGA détecté.

Le programmateur FPGA du navigateur après la sonde JTAG et la sélection du fichier .bit ULX3S approprié.

4. Connecter l’UART

Hazard3-Doom utilise le connecteur GPIO J1 de l ULX3S pour son UART externe. Utilisez un adaptateur USB-vers-UART 3,3 V et croisez TX/RX :

USB-UART TXD  ->  J1 pin 6  / GP0 / B11 -> Hazard3 uart_rx
USB-UART RXD  <-  J1 pin 8  / GP1 / A10 <- Hazard3 uart_tx
USB-UART GND  ->  ULX3S GND
USB-UART VCC  ->  non connecté
Brochage ULX3S mettant en évidence l UART Hazard3-Doom sur GP0 et GP1 de J1.

UART Hazard3-Doom sur ULX3S – GP0 est l entrée de réception du FPGA et GP1 est la sortie de transmission du FPGA.

Développez Serial connection et connectez-vous avec les paramètres Hazard3-Doom habituels :

115200 baud
8 data bits
no parity
1 stop bit
no flow control

Le moniteur résident est déjà intégré à l image FPGA Hazard3-Doom normale de l ULX3S 85F. Un démarrage réussi affiche la bannière du moniteur puis l invite >. Il n est pas nécessaire de charger hazard3-boot-monitor.elf pour cette procédure.

Si aucune invite n apparaît, voir Dépannage et Console Web Serial et capture d’écran HDMI avant de continuer.

5. Charger l’image Doom H3IMG

Sous Device uploading, développez Doom H3IMG uploader :

  1. Sélectionnez le fichier hazard3-doom-*.h3img correspondant.

  2. Choisissez Upload H3IMG.

  3. Attendez que le moniteur accepte l’image.

Conservez toujours l’image H3IMG du même profil de carte que le fichier .bit.

Outil d'upload H3IMG de Hazard3-Doom avec une image Doom spécifique à la carte sélectionnée.

Envoi de l’image hazard3-doom-*.h3img correspondant à la carte via le Device Tool.

6. Charger votre IWAD Doom

Développez Doom IWAD uploader et sélectionnez votre fichier .wad obtenu légalement. Choisissez le profil mémoire correspondant au moniteur résident :

Carte

Profil mémoire

ULX3S 85F

64m

ULX3S 12F

32m

Choisissez Upload IWAD. Pour lancer Doom automatiquement après le transfert, activez Launch with ``j`` after upload avant de démarrer l’upload.

Le projet ne distribue pas l’IWAD commercial de Doom. Vous devez fournir votre propre IWAD obtenu légalement.

Outil d'upload IWAD de Hazard3-Doom avec un fichier WAD sélectionné et le lancement automatique activé.

Envoi d’un IWAD Doom avec le profil mémoire du moniteur approprié et le lancement automatique optionnel activé.

7. Vérifier le démarrage de Doom

Un upload et un lancement corrects produisent des messages similaires à :

H3L READY
H3L DATA
H3L OK
H3W READY
H3W DATA
H3W OK
Doom SDRAM image startup
monitor ABI: PASS
Doom interactive HDMI loop: READY

Doom doit maintenant être visible en HDMI et le terminal du navigateur peut rester connecté pour les commandes du moniteur et les diagnostics.

Doom en cours d'exécution sur un écran HDMI ULX3S alors que l'outil navigateur reste connecté.

Doom en cours d’exécution après une programmation FPGA réussie et les uploads H3IMG et IWAD.

Ce que cette méthode n’installe pas

Cette procédure évite volontairement l’environnement de développement. Elle n’installe et ne nécessite pas Yosys, nextpnr, Project Trellis, une chaîne GCC RISC-V, le checkout Hazard3-Doom et ses submodules, les scripts d’upload en ligne de commande, ni OpenOCD/GDB pour le chemin normal moniteur/H3IMG/IWAD.

Pour reconstruire ou modifier le FPGA, le firmware du moniteur ou l’image Doom, continuez avec Démarrage rapide depuis les sources et Construire Hazard3-Doom.

ULX3S 12F

L’ULX3S 12F utilise un démarrage compact en deux étapes, car le moniteur complet ne tient pas dans la petite mémoire de démarrage interne disponible sur le 12F. Son image FPGA contient un bootstrap UART de 1 Kio qui confirme que le FPGA fonctionne ; le moniteur complet est ensuite chargé en SDRAM externe.

Après avoir programmé fpga_ulx3s_12f.bit ou l’image 12F précompilée correspondante, connectez l’UART à 115200 bauds. Le bootstrap affiche une courte bannière et demande d’exécuter:

./scripts/load-firmware-12f.sh

Cet outil démarre ou réutilise OpenOCD, charge en SDRAM l’ELF du moniteur propre à la carte, le vérifie et le démarre. Le chemin 12F nécessite donc un checkout local de Hazard3-Doom avec les outils OpenOCD/GDB fournis ou installés ; il ne fait pas partie du chemin entièrement basé sur le navigateur ci-dessus. Voir Démarrage rapide depuis les sources, Construire Hazard3-Doom et Débogage JTAG.

ULX4M-LD

Les images précompilées ULX4M-LD évitent également un build FPGA local, mais la méthode de programmation actuelle utilise encore des outils DFU sur l’hôte. Elle n’est donc pas équivalente à la méthode ULX3S entièrement basée sur le navigateur décrite ici. Voir Programmation et démarrage persistant.

Documentation associée