outils et langages gratuits et/ou open-source pour les fpga

25
Séminaire Cap'Tronic Grenoble, 18 décembre 2014 1/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

Upload: others

Post on 28-Nov-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 1/25

Outils et langagesGratuits et/ou open-source

Pour les FPGA

Adrien Prost-Boucle, Olivier Muller, Frédéric Rousseau

Laboratoire TIMA – CNRS/Grenoble-INP/UJF46 Avenue Félix Viallet, 38031 Grenoble cedex

Page 2: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 2/25

Intérêt pour le gratuit et/ou open source

→ Évaluer un logiciel

→ Trouver le FPGA adapté

→ Garanties

- Fonctionnalités

- Support

→ Coût

Page 3: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 3/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

Page 4: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 4/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

Page 5: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 5/25

Synthèse de haut niveau

→ Plus accessible

→ Facilite la validation des algorithmes

→ Exploration des solutions

HLS = High-Level Synthesis

Page 6: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 6/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

Page 7: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 7/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

Page 8: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 8/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

Page 9: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 9/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

Page 10: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 10/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 ?

Page 11: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 11/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

Page 12: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 12/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

Page 13: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 13/25

GAUT

License CeCILL-B

Application DSPContrainte en latence

Support C Élevé

RTL VHDL générique

Préf. FPGA Calibrations pour Xilinx, Altera

Activité Forte

Autres Affichage GANTT, etc

Page 14: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 14/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 LLVMProcesseur embarqué Tiger MIPSFaible contrôle sur la taille du circuit

Page 15: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 15/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 EclipseSélection des optimisationsLimite en nombre d'opérateursFlottants possibles

Page 16: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 16/25

PandA

License GPLv3

Application Partitionnement HW / SWFlottants

Support C Élevé (front-end GCC)

RTL Verilog

Préf. FPGA

Activité Forte

Autres Générateur de coeurs FloPoCoBenchmark CHStone

Page 17: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 17/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éesIntégration d'IP externesConsultation par email

Page 18: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 18/25

ngDesign

License Version gratuite, open sourceUsage non commercial

Application

Support C Langage spécifique : Cx

RTL VHDL (Verilog : version pro)

Préf. FPGA

Activité Très récentActivité forte

Autres Contraste avec approches existantesOrienté vérificationEnvironnement intégré

Page 19: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 19/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

Page 20: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 20/25

AUGH

License GPLv3

Application Accélérateurs matérielsCircuits contraints en ressources

Support C Élevé

RTL VHDL, générique

Préf. FPGA Calibration pour FPGA XilinxGénération projets ISE, Vivado

Activité Très forte

Autres Flot très accessibleFlot automatique

Page 21: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 21/25

- 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

AUGH : fonctionnalités actuelles

Page 22: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 22/25

Exploration des solutions

- Modèles de FPGA et de cartes, internes

- Utilisation comme un compilateur

- Automatique et très rapide

Page 23: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 23/25

0

200

400

600

800

1000

1200

1400

1600

1800

0 5000 10000 15000 20000 25000

La

ten

ce d

u c

ircu

it (c

ycle

s d

'ho

rlo

ge

)

Surface du circuit (nombre de LUT/FF)

LUTFF

Solution initialeCompacte mais lente

Solution finaleRapide et degrande surface

Exemple : IDCT 2D

Page 24: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 24/25

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...)

Limites actuelles

Page 25: Outils et langages Gratuits et/ou open-source Pour les FPGA

Séminaire Cap'Tronic Grenoble, 18 décembre 2014 25/25

Outils et langagesGratuits et/ou open-source

Pour les FPGA

Adrien Prost-Boucle, Olivier Muller, Frédéric Rousseau

Laboratoire TIMA – CNRS/Grenoble-INP/UJF46 Avenue Félix Viallet, 38031 Grenoble cedex