Histoire des FPGAs

De nos jours, Les FPGAs forment le fer de lance éducatif de la conception hardware, et c’est pratiquement le meilleur moyen de créer du hardware par des étudiants. Malgré cela, je l’ai toujours évité. Pour faire apprendre le hardware, j’ai toujours préféré des logiciels de simulation simplistes comme Logisim, ou l’utilisation directe des portes logiques en utilisant des composantes électroniques de la série 74. La raison est que l’apprentissage par FPGA pose plusieurs barrières académiques.

La première barrière, et la plus conséquente à mon avis et sans doute l’argent. Le prix d’une FPGA disons standard, est autour de 10 millions (100000 DA), ce qui est énorme et totalement exorbitant pour un simple étudiant. Pourtant, il existe d’autres moyens pour acquérir des FPGAs avec un prix moins cher. Comme les kits de FPGA vendues dans les sites électroniques chinois. Le compromis avec ces FPGAs c’est que ce sont des FPGAs des générations antérieures. C’est comme de nos jours acheter un PC Pentium 3 pour l’utiliser comme un ordinateur de travail. Il y a aussi une firme chinoise de construction d’FPGAs nommée Tong, qui fournit des produits low-spec (peu performant) mais avec des prix vraiment très bas. J’ai réussi par exemple à trouver en Algérie un modèle de 1 K-portes avec un prix de 3000 DA.

La deuxième barrière est la complexité d’utilisation. En comparaison avec un logiciel de simulation comme Logisim ou l’utilisation directe des portes logiques avec la série 74, les FPGAs sont beaucoup plus complexes. Pour utiliser une FPGA vous devrez tout d’abord, Avoir un bon PC pour installer le logiciel lourd du développement d’FPGA. Avoir une licence du constructeur pour utiliser ce logiciel. Dans certains cas, avoir un câble spécial pour flasher ou supplanter le nouveau circuit dans l’FPGA. La puce FPGA se trouvant sur une carte électronique (PCB) avec des entrées/sorties et plusieurs composantes, vous devrez vous documenter sur cette carte pour pouvoir l’utiliser…etc.

La troisième barrière, aussi en liaison avec la deuxième barrière, c’est le temps d’apprentissage additionnel nécessaire pour pouvoir utiliser les FPGAs. En sachant que l’FPGA est par nature complexe, son utilisation demande un certain temps d’apprentissage. Comme par exemple les logiciels de développement, appelés généralement EDA, en dehors du développement du circuit, une dizaine d’autres étapes sont nécessaires pour pouvoir implanter le circuit développé sur l’FPGA.

Histoire des FPGAs

La vidéo en haut est hébergé sur la chaîne Youtube d’Asianometry. Une bonne chaîne consacrée au développement hardware et aux puces électroniques. La vidéo ne traite pas à proprement dit les FPGAs, mais plutôt une vue historique sur l’évolution de ces derniers. Intéressant de comprendre comment s’est fait l’évolution de ce hardware particulier, qu’on peut désigner comme du hardware volatile. 

Apprendre l’électronique avec Arduino

Personnellement, je trouve la plateforme Aduino, l’un des meilleurs moyens pour permettre aux étudiants et aux initiés de faire une introduction aux systèmes embarqués. Pour faire simple, les systèmes embarqués sont des systèmes qui nécessitent des connaissances en électronique pour construire la plateforme physique, et en informatique pour programmer la plateforme. Ainsi, pour pouvoir faire du système embarqué, il faut au minimum avoir des connaissances dans les 2 disciplines.

Cours approfondi sur Arduino

J’ai déjà à plusieurs reprises écrit sur Arduino. Mais cette fois-ci, je suis tombé sur une vidéo très approfondie sur le sujet. Parce que, Premièrement, la vidéo ne nécessite de l’étudiant aucune connaissance préalable en informatique et en électronique. Et Deuxièmement, ce qui est le plus intéressant, c’est que l’étudiant n’est pas obligé d’avoir une carte Arduino matérielle pour pouvoir suivre ce cours. Car on retrouve sur la vidéo une référence à un simulateur qui arrive à faire la simulation d’Arduino et de l’électronique avec en plus une superbe interface bien agréable. C’est le simulateur online tinkercad.

La vidéo en question est celle de la chaîne YouTube du site web éducatif www.freecodecamp.org, et comme vu précédemment dans d’autres blogs, c’est un excellent site plein de nombreux cours et tutoriels en informatique.

Brève introduction à l’électronique

Les bienfaits de l’électricité dans notre vie quotidienne sont énormes et innombrables. Pour beaucoup de monde l’électricité est l’invention la plus marquante pour l’être humain tout au long de son existence. Au tout début de son appréhension par l’humain, ça a été surtout utilisées comme un moyen de transmission d’énergie. Ça permettait, et ça permet jusqu’à nos jours, d’alimenter les systèmes d’éclairage et à être une source d’énergie pour les différents appareils et moteurs se trouvant dans les dispositifs électroménagers, comme les réfrigérateurs ou les machines à laver, ou même les moteurs se trouvant dans les usines et les ateliers d’industrie. Mais plus que ça, et c’est ça ce qui nous intéresse en informatique, l’électricité est utilisée comme un moyen de transmission de l’information. L’exemple le plus concret est sans doute l’internet. Mais aussi à l’intérieur de nos ordinateurs car l’information est transmise sous forme d’impulsion électrique en utilisant les différents circuits électroniques composant l’essentiel du hardware informatique. Et tout ça principalement pour sa simplicité d’utilisation, sa disponibilité, et sa rapidité de transmission. Peut-être un jour la lumière va remplacer l’électricité pour le traitement automatique de l’information, mais pour l’instant la lumière est suffisamment plus difficile à manier en comparaison à l’électricité.

Le courant électrique

La vidéo en haut est celle de la chaîne YouTube Engineering Mindset, est une simple introduction au courant électronique. Le contenu de cette chaîne est excellent pour comprendre comment fonctionnent les circuits électroniques, que normalement tout étudiant en informatique doit au moins maîtriser les bases de cette discipline d’ingénierie magnifique.

Automates pour la conception des appareils automatiques

Le terme automate désigne le concept mathématique d’automates finis (en Anglais Finite-State Machines), ce sont des outils formels mathématiques qui sont le plus souvent utilisés comme des outils pour la conception et la réalisation des machines ou appareils automatiques. Pour notre cas, à l’université, ils sont extensivement enseignés en électronique numérique, ils permettent premièrement de donner une définition théorique pour ce qu’on appelle en électronique les circuits séquentiels, c’est une définition qui va englober tous les circuits numériques actuels, que ça soit processeurs, cartes graphiques, chipsets, mémoires, cartes réseau…etc. Mais aussi, comme c’était le cas pour ses origines, étant un moyen simple et efficace pour la création des appareils automatiques utilisés tous les jours dans notre vie quotidienne, comme les distributeurs automatiques de boissons, les parcomètres (machines de paiement de parking), les ascenseurs, les distributeurs de tickets de file d’attente, les portes électriques, les vitres électriques dans les voitures…etc. En sachant en réalité que la plupart des machines automatique modernes ont transité technologiquement vers ce qu’on appelle les Microcontrôleurs, qui sont des mini-ordinateurs très réduits, ou les System-on-Chip (ou SoC), qui sont aussi des ordinateurs réduits mais beaucoup plus évolués et puissants que les microcontrôleurs. La vidéo en bas de la chaîne YouTube Computerphile donne un aperçu éducatif de comme un automate est sensé fonctionner. 

Les automates finis

La proche fin de la loi de Moore

Pour commencer, on va tout d’abord comprendre c’est quoi la loi de Moore ? Véritablement, ce n’est pas une loi à proprement dit, mais disons une spéculation ou une observation faite par Gordon Moore, le cofondateur de la firme d’Intel, dans laquelle il stipule que le nombre de transistors ou la densité des transistors dans une surface donnée des circuits intégrés doublerait tous les deux ans. Cette observation est souvent mise en avant pour démonter l’évolution plutôt spectaculaire de la technologie des circuits intégrés sur plus de 40 ans. Malheureusement, ces dernières années cette loi n’est pas à la rigueur comme pour les années précédentes, et sa courbe d’évolution tend à régresser. Plus encore, la vidéo de la chaîne Youtube Computerphile en bas, prouve que la limite physique est plutôt proche, puisque la trace sur silicium (silicon en Anglais) va plutôt atteindre une largeur proche de l’atome, et dans ce cas c’est plus les lois de la physique électronique classique qui vont être utilisées mais les lois de la physique quantique, ce qui va totalement changer la donne.

La fin de la loi de Moore

Temps de chargement d’un condensateur

Le condensateur est l’un des éléments de base dans l’électronique analogique, il est versatile et il peut prendre différents rôles au sein d’un circuit électronique, comme par exemple le stockage de charge électrique, le filtrage de fréquences, le couplage et le découplage, la suppression de bruit…etc. Dans la vidéo en base de la chaîne éducative The Engineering Mindset, un aspect bien particulier et souvent négligé des condensateurs est abordé, c’est celui du temps de recharge et de décharge du condensateur et comment c’est calculé. Juste pour rappel que ce calcul concerne les circuits à courant continu, pour le courant alternatif le condensateur est d’autant plus important, mais utilisé d’une manière différente.

Temps de chargement/déchargement d’un condensateur

Le plus simple circuit pour mémoriser 1 bit

La vidéo de la chaîne Youtube Computerphile est un simple exemple de démonstration de comment peut construire une cellule mémoire qui peut sauvegarder 1 bit. Le circuit est construit à base de portes logiques (d’ailleurs on a déjà fait un article sur ces composants), ce sont des composants électroniques numériques pour faire le traitement sur un signal binaire à base de 0 et 1. C’est une démonstration parfaite pour avoir un aperçu sur comment la mémoire est construite à l’intérieur d’une machine.

Mémoire sur 1 bit

Jeux vidéo sur le thème des Systèmes embarqués

Les ingénieurs en systèmes embarqués sont les ingénieurs responsables de la conception et la réalisation de la quasi-totalité des appareils électroniques modernes, comme par exemple, les appareils d’électroménager, incluant la machine à laver, l’aspirateur, le réfrigérateur, le micro-onde…etc. Ou encore le consommable électronique, comme les smartphones, les caméscopes, les téléviseurs, les consoles de jeux…etc. Ou bien encore l’électronique enfouie à l’intérieur des machines, comme l’électronique dans les voitures, les véhicules de transport, dans des machines industrielles…etc. Ou l’électronique des équipements de bureau, comme les imprimantes, les scanners, fax, photocopieuses…etc. Il y a beaucoup d’exemples, c’est quasiment tous les appareils comportant de l’électronique, mis à part les PCs, les ordinateurs et les machines informatiques. Essayer de comprendre la définition des systèmes embarqués peut mener à confusion, puisque dans les exemples ci-dessus c’est l’électronicien qui doit normalement réaliser la partie électronique de la machine, mais l’électronique des appareils moderne a beaucoup changé en comparaison avec la pure électronique d’il y a 20 ans, dans les systèmes embarqués modernes, l’électronique repose sur un processeur ou un microcontrôleur que l’ingénieur non seulement doit le concevoir électroniquement mais aussi de pouvoir le programmer, en ajoutant à cela des connaissances en programmation et en informatique pour ce dernier. La vidéo en bas est une petite présentation du jeu.

Présentation de Shenzhen I/O .

Le jeu en question s’appelle Shenzhen I/O, en référence à la ville en Chine de Shenzhen, et comme décrit dans Wikipédia, c’est la métropole pilier du high-tech et des semi-conducteurs de la Chine, c’est l’équivalente et la concurrente de la Silicon valley au États Unis. Le jeu fait la simulation d’un ingénieur dans un future proche qui immigre vers Shenzhen, pour travailler dans la conception d’appareils électroniques. Le plus intéressant dans le jeu c’est que le joueur aura comme principale tâche la résolution de puzzles sous format de construction de circuits électroniques, et de faire leurs programmations en langage assembleur, il a aussi la possibilité d’utiliser les datasheets et l’oscilloscope. Les circuits sont simplistes et la programmation en assembleur est rudimentaire, mais les concepts utilisés sont réels directement inspirés de systèmes authentiques, et ce qui m’a encore le plus surpris c’est que j’ai trouvé des travaux de recherche scientifique sur ce jeu, c’est considéré comme une nouvelle forme d’apprentissage des technologies modernes en utilisant les jeux vidéo. Le lien du Shenzhen I/O est par ici pour plus d’informations. Il y a aussi en bas la vidéo d’un joueur qui a réussi à crée le jeu de Tetris sur le simulateur de Shenzhen I/O.

Tetris sur Shenzhen I/O

Fonctionnement d’un transistor

Dans l’électronique numérique le transistor prend une importance capitale concernant la conception et la création des circuits intégrés, tous les composants informatiques électroniques dans les PC et ordinateurs actuels sont dans la quasi-totalité constitués que de transistors, comprendre son fonctionnement devient primordial pour un informaticien même-s’il faut bien savoir que l’utilisation du transistor dans les circuits numériques reste basique, puisqu’il est utilisé comme un simple interrupteur électrique. La vidéo suivante de la chaîne YouTube d’électronique The Engineering Mindset donne une explication très pédagogique de l’utilisation d’un transistor.

Fonctionnement du Transistor

De l’autre côté, la compréhension du fonctionnement du transistor pour un électronicien représente une étape importante et conséquente dans sa maîtrise du domaine, car il faut savoir que le transistor et souvent pointé comme un obstacle intimidant lors de l’apprentissage de l’électronique, c’est comme les pointeurs en programmation, ils sont difficile à comprendre mais leurs maîtrises est aperçue comme un essor important en habilité de programmation.

Zoom sur un Processeur

Il est toujours fascinant de voir à quel point l’humain a su construire si petit et si complexe les processeurs et les puces électroniques, c’est le domaine de la technologie qui représente le mieux la maîtrise de la précision et de la complexité que l’humain n’a jamais pu réaliser auparavant. Pour rappel, les traces à l’intérieur des processeurs actuels vont arriver bientôt à 2 nanomètres (nanomètre = 2-9 mètre), bientôt sur 1 nanomètre on pourra compter à peu près 10 atomes de silicium, la matière dont les puces sont construites. Et une complexité pour combiner 1 trillion de transistors (1 trillion = 1000 milliards) sur une seule puce, tous soigneusement arrangés et bien synchronisés pour un rôle bien défini, ça donne l’étourdi !

Appréciation du spectacle en image dans la vidéo en bas.

Zoom sur processeur

Et la vidéo suivante est une visualisation d’une simulation électrique au niveau transistor du processeur 4 bits d’Intel le 4004, il contient 2300 transistors. Historiquement c’est le premier microprocesseur à avoir été vendu en 1971.

Intel 4004 en s’exécutant internement au niveau transistor