Vivado et les autres logiciels FPGA | FPGA Pour Tous
Résumé
Vivado et les autres logiciels FPGA
Comparer Vivado, Quartus Prime, Libero SoC et les outils FPGA open-source pour choisir un flux VHDL de synthèse et d'implémentation.
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.
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 IP 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 10Quartus Prime Standard → payantQuartus Prime Pro → payant, Agilex, Stratix 10
Diffé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) :
Certains attributs VHDL sont propres à un outil et ignorés (ou refusés) par les autres :
-- Xilinx/Vivado uniquementattribute 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 uniquementattribute 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.
Le VHDL structurel et comportemental présenté 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.