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 , , , , 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$ ?) , 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, - 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