Compilation, rapports et programmation¶
Simulation comportementale¶
Avant la synthèse :
- analyser toutes les sources ;
- élaborer le bon sommet de banc de test ;
- exécuter jusqu'à
finishou jusqu'au gardien temporel ; - exiger la réussite de toutes les assertions.
Les chronogrammes servent au diagnostic, pas au verdict principal.
RTL élaboré¶
Dans RTL Analysis → Open Elaborated Design, examinez :
- la hiérarchie ;
- les directions et largeurs ;
- les latches ou boucles combinatoires inattendus ;
- les signaux constants ou non reliés ;
- les valeurs des paramètres.
Synthèse¶
La synthèse traduit le RTL en primitives du composant.
Contrôlez :
- messages et avertissements ;
- latches ;
- RAM, DSP et registres à décalage inférés ;
- logique supprimée ou constante ;
- signaux à grand fanout ;
- utilisation des ressources.
Un calcul sans effet observable peut être entièrement supprimé, même si son code paraît correct.
Implémentation¶
Elle comprend principalement :
- Optimisation.
- Placement.
- Routage.
- Optimisation physique éventuelle.
- Analyses DRC et temporelles.
Le délai de routage domine souvent le délai des portes. Un petit chemin logique peut échouer à cause du placement ou du fanout.
Validation temporelle¶
Dans le résumé après implémentation :
- toutes les horloges ont la bonne période ;
- le WNS setup est positif ou nul ;
- le slack hold est positif ou nul ;
- les largeurs d'impulsion sont valides ;
- aucun point pertinent n'est non contraint ;
- les chemins inter-domaines correspondent à l'architecture CDC.
Ne vous fiez pas uniquement à la coche verte de l'implémentation.
Générer et programmer¶
Les DRC peuvent bloquer le bitstream : broches manquantes, standards I/O absents, pilotes multiples, horloges non contraintes ou routage d'horloge dangereux.
Pour JTAG :
- Ouvrir Hardware Manager.
- Open Target → Auto Connect.
- Sélectionner le FPGA.
- Program Device.
- Choisir le bitstream actuel.
Si la carte n'apparaît pas, vérifier alimentation, câble USB de données, pilotes Windows et absence d'un autre programme utilisant JTAG.
Flux Tcl reproductible¶
read_vhdl -vhdl2008 ../src/top.vhd
read_xdc ../constraints/basys3.xdc
synth_design -top top -part xc7a35tcpg236-1
opt_design
place_design
route_design
report_timing_summary -file timing_summary.rpt
report_utilization -file utilization.rpt
write_bitstream -force top.bit
Un vrai script doit s'arrêter sur erreur et vérifier explicitement les exigences de timing et de DRC.
Preuves à conserver¶
- Sources ou commit exact.
- Composant et version Vivado.
- XDC.
- Journaux de tests et graines aléatoires.
- Résumé temporel.
- Rapport d'utilisation.
- Rapport DRC.
- Bitstream si nécessaire.
Les caches de projet sont moins utiles que les sources et scripts capables de les recréer.
Définition de « terminé »¶
- Simulations automatisées réussies.
- Aucun avertissement inexpliqué.
- Ressources inférées comme prévu.
- Aucun latch ou pilote multiple involontaire.
- DRC réussi.
- Contraintes temporelles complètes.
- Timing d'implémentation respecté.
- Test matériel de cohérence réussi.