Open-Source côté hardware - aperçu des initiatives

Open-Source côté hardware - aperçu des initiatives

De Linux embarqué aux blocs IP matériels (IP pour "Intellectual Property") et spécifications open source, en passant par les chaînes de compilation libres et les processeurs softcore, l’offre du libre en matière de développement de systèmes embarqués, et plus généralement de systèmes hardware, est actuellement en train de prendre une ampleur inégalée à ce jour. Cet article est un aperçu de ce domaine désireux de faire parler de lui, et qui risque à court terme de constituer l’un des intervenants majeurs dans la conception des futurs systèmes hardware.

Les initiatives open source sont nombreuses dans le domaine hardware. Il faut ici distinguer, d’une part, les sites - ou "plateformes" - spécialisés dans l’échange et la réutilisation de designs et spécifications pour la conception de systèmes sur silicium ("system-on-a-chip"), et d’autre part, les outils et méthodes de développement dédiés à l’embarqué, d’une très grande disponibilité et distribués suivant le modèle open source (généralement sous licence GNU GPL).

Open hardware et open cores

Dans cette première catégorie, citons l’exemple de la plateforme online Opencores.org dédiée à la diffusion de projets open source dans le domaine hardware, qualifiés dès lors de projets "open hardware ".

L’offre en matière d’open hardware comprend notamment les projets dédiés au développement de processeurs "softcore". Ces derniers étant totalement reconfigurables (s’il sont libres, leur code source est en plus fourni), puis implémentables au sein d’un FPGA ou un ASIC. Citons notamment la famille des processeurs "soft" libres implémentant l’architecture SPARC V8 développée par Sun Microsystems. Entre autres exemples de ces softcores libres : le processeur LEON, dont le code source en langage VHDL est librement téléchargeable. Il faut ici saluer l’initiative du constructeur Sun qui, depuis début 2006, autorise le téléchargement, la modification et la redistribution libre (licence GNU GPL) de son processeur UltraSPARC T1, donnant ainsi naissance au projet OpenSPARC. A noter également la disponibilité de processeurs soft basés sur l’architecture RISC, entre autres : OpenRISC...

Au niveau des spécifications : un très bon exemple est la norme Wishbone, diffusée également par Opencores et visant à simplifier grandement l’interconnexion de blocs hardware ou "cœurs" réutilisables, le plus souvent propriétaires et désignés par le terme "IP cores". Ces derniers nécessitent une interface en vue d’être implémentés rapidement au sein d’un chipset (FPGA ou ASIC) : c’est précisément le rôle de la spécification Wishbone. Les avantages attendus étant la réutilisabilité des designs existants et éprouvés, entraînant des temps de développement et de mise en production ("time-to-market") réduits au strict minimum. A noter également le développement de blocs IP disponibles dans le domaine publics et pouvant être intégrés sans coût supplémentaire à un design en cours de développement, réduisant au final le coût nécessaire à sa production (voir le site d’Opencores pour plus d’informations à ce sujet).

Chaînes EDA open source

Le concept de chaînes EDA open source (Electronic Design Automation) s’attaque non seulement à l’implémentation de chaines de compilation pour ASIC (dont le marché est actuellement un oligopole) avec des projets tels qu’ Alliance, mais également à l’ESL (Electronic System Level : voir par exemple le site de Greensocs en particulier Opentech Network).
Comme exemple de développement au niveau de l’ESL, on peut citer le langage SystemC, qui se base sur un standard ouvert, et un moteur de simulation de référence open source. SystemC consiste en une librairie qui vient ajouter au langage C++ les notions qui lui "manquent" pour pouvoir faire de la description hardware (types de données, des interfaces, notion de temps, etc). SystemC allie les avantages du langage C++, en particulier le support d’outils de développement de par la large base installée, à un noyau de simulation intégré par défaut dans sa chaîne de compilation.

En ce qui concerne les chaînes EDA, une distinction s’impose car celles-ci sont composées de plusieurs outils plus ou moins intégrés. Cela va du "Design Entry" avec la capture textuelle ou graphique du design, en passant par les outils de simulation et vérification, jusqu’aux outils de "backend" notamment les outils de synthèse physique (placement-routage) vers des architectures cibles. Au niveau backend, les outils open-source sont à ce jour rares et leur utilisation est marginale. En effet, à ce niveau, la dépendance par rapport à l’architecture cible est trop élevée et l’implémentation nécessite la disponibilité de librairies spécifiques qui ne sont pas open source ! On peut néanmoins citer Alliance, soutneu par le laboratoire français Lip6.

Au niveau "Design Entry" et simulation, l’open source progresse sensiblement avec l’implication active de sociétés EDA dans ce domaine. Les solutions actuelles open-source, notamment en simulation, ne rivalisent pas encore de façon sérieuse avec les outils commerciaux des grands acteurs vu qu’elles sont bien souvent mono-langage et proposent une offre plus restreinte en termes de fonctionnalités. Cependant, elles présentent un réel intérêt dans plusieurs cas de figure tels que pour des projets de taille moyenne écrits dans un seul langage. Les outils commerciaux étant par ailleurs très onéreux, et si leur fonctionnalité est au point, la convivialité n’est pas toujours au rendez-vous et l’inter-opérabilité n’est pas une priorité. L’arrivée de solutions open-source pourrait améliorer la situation.

L’open source et les systèmes embarqués

Concernant l’offre en outils et méthodes de développement open-source dédiés au domaine de l’embarqué, il convient de citer tout d’abord le portage de Linux sur processeur soft (LEON, OpenRISC...), ainsi que l’existence d’une version allégée du système baptisée "µCLinux" ("Microcontroller Linux "), conçue spécifiquement pour les architectures dépourvues d’unité de gestion de la mémoire - MMU ("Memory Management Unit")- , comme c’est la cas du processeur NiosII, développé en propriétaire par la firme Altera. Il faut signaler que l’emploi de Linux embarqué est d’ailleurs très répandu (télécoms, systèmes "consumer" comme les lecteurs DVD, etc.), car il entraine une réduction significative des coûts de production et surtout de licences.

Au niveau des outils à proprement parler, citons l’existence de projets comme LEOX, dont l’objectif est de mettre à disposition des composants open source hard- et software, utilisables dans la construction de systèmes embarqués et pouvant être intégrés rapidement au sein d’un FPGA ou d’un ASIC. Nous mentionnons également le recours généralisé aux outils GNU pour la compilation "croisée" ("cross compilation"), c’est-à-dire la compilation pour une machine hôte (LEON, OpenRISC, NiosII...) à partir d’une station de travail standard. A noter enfin la disponibilité dans ce cadre de l’IDE multiplateforme Eclipse, issue du projet homonyme. Celui-ci est ouvert via un système de plugin, et est pensé pour être spécialisé. De nombreux IDE actuels pour le développement hardware et de logiciel embarqués se basent sur Eclipse.

Conclusion

Comme nous pouvons le constater, l’offre en composants et outils open source existe bel et bien dans le secteur hardware, et ce même si elle reste émergente et minoritaire par rapport à son homologue logiciel. Les initiatives sont nombreuses, poursuivant toujours un même but : mettre à la disposition du développeur des outils performants et fonctionnels, ainsi que des composants réutilisables afin de dynamiser l’économie et offrir une faculté d’adaptation rarement égalée, même dans le secteur du hardware propriétaire.