Le Hardware Open Source

Un peu d'histoire

Vous n'y couperez pas : le petit rappel historique qui va bien, afin de comprendre ce qui a pu rendre le hardware libre possible. Voici donc un petit historique de la conception des composants digitaux, CPU en première ligne.

Les années 'roots'

Depuis le début des années 70 et la naissance du 4004 (1971), les composants digitaux en général et les microprocesseurs en particulier n'ont cessé de se complexifier, imposant aux concepteurs des circuits qui devenaient difficiles à dessiner et à évaluer. Même si les outils de CAO permettaient d'éviter le dessin manuel, il fallait toutefois dessiner, à proprement parler, la puce à l'écran: un travail fastidieux, source d'erreur humaine et surtout assez peu optimisé dans la mesure où le placement des diverses structures était fait par l'homme. C'était l'époque où chaque bout de dessin était tiré a l'imprimante, où des salles entières étaient couvertes de layout en guise de moquette à des fins de vérification manuelle. C'était le bon vieux temps...

Les années 80 : la révolution

Dans les années 80, la pression du marché et la loi de Moore aidant, de nombreuses entreprises, universités et institutions ont développé des langages de description hardware. Il n'était plus question de dessiner son schéma et son layout : le schéma est maintenant généré par un synthétiseur et le layout, placé par un programme de placement-routage automatique à partir du schéma synthétique.
Ainsi, depuis le milieu des années 80, la plupart des composants digitaux sont devenus des composants 'de synthèse'.

Évidemment, il y a des exceptions à la règle et les composants très spécifiques comme les RAMs par exemple sont encore dessinés à la main. Ce fut une véritable révolution dans l'industrie de l'électronique digitale. L'apparition de codes sources derrière chaque composant a permis notamment :

  • d'aller plus vite lors de la conception des puces grâce a l'automatisme

  • de faire des simulations du comportement de chaque composant bien avant d'avoir un schéma

  • De porter plus facilement les modules d'une technologie à une autre, le code source restant le même

  • D'éviter surtout les erreurs humaines, la synthèse étant automatisée

  • D'avoir des designs plus compacts et donc moins chers
Par exemple, le layout du 4004 (à gauche) est nettement moins dense que celui du Pentium premier du nom (à droite).


Certes, la technologie de gravure n'était pas la même, mais le nombre de transistors non plus. Sur le layout du Pentium, les blocs sont plus réguliers malgré une architecture plus complexe.
Bref, avec la naissance des langages de descriptions du hardware, le concept génial du code source générant de la logique était là. Cependant il était réservé aux entreprises, qui utilisaient leur propre code propriétaire et il fallut attendre 1987 pour une première standardisation sous 2 formes :
  • le VHDL, IEEE.1076, facile à appréhender mais peu compact, principalement utilisé en Europe

  • le Verilog, proche du C, propriétaire jusqu'à son acceptation IEEE.1364 en 1995, et utilisé aux états-unis
Inutile de vous dire que depuis ce jour, ces deux langages forment le sujet de débat favoris des concepteurs digitaux qui, plus de 15 ans après l'apparition des deux langues, se tapent encore dessus de part et d'autre de l'Atlantique pour savoir laquelle est la meilleur. Comme quoi... le meilleur langage, c'est toujours celui qu'on apprend à l'école.

Évidemment, tout cela est formidable, mais à moins d'avoir une fonderie dans le fond du jardin, les codes sources ne sont pas d'une grande utilité. C'était vrai... jusqu'au début des années 90.