Skip to content

kdridi/nand2tetris_fpga

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 nand2tetris_fpga

Implémentation FPGA du projet Nand2Tetris – Une exploration matérielle du fonctionnement interne des ordinateurs.

📝 Présentation

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.

🎯 Objectifs du projet

  • 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.

🔥 Fonctionnalités

✅ 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

🚀 Installation et Simulation

📦 Prérequis

  • GHDL : Pour la simulation VHDL
  • GTKWave : Pour la visualisation des signaux
  • Vivado/Quartus : Pour la synthèse sur FPGA
  • Make : Pour automatiser le processus

🛠️ Simulation avec GHDL

  1. Cloner le repo
    git clone https://github.com/kdridi/nand2tetris_fpga.git
    cd nand2tetris_fpga
  2. Compiler et exécuter un testbench
    make all
  3. Visualiser les signaux avec GTKWave
    gtkwave my_alu.ghw

🔧 Synthèse et Déploiement sur FPGA

  1. Ouvrir le projet dans Vivado/Quartus
  2. Compiler et générer le bitstream
  3. Flasher le FPGA et tester l'exécution du CPU Hack !

📜 Références

📘 Nand2Tetris - Site officiel

🤝 Contribuer

Les contributions sont les bienvenues ! Si tu veux ajouter une amélioration, n'hésite pas à ouvrir une issue ou à proposer un pull request.

🧑‍💻 Auteur

Développé avec ❤️ par kdridi. N'hésite pas à ⭐ le repo si tu apprécies le projet ! 🚀

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published