Introduction
La conception d'une calculatrice FPGA de scratch est un projet complexe qui nécessite une compréhension approfondie de l'électronique et de la programmation. L'idée de ce projet est née lors d'une panne de courant en février 2021 à Austin, au Texas. L'auteur a décidé de créer une calculatrice similaire à l'HP-41CV en utilisant une carte de développement FPGA.
Contexte Technique
Le projet a commencé par une phase de recherche et de développement, appelée « pathfinding », pendant laquelle l'auteur a exploré différentes approches et a construit des outils pour comprendre les mécanismes de la calculatrice. Il a découvert que les fonctions trigonométriques et logarithmiques pouvaient être calculées à partir des opérations de base d'addition, soustraction et multiplication. L'auteur a également mis en place un cadre de travail pour tester le matériel qui n'existait pas encore, en utilisant des outils tels que ModelSim, Verilator, Qt et WebAssembly.
Analyse et Implications
Le projet a impliqué la conception d'un processeur spécialisé avec une architecture de mémoire et des modes d'adressage conçus pour traiter des nombres à 16 chiffres. L'auteur a également écrit le microcode de la calculatrice, y compris les fonctions arithmétiques et un interpréteur de script. Le projet a nécessité la création d'un environnement de débogage avec des points d'arrêt et une inspection des registres. Les résultats ont montré que la calculatrice fonctionnait correctement, mais avec des limitations, notamment en termes de précision.
Perspective
Le projet a été un succès, avec une calculatrice scientifique fonctionnelle conçue à partir de zéro. Cependant, il y a encore des limites à surmonter, notamment en termes de précision et de satisfaction de l'utilisateur. L'auteur a souligné l'importance de la phase de recherche et de développement et de la création d'un environnement de débogage pour le succès du projet. Le projet a également montré que la conception d'une calculatrice FPGA de scratch est possible avec des outils et des ressources limités.