- Jeu de simulation permettant d’apprendre en construisant étape par étape toute la pile informatique, du transistor au GPU
- Chaque étape est structurée en ACT, avec une progression allant des transistors, portes logiques, ALU et processeur jusqu’au GPU et aux shaders
- Dans ACT 1, on crée les portes logiques de base à l’aide de NMOS et PMOS, puis dans ACT 2, on les étend pour compléter l’ALU et le cœur du processeur
- Les étapes suivantes, consacrées au logiciel, au GPU et aux shaders, sont actuellement en cours de développement et marquées COMING SOON
- Il s’agit d’un projet interactif éducatif permettant d’expérimenter de manière intégrée la conception matérielle et la programmation
Présentation du jeu Mvidia
- Mvidia est un jeu d’apprentissage interactif dans lequel l’utilisateur expérimente, étape par étape, le processus de conception et de construction directe d’un GPU
- Le jeu commence avec les transistors et progresse vers les portes logiques, l’ALU, le processeur et le GPU
- Chaque étape est divisée en « ACT », et chaque ACT est composé de plusieurs exercices d’apprentissage et de réalisation
- La progression est affichée sous forme de taux d’achèvement (par ex. 0/10 COMPLETED), ce qui permet de visualiser l’avancement
ACT 1 : Premier jour (YOUR FIRST DAY)
- Le thème est Transistors → Logic Gates, une étape où l’on construit les portes logiques de base à partir de transistors
- Principaux exercices
- 1.1 The Switch : utiliser un NMOS comme interrupteur
- 1.2 The Other Switch : utiliser un PMOS comme interrupteur
- 1.3 Two Halves : combiner NMOS et PMOS
- 1.4 NAND It : construire une porte NAND
- 1.5 The Dual : construire une paire de portes logiques
- 1.6 Truth Tables : établir des tables de vérité
- 1.7 AND Gate, 1.8 OR Gate, 1.9 XOR Gate : implémenter les portes de base
- 1.10 Choose Wisely : combiner trois portes pour compléter une structure de sélection
- Une fois ACT 1 terminé, ACT 2: THE CORE est débloqué
ACT 2 : Le cœur (THE CORE)
- Le thème est Gates → ALU → Processor, une étape où l’on construit l’unité arithmétique et logique (ALU) et le processeur à partir de portes logiques
- Elle se compose de 34 exercices détaillés, chacun s’appuyant sur les résultats des étapes précédentes
- Étapes principales
- 2.1 Half Adder, 2.5 Full Adder : construire des circuits d’addition
- 2.3 The Decoder, 2.25 Register File : concevoir des structures de sélection et de stockage des données
- 2.4 The Capacitor, 2.7 1T1C, 2.12 The Sense Amp, 2.17 The Array : construire des cellules mémoire et des amplificateurs de détection
- 2.10 Adding Bytes, 2.13 Hex Racer, 2.15 Bit Twiddling : étendre les opérations au niveau de l’octet
- 2.20 Edge Trigger, 2.21 Refresh, 2.31 Refresh Controller : contrôler l’horloge et le rafraîchissement mémoire
- 2.27 The ALU, 2.30 Fetch, Decode, Execute, 2.32 The Mvidia Core : finaliser l’architecture centrale du processeur
- 2.33 DRAM Memory, 2.34 Mvidia Core v2 : extension basée sur la DRAM et mise à niveau du cœur
- Une fois ACT 2 terminé, ACT 3: THE SOFTWARE est débloqué
ACT 3 : Le logiciel (THE SOFTWARE)
- Le thème est Programming the Processor, une étape consacrée à la programmation du processeur terminé
- Actuellement marqué COMING SOON, le détail des exercices n’a pas encore été publié
ACT 4 : GPU (THE GPU)
- Le thème est Building a Graphics Processor, une étape consacrée à la construction d’un processeur graphique
- Actuellement marqué COMING SOON, avec des exercices liés à la conception de l’architecture GPU prévus ultérieurement
ACT 5 : Le shader (THE SHADER)
- Le thème est Programming the GPU, une étape de programmation de shaders à l’aide du GPU
- Actuellement COMING SOON, avec une extension prévue ultérieurement vers du contenu d’apprentissage de la programmation GPU
1 commentaires
Avis sur Hacker News
Projet vraiment génial
Cela dit, il y avait beaucoup de questions redondantes à l’étape des truth tables, et la première n’avait qu’une limite de temps d’une seconde
La partie sur les condensateurs était aussi déroutante. Il n’y a pas de porte « enable » sur un condensateur, mais en 2.7 (1T1C), il faut la construire directement avec un transistor
Or, actuellement, il y a déjà une porte enable dans les primitives, ce qui rend la porte NMOS inutile
Je me demande si cela a été fait avec l’aide d’un LLM. Le workflow employé pour produire une UI aussi réussie était particulièrement impressionnant
L’implémentation du condensateur a demandé beaucoup de réflexion dès le début. Il était difficile de créer un modèle de condensateur complet compatible avec le système de simulation
Le bug des truth tables sera corrigé. Les étoiles ne peuvent être obtenues qu’en jouant en endless mode
J’ai beaucoup utilisé Claude pendant le développement. Le câblage et la partie simulation étaient difficiles, mais les graphismes ont été réalisés avec des consignes très détaillées
On n’apprend les définitions de NAND, NOR et Inverter qu’après le quiz. Ce serait bien de changer l’ordre
Et le timer est beaucoup trop court. Même en connaissant toutes les réponses, j’avais du mal à saisir à temps. Il vaudrait peut-être mieux le supprimer complètement
Si vous aimez ce jeu, je recommande aussi Turing Complete
À la fin, on peut créer son propre CPU et son propre langage assembleur. En revanche, il est encore en Early Access et semble bloqué dans cet état depuis longtemps
J’ai conçu des mixed-signal IC pendant plus de 10 ans, et je n’ai même pas réussi à passer le premier niveau
Il fallait faire en sorte qu’un NMOS donne 0 en sortie quand l’entrée vaut 1, et l’état Z quand elle vaut 0
Il fallait connecter le drain à la sortie, la source au GND et la gate à l’entrée
Pourtant, la moitié des tests échouaient. J’ai fini par comprendre que les grosses lignes grises de l’arrière-plan ressemblaient à des fils, ce qui m’a induit en erreur. Il fallait ajouter soi-même les connexions
Quelques retours
L’idée est bonne, mais en ayant déjà joué à Turing Complete, j’avais envie de sauter les premières étapes pour aller directement vers la partie spécialisée GPU
Il est difficile de comprendre intuitivement NAND à partir des transistors, donc j’ai ressenti un vrai mur de difficulté
L’écart de difficulté est important, mais le mode easy était correct
L’étape de rafraîchissement du condensateur allait trop vite pour que je puisse suivre au clavier
Quand le câblage devient complexe, la lisibilité se dégrade très vite, et l’absence de différenciation par couleur ou de routage manuel est gênante
Sur Firefox, la sélection des points de connexion marchait mal, et ce serait bien de pouvoir déplacer la vue (pan) en faisant glisser la souris sur les bords
« show solution » ressemble plus à un indice qu’à une véritable solution. Ce serait bien d’avoir une option pour afficher davantage de cas de test
Très bonne idée
Mais je n’avais pas les bases nécessaires pour comprendre les messages du tutoriel, et je suis resté bloqué dès le premier niveau
Je n’ai toujours pas l’intuition pour la porte NOT du niveau 3. Cela dit, c’est la première fois que je vois ce type de puzzle de circuits 3 états, donc je trouve ça rafraîchissant. Avec juste une histoire mignonne en plus, ça pourrait aussi marcher sur Steam
Comme c’est une bonne idée, je l’ai ajouté à HN Arcade
Il faudrait un bouton « afficher la réponse » après 10 essais infructueux
Cela permettrait de distinguer si le problème est cassé ou si c’est moi qui me trompe
Ce serait bien d’avoir un nœud temporaire pour tester la sortie
Mieux encore, si la truth table se mettait à jour en temps réel sans lancer de test, ce serait utile pour l’apprentissage
Pour l’apprentissage, ce serait bien d’expliquer une fois en toutes lettres les abréviations (nmos, pmos, gnd, vdd)
L’interface est propre et comble bien une niche éducative
Cela dit, même développées, ces abréviations ne sont pas forcément très intuitives, donc ce n’est peut-être pas d’une grande aide
J’ai fait une correction provisoire, mais je vais le réintroduire dans une version plus polished. Je ferai en sorte que ce soit optionnel
Excellent jeu. Pour l’apprentissage, ce serait bien de pouvoir voir une solution modèle ou une explication après avoir terminé chaque niveau