Guide de compilation

Les instructions détaillées de compilation se trouvent dans Construire Hazard3-Doom. Cette page relie ce processus aux prérequis, aux profils de cartes, à la référence des scripts et aux informations de timing utiles lors d’une recompilation ou d’un changement de cible.

Compilations normales des cartes

Pour une compilation normale, utilisez de préférence le wrapper complet de la carte cible. Ces wrappers maintiennent ensemble la conception FPGA, le moniteur, l’image Doom, l’horloge et le profil mémoire :

./scripts/build-ulx3s-85f-doom.sh
./scripts/build-ulx3s-12f-doom.sh
./scripts/build-ulx4m-ld-doom.sh

Consultez Construire Hazard3-Doom pour les configurations de cartes prises en charge, les reconstructions sélectives du moniteur et de l’image Doom, la préparation des sous-modules, les fichiers de sortie et les variables d’environnement propres à la compilation.

Versions des outils et reproductibilité

Les résultats de timing FPGA dépendent de plus que de l’arborescence source. Yosys, nextpnr, Project Trellis, les paramètres de routage et la seed choisie peuvent tous modifier le résultat. Vérifiez l’environnement avant de compiler :

./scripts/requirements-check.sh

Consultez Prérequis pour les outils requis sur la machine hôte. Les valeurs nextpnr propres à chaque carte sont définies dans scripts/build-ecp5-bitstream-common.sh et résumées directement à partir de ce fichier dans Profils de cartes.

Pour la version 0.2.0, .github/workflows/ulx4m-bootloader.yml épingle volontairement OSS CAD Suite sur 2026-09-14 au lieu de suivre la nightly la plus récente. Cet ensemble constitue la chaîne d’outils CAO connue comme bonne pour la CI du bootloader ULX4M de cette version. Une nightly ultérieure a révélé un problème de pilotes multiples dans l’utilisation existante de TRELLIS_IO ECP5 configuré uniquement en entrée. Le nettoyage RTL et la mise à jour délibérée de la version CAD sont reportés à 0.3.0 ; ne retirez ni n’avancez cet épinglage sans revalider la construction du bootloader.

Une seed qui a satisfait le timing avec une netlist ou une version d’outil ne garantit pas le timing avec une autre. Si le résultat de synthèse, la version des outils CAO, l’horloge ou la configuration de routage change, relancez la validation de timing appropriée avant d’utiliser le résultat pour une version publiée. Consultez Sweeps de timing et de seeds ECP5 pour le processus de sweep et de qualification.

Scripts de compilation et procédures avancées

Pour le catalogue complet des outils d’aide à la compilation, à la programmation, à la validation, au nettoyage et au timing, consultez Référence des scripts. Cette référence documente les wrappers complets des cartes ainsi que les outils de plus bas niveau pour le moniteur, le bitstream, l’image Doom et les sweeps de seeds.

Pour l’organisation du dépôt et la séparation entre le matériel Hazard3 et le logiciel propre à Hazard3-Doom, consultez Organisation des dépôts et propriété.