Qu'est-ce que NGC en FPGA ? Générateur de circuit natif expliqué
Qu'est-ce que NGC en FPGA ? Générateur de circuit natif expliqué
En développement FPGA (Field-Programmable Gate Array), NGC signifie Native Circuit Generator. C'est une chaîne d'outils propriétaire — notamment associée à Intel (ex-Altera) — qui traduit le code HDL (Verilog, VHDL) lisible par l'humain en une configuration hautement optimisée pour un FPGA cible.
Le flux NGC : du HDL au bitstream
- Synthèse HDL : Le code source est analysé et synthétisé en netlist — représentation logique des portes et bascules du design.
- Placement et routage : Le netlist est mappé sur les ressources physiques du FPGA (éléments logiques, blocs DSP, mémoire, interconnect). L'outil optimise pour timing, performance, utilisation ressources.
- Analyse timing : Analyse statique du timing vérifie que tous les chemins respectent les exigences de fréquence d'horloge. Violations déclenchent ré-optimisation.
- Génération fichier configuration : Un bitstream spécifique au device (ex: .sof, .pof, .rbf) est produit, contenant chaque bit de configuration du FPGA.
- Programmation FPGA : Le bitstream est chargé sur la puce via JTAG, Active Serial, ou autres modes de configuration, rendant le design fonctionnel en hardware.
Pourquoi utiliser le NGC propriétaire ?
- Optimisation architecture : Exploite la connaissance propriétaire du tissu FPGA, routage, blocs IP durs.
- Meilleure performance : Atteint souvent fréquences d'horloge plus hautes et latence plus basse que flux génériques.
- Efficacité ressources : Empaquetage plus intelligent réduit usage logique et consommation.
- Compilation plus rapide : Algorithmes optimisés et parallélisation raccourcissent temps de build.
- Flux rationalisé : GUI/CLI intégrés simplifient le pipeline design-vers-hardware.
Bien que des flux open-source comme Yosys+nextpnr existent, les outils NGC vendeurs restent la référence pour designs de production sur appareils Intel/Altera, Xilinx (Vivado), Lattice (Diamond/Radiant).
