Implémentation FPGA du projet Nand2Tetris – Une exploration matérielle du fonctionnement interne des ordinateurs.
Ce projet est une implémentation FPGA du célèbre cours Nand2Tetris, qui enseigne la construction d'un ordinateur à partir de portes NAND. L'objectif est d'implémenter l'architecture complète en VHDL, permettant l'exécution de code écrit en langage machine Hack sur un FPGA.
L'approche suit une démarche full TDD (Test-Driven Development) et met l'accent sur l'optimisation et la fidélité à l'architecture définie dans le cours original.
- Implémenter chaque composant du CPU Hack en VHDL.
- Tester chaque module individuellement via Testbenches.
- Synthétiser l'architecture complète pour une implémentation FPGA.
- Explorer les contraintes et optimisations possibles sur FPGA.
✅ Portes logiques de base (NAND, AND, OR, XOR, NOT)
✅ Circuits combinatoires et séquentiels (ALU, registres, multiplexeurs)
✅ Implémentation complète du CPU Hack
✅ Mémoire RAM et ROM accessibles sur FPGA
✅ Gestion du clavier et affichage via un écran VGA (en cours)
✅ Testbenches pour valider chaque composant
- GHDL : Pour la simulation VHDL
- GTKWave : Pour la visualisation des signaux
- Vivado/Quartus : Pour la synthèse sur FPGA
- Make : Pour automatiser le processus
- Cloner le repo
git clone https://github.com/kdridi/nand2tetris_fpga.git cd nand2tetris_fpga
- Compiler et exécuter un testbench
make all
- Visualiser les signaux avec GTKWave
gtkwave my_alu.ghw
- Ouvrir le projet dans Vivado/Quartus
- Compiler et générer le bitstream
- Flasher le FPGA et tester l'exécution du CPU Hack !
Les contributions sont les bienvenues ! Si tu veux ajouter une amélioration, n'hésite pas à ouvrir une issue ou à proposer un pull request.
Développé avec ❤️ par kdridi. N'hésite pas à ⭐ le repo si tu apprécies le projet ! 🚀