Vivado et les autres logiciels FPGA
Tour d'horizon des outils de développement FPGA propriétaires et open-source : Vivado, Quartus Prime, Libero SoC et les alternatives open-source.
Vivado et les autres logiciels FPGA
Écrire du VHDL, c'est une chose. Le transformer en circuit physique en est une autre : il faut un logiciel de synthèse et d'implémentation adapté à la famille de FPGA ciblée. Chaque constructeur impose son propre outil, et leurs différences sont significatives.
Vue d'ensemble
| Outil | Éditeur | Famille de FPGA |
|---|---|---|
| Vivado | AMD (ex-Xilinx) | 7-Series, UltraScale, UltraScale+, Zynq, Versal |
| ISE | AMD (ex-Xilinx) | Spartan-3/6, Virtex-4/5/6 (fin de vie) |
| Quartus Prime | Intel (ex-Altera) | Cyclone, Arria, Stratix, Agilex |
| Libero SoC | Microchip (ex-Microsemi) | PolarFire, IGLOO2, SmartFusion2 |
| iCEcube2 / Diamond | Lattice | iCE40, ECP5, MachXO |
| Radiant | Lattice | Certus, CrossLink-NX |
Vivado (AMD / Xilinx)
Vivado est l'outil de référence de ce cours car les FPGA Xilinx (7-Series, Zynq) sont omniprésents dans l'industrie et la formation.
Points forts
- Block Design : assemblage graphique d'IPs (ZYNQ PS, AXI Interconnect, DMA…) par glisser-déposer
- Timing Analysis (STA) intégrée avec rapports WNS/WHS détaillés
- IP Catalog très fourni (FFT, FIR, Ethernet, PCIe, DDR…)
- Simulation : intègre le simulateur Vivado Simulator (XSIM), compatible VHDL-2008
- ILA (Integrated Logic Analyzer) : debug in-situ sans instrument externe
- Tcl : toute l'interface graphique est scriptable
Licences
Vivado ML Edition — Standard → gratuit, limité aux petits FPGA (Artix-7, Spartan-7)
Vivado ML Edition — Enterprise → payant, tous les devices, fonctions avancées (partial reconfiguration…)La version gratuite suffit pour la quasi-totalité des projets de ce cours (Nexys A7, Basys 3, PYNQ-Z2).
Workflow typique
Code VHDL → Synthèse → Implémentation → Bitstream → Programmation FPGA
↓ ↓
Elaboration Place & Route
(RTL → netlist) (timing closure)Quartus Prime (Intel / Altera)
L'équivalent Intel de Vivado. Très utilisé dans l'industrie télécom et militaire.
Points forts
- Platform Designer (ex-Qsys) : équivalent du Block Design pour les IPs Altera (Avalon bus)
- TimeQuest : outil STA réputé pour sa précision
- SignalTap II : analyseur logique in-situ (équivalent de l'ILA Xilinx)
- Interface Tcl également disponible
Licences
Quartus Prime Lite → gratuit, Cyclone IV/V/10, MAX 10
Quartus Prime Standard → payant
Quartus Prime Pro → payant, Agilex, Stratix 10Différences notables avec Vivado
| Aspect | Vivado | Quartus |
|---|---|---|
| Bus d'IP | AXI4 | Avalon |
| Simulateur intégré | XSIM | ModelSim-Intel (gratuit limité) |
| Syntaxe constraints | XDC (Tcl-based) | SDC (Synopsys Design Constraints) |
| Rapports timing | WNS / WHS / TNS | Slack, Fmax |
Le format de contraintes SDC est partagé par Quartus, Libero et les outils open-source — c'est en réalité le standard industriel. Vivado utilise le format XDC, qui est une extension du SDC.
Libero SoC (Microchip / Microsemi)
Outil dédié aux FPGA Microsemi, peu répandus en formation mais très utilisés dans les domaines aéronautique, spatial et défense (tolérance aux radiations, fiabilité).
Points forts
- SmartDesign : assemblage graphique similaire au Block Design
- STA robuste, certifié DO-254 (aéronautique)
- Support des technologies Flash FPGA (non-volatile, démarrage instantané)
Licence
Gratuit pour les petits devices (IGLOO2, SmartFusion2 jusqu'à une certaine taille).
Outils open-source
Une chaîne de développement entièrement libre existe, principalement pour les FPGA Lattice (iCE40, ECP5) :
VHDL → GHDL (synthèse) → Yosys (netlist) → nextpnr (place & route) → Bitstream| Outil | Rôle |
|---|---|
| GHDL | Simulation et synthèse VHDL |
| Yosys | Synthèse logique (netlist) |
| nextpnr | Place & Route |
| openFPGALoader | Programmation du FPGA |
Avantages / Limites
Avantages :
- Entièrement gratuit, reproductible, scriptable CI/CD
- Idéal pour les projets maker (iCEBreaker, OrangeCrab…)
Limites :
- Support VHDL-2008 partiel dans GHDL (Yosys bridge encore en développement)
- Pas de support pour les gros FPGA Xilinx/Intel
- Pas d'IP catalog, pas de Block Design
Ce qui change d'un outil à l'autre
Contraintes de timing
La syntaxe des fichiers de contraintes diffère :
# Vivado (.xdc)
create_clock -period 10.000 -name sys_clk [get_ports i_clk]
set_input_delay -clock sys_clk 2.0 [get_ports i_data]# Quartus / Libero / nextpnr (.sdc)
create_clock -period 10.000 [get_ports i_clk]
set_input_delay -clock { i_clk } 2.0 [get_ports i_data]Attributs spécifiques au constructeur
Certains attributs VHDL sont propres à un outil et ignorés (ou refusés) par les autres :
-- Xilinx/Vivado uniquement
attribute ASYNC_REG : string;
attribute ASYNC_REG of r_sync1 : signal is "TRUE";
attribute KEEP : string;
attribute KEEP of r_sig : signal is "TRUE"; -- empêche l'optimisation
-- Intel/Quartus uniquement
attribute preserve : boolean;
attribute preserve of r_sig : signal is true;Ces attributs sont ignorés lors d'une simulation GHDL — ils n'ont de sens que pour le synthétiseur cible.
Primitives instanciées directement
Chaque constructeur expose des primitives bas niveau non portables :
-- Xilinx : BUFG, IBUF, OBUF, RAMB36E2, DSP48E2...
BUFG_inst : BUFG port map (O => clk_buf, I => clk_in);
-- Intel : ALTPLL, altera_std_synchronizer, ALTDPRAM...
-- Microchip : GL (global buffer), MSS (hard ARM core)...Dès que du code instancie des primitives, il n'est plus portable entre constructeurs.
Lequel choisir ?
Tu as un FPGA Xilinx/AMD ? → Vivado (ce cours)
Tu as un FPGA Intel/Altera ? → Quartus Prime
Tu as un FPGA Microchip/Microsemi ? → Libero SoC
Tu as un iCE40 ou ECP5 ? → nextpnr + Yosys (ou iCEcube2)
Tu veux juste simuler ton VHDL ? → GHDL + GTKWave (gratuit, universel)Le VHDL structurel et comportemental que tu écris dans ce cours est portable entre tous ces outils. Ce sont les contraintes de timing, les attributs et les primitives instanciées qui créent des dépendances au constructeur.