Vous avez peut-être déjà entendu parler de circuits logiques programmables comme les CPLD ou les FPGA, des langages de description de matériel (HDL) et de la notion de processeur soft-core. Approcher ce domaine, pour un développeur ou une personne davantage versée dans la programmation que dans la conception de circuits, est toutefois assez délicat. Non seulement le domaine est très différent, mais il en va de même pour les concepts, les outils et les méthodes de développement. L'idée derrière cet article n'est pas de faire une introduction « académique » à la programmation HDL, ni même de vous fournir quelques notions de base, mais de vous faire comprendre, dans les grandes lignes, ce qu'est la description de matériel avec un objectif simple : faire fonctionner un système GNU/Linux sur une implémentation de processeur programmée dans un FPGA.
Dans ce premier paragraphe d'introduction, nous avons déjà quelques concepts nébuleux. L'un d'entre eux est le processeur soft-core. Vous connaissez les processeurs, il y en a dans votre ordinateur, votre smartphone, votre console de jeux, votre montre sans doute, etc. Ces composants sont des circuits destinés à exécuter des programmes écrits en langage machine issus, par exemple, de la compilation de programmes rédigés par un humain (ou assimilé humain) en C. Les processeurs sont constitués de plusieurs éléments comme une unité arithmétique et logique, des registres, des horloges, ... mais tous ces composants ne sont finalement que des versions miniaturisées de circuits logiques et de combinaisons de portes logiques prenant, quant à elles, matériellement la forme de transistors. Un processeur n'est en réalité qu'un énorme amoncellement de transistors interconnectés, gravés dans le silicium, le cuivre et le tungstène. Vous pouvez voir cela comme un circuit...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première