Réagissez sur le BLOG!
1) GENERALITES
1.1) Le principe du projet
A2Z computer, c’est un ordinateur imaginé, conçu et réalisé de A à Z par moi-même. D’où son nom !
C’est un projet didactique, qui a pour objectif d’apprendre et de maitriser tous les aspects d’un ordinateur, de A à Z. C’est un ordinateur très simple et peu performant (CPU 16bits 25MHz, RAM 2Mo), peu évolué, mais quand même utilisable.
Tout est imaginé, inventé, conçu et réalisé par mes propres soins. Je n’ai rien repris de projets existants, pas une seule ligne de code, et ce dans les 3 langages utilisés pour ce projet : Verilog, C, A2Z_Basic.
Je n’ai pas non plus cherché à « porter » un code open source existant, l’objectif est réellement de tout créer en partant de zéro, d’une feuille blanche.
La seule chose que j’ai copiée, c’est la police de caractère, qui aurait été fastidieuse à créer à la main pixel par pixel.
Tout le code fourni est OPEN SOURCE.
La liste des travaux réalisés pour arriver à un ordinateur complet :
- Un CPU 16bits fait maison sur un FPGA, en langage Verilog. Le CPU a son propre jeu d’instruction RISC, inventé par mes soins.
- Des périphériques conçus et codés également en Verilog : VGA, interface SPI (pour mémoire Flash), interface clavier PS/2 et port série. J’ai également codé les « drivers » associés (fonctions bas niveau).
- Assembleur : un langage assembleur inventé, qui colle au mieux au jeu d’instruction spécifique, et un logiciel assembleur codé par mes soins en C
- Compilateur croisé, conçu et codé de A à Z par moi-même, en langage C. Ce compilateur prend en entrée du code en langage A2Z_Basic, un langage inventé par mes soins, à mi-chemin entre le Basic et le C. Le compilateur est pour moi la partie la plus complexe du projet.
- Système de fichier simple, sans gestion de fragmentation, inventé de toute pièce.
- En guise d’OS, j’ai codé un gestionnaire de fichier très simple, qui est capable de manipuler les fichiers et dossiers, d’appeler les programmes, d’ouvrir des fichiers.
- Quelques logiciels : éditeur texte, visualisateur d’images, visualisateur de carte raster, et jeu de voiture.
- Un émulateur sur PC, qui permettra peut-être à d’autres personnes de reprendre mes bidouilles.
Ce projet n’imite aucun
ordinateur ou CPU existant. C’est
vraiment le produit de mon imagination.
Ca n’est donc pas un projet « vintage » à la base, même si le résultat y ressemble.
Ce projet utilise par
contre des outils
« modernes », et ne tente pas d’imiter le travail des
pionniers de la
micro-informatique (dont l’idole de beaucoup de nerds : Steve
Wozniac) qui
travaillaient avec très peu de moyens.
Comme « outil moderne », j’utilise :
- Un PC comme outil de développement
- Un FPGA (ALTERA Cyclone 4) et sa chaine de développement
- Un analyseur logique
- La chaine d’outils sur PC (compilateur croisé,
assembleur, émulateur) est créée par mes soins avec l’aide d’un vrai
compilateur C/C++ (Visual Studio)
C’est aussi mon tout
premier projet sur FPGA, j’ai appris le
Verilog en autodidacte pour l’occasion, mes connaissances sont encore
perfectibles sur le sujet.
Donc si vous recopiez ça
tel quel pour un projet d’étude,
vous n’aurez pas forcément une bonne note !
Ce site web est à la fois
une description de mes travaux, de
tous les sujets abordés, mais c’est aussi un guide d’utilisation, dans
le cas
où vous voudriez reprendre et compléter le projet. Je pense que c’est
très peu
probable, mais bon…
J’ai essayé de documenter
ce projet un minimum sur ce site.
Mais il manque probablement des informations essentielles à la
compréhension ou
à l’utilisation de certaines parties.
N’hésitez pas à me les
signaler !
Contact
: f4hdk [at] free.fr