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é.