Outils et langages Gratuits et/ou open-source Pour les FPGA
Adrien Prost-Boucle, Olivier Muller, Frédéric Rousseau
Laboratoire TIMA – CNRS/Grenoble-INP/UJF 46 Avenue Félix Viallet, 38031 Grenoble cedex
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 1/25 Intérêt pour le gratuit et/ou open source
→ Évaluer un logiciel
→ Trouver le FPGA adapté
→ Garanties - Fonctionnalités - Support
→ Coût
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 2/25 Plan
1 – Flot de conception en RTL & HLS
2 – RTL : Logiciels gratuits des fabricants Xilinx, Altera, Actel, Achronix, Lattice
3 – HLS : Logiciels gratuits C → RTL GAUT LegUp ROCCC PandA HerculeS ngDesign
4 – HLS : Logiciel AUGH
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 3/25 Flot niveau RTL
RTL = Register-transfer level HDL = Hardware description language
→ Langages spécifiques au design matériel → Point d'entrée traditionnel → Support très large → Fastidieux
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 4/25 Synthèse de haut niveau
HLS = High-Level Synthesis
→ Plus accessible → Facilite la validation des algorithmes → Exploration des solutions
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 5/25 Langages d'entrée en HLS → C : Nombreux logiciels gratuits
(→ Java : Synthesijer)
(→ Python : MyHDL)
AUTRES : AUCUN SUPPORT GRATUIT
→ C++ / SystemC : Xilinx, Altera (1000$ - 5000$) Catapult (100k$ ?) Synopsys, Cadence...
→ OpenCL : Supporté chez Altera, bientôt Xilinx
→ Matlab : License spécifique HDL Coder + Altera DSP Builder / Xilinx System Generator
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 6/25 Plan
1 – Flot de conception en RTL & HLS
2 – RTL : Logiciels gratuits des fabricants Xilinx, Altera, Actel, Achronix, Lattice
3 – HLS : Logiciels gratuits C → RTL GAUT LegUp ROCCC PandA HerculeS ngDesign
4 – HLS : Logiciel AUGH
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 7/25 Xilinx : ISE WebPack
- Seulement pour FPGA les plus réduits - WebTalk, indiscret
- Synthèse VHDL, Verilog - CORE Generator - Simulateur, version bridée
- Processeur Microblaze : ”microcontroller” SDK : oui
- Analyseur logique : non
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 8/25 Altera : Quartus II Web Edition
- Seulement pour familles de FPGA les plus réduites - TalkBack, indiscret
- Synthèse Schematic, VHDL, Verilog, System Verilog - Simulateur : Modelsim, version limitée - Générateur IP : licences séparées
- Processeur NIOS II + Design Suite : oui
- Analyseur logique : non
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 9/25 Actel / Microsemi, Achronix, Lattice
Actel / Microsemi : Libero SoC / IDE - Support d'un nombre réduit de FPGA - Catalogue d'IP : réduit
Achronix : ACE - Version d'essai 45 jours
Lattice Semiconductors : Diamond - Support d'un nombre réduit de FPGA - Autres limitations ?
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 10/25 Plan
1 – Flot de conception en RTL & HLS
2 – RTL : Logiciels gratuits des fabricants Xilinx, Altera, Actel, Achronix, Lattice
3 – HLS : Logiciels gratuits C → RTL GAUT LegUp ROCCC PandA HerculeS ngDesign
4 – HLS : Logiciel AUGH
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 11/25 Rappel : Chaîne logicielle en HLS
Points d'intérêt : → License → Type d'application (DSP, ...) → Préférence fabricant FPGA → Support du langage C → Langage RTL généré → Activité du projet
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 12/25 GAUT
License CeCILL-B Application DSP Contrainte en latence Support C Élevé RTL VHDL générique Préf. FPGA Calibrations pour Xilinx, Altera Activité Forte Autres Affichage GANTT, etc
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 13/25 LegUp
License Utilisation non commerciale, non lucrative Application Partitionnement HW / SW Support C Très elevé RTL Verilog Préf. FPGA Altera Activité Moyen Autres Basé sur LLVM Processeur embarqué Tiger MIPS Faible contrôle sur la taille du circuit
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 14/25 ROCCC
License Eclipse Public License Application DSP Support C Faible RTL VHDL Préf. FPGA Génération PCore pour projet Xilinx Activité Faible Autres Basé sur Eclipse Sélection des optimisations Limite en nombre d'opérateurs Flottants possibles
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 15/25 PandA
License GPLv3 Application Partitionnement HW / SW Flottants Support C Élevé (front-end GCC) RTL Verilog Préf. FPGA Activité Forte Autres Générateur de coeurs FloPoCo Benchmark CHStone
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 16/25 HerculeS
License Version gratuite, non open source Application Support C Élevé (front-end GCC) avec limites RTL VHDL Préf. FPGA Pas de préférence Activité Moyen (2013) Autres Passes d'optimisation désactivées Intégration d'IP externes Consultation par email
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 17/25 ngDesign
License Version gratuite, open source Usage non commercial Application Support C Langage spécifique : Cx RTL VHDL (Verilog : version pro) Préf. FPGA Activité Très récent Activité forte Autres Contraste avec approches existantes Orienté vérification Environnement intégré
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 18/25 Plan
1 – Flot de conception en RTL & HLS
2 – RTL : Logiciels gratuits des fabricants Xilinx, Altera, Actel, Achronix, Lattice
3 – HLS : Logiciels gratuits C → RTL GAUT LegUp ROCCC PandA HerculeS ngDesign
4 – HLS : Logiciel AUGH
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 19/25 AUGH
License GPLv3 Application Accélérateurs matériels Circuits contraints en ressources Support C Élevé RTL VHDL, générique Préf. FPGA Calibration pour FPGA Xilinx Génération projets ISE, Vivado Activité Très forte Autres Flot très accessible Flot automatique
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 20/25 AUGH : fonctionnalités actuelles
- Technos : Xilinx Virtex-5, Virtex-7, Zynq - Cartes : Xupv5, Zybo
- Très extensible : plugins pour nouvelles technos, cartes, IP, etc
- Contrôle total via scripts
- Nos benchmarks : 200 à 1200 lignes de C
- Exploration des solutions, autonome - Contraintes en ressources fines
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 21/25 Exploration des solutions
- Modèles de FPGA et de cartes, internes - Utilisation comme un compilateur - Automatique et très rapide
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 22/25 Exemple : IDCT 2D
Solution initiale Compacte mais lente
) 1800 e
g LUT o
l 1600 r FF o h
' 1400 d
s 1200 e l Solution finale c
y 1000
c Rapide et de (
t i 800 grande surface u c r i 600 c
u
d 400
e c 200 n e t
a 0 L 0 5000 10000 15000 20000 25000 Surface du circuit (nombre de LUT/FF)
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 23/25 Limites actuelles
Ce qui n'est pas (encore) géré : - virgule flottante - langage C : pointeurs
En cours : - contrainte en ressources BRAM, LUTRAM - simplification description de cartes ad hoc - extension API pour plugins - ajout interfaces (AXI...)
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 24/25 Outils et langages Gratuits et/ou open-source Pour les FPGA
Adrien Prost-Boucle, Olivier Muller, Frédéric Rousseau
Laboratoire TIMA – CNRS/Grenoble-INP/UJF 46 Avenue Félix Viallet, 38031 Grenoble cedex
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 25/25