Outils libres pour développement FPGA

De Wiki LOGre
Aller à : navigation, rechercher


Il n'existe pas actuellement, pour le développement FPGA, de toolchain complète libre comme il y a en SW avec la GNU toolchain et LLVM. Cette page résume les outils libres existants. C'est en utilisant ces outils et en les améliorant que le développment HW avec une maitrise et une liberté totale sera vraiment possible.

Introduction

La toolchain se compose comme suit :

 language HLS +-----------+ language HDL +------------+ netlist +-------------------+    format     +----------------+   FPGA
--------------+compilateur+--------------+synthetiseur+---------+pack, place & route+---------------+bistream encoder+-----------
 C/C++/Python +-----------+ VHDL/Verilog +------------+  EDIF   +-------------------+ intermediaire +----------------+ bitstream

Parmi ces outils, seuls ceux faisant la synthèse, le place & route et le bitstream encoding nécessite la connaissance de l'architecture FPGA cible.

Les informations concernant un FPGA sont:

 - les blocks présent dans le FPGA tels que LUTs, mémoires, ... (en général fournis pas le constructeur)
 - les interconnections entre les blocks (en général fournis pas le constructeur)
 - les infos de timing et de power (parfois fournis pas le constructeur)
 - le format du bitstream FPGA


Synthèse HLS (haut niveau)

TBD

Synthèse HDL (bas niveaux)

YOSYS

Homepage: http://www.clifford.at/yosys
Repository: https://github.com/cliffordwolf/yosys
Purpose: FPGA synthesis (Verilog -> netlist)
FPGAs supportés: Spartan 6 family
License: ISC
Status: actif

LLHDL - A logic synthesis and manipulation infrastructure for FPGA

Homepage: non
Repository: https://github.com/weidu/llhdl
Purpose: FPGA synthesis (Verilog -> netlist)
FPGAs supportés: Spartan 6 family
Licence: GNU GPL v3
Status: inactif depuis 2011


Pack + Place & route + génération bitstream

Antares - Physical implementation tools for Xilinx FPGAs

Homepage: non
Repository: https://github.com/weidu/antares
But: FPGA pack, place & route, bitstream generation (netlist -> bitstream)
FPGAs supported: Spartan-6 (note that it requires chip geometry database from ISE)
Licence : GNU GPL v3
Status: inactif depuis 2011


Bitstream Reverse Engineering

Debit - Reverse-engineering tools for FPGA bitstreams, Altera and Xilinx

Homepage: non
Repository: https://code.google.com/p/debit
But: FPGA Bitstream Reverse Engineering
FPGAs supportés: Spartan-3, Virtex-2, Virtex-3 & Virtex-4
License: GNU GPL v3
Status: inactif depuis 2008

s6bitstream - Adventures in reverse engineering Spartan-6 FPGA bitstreams (only few scripts)

Homepage: non
Repository: https://github.com/sbourdeauducq/s6bitstream
But: FPGA Bitstream Reverse Engineering
Licence: ?
FPGAs supportés: Spartan-6
Status: inactif depuis 2011