SOMMAIRE

 

1) GENERALITES 
1.1) Principe du projet
1.2) Caractéristiques
1.3) Ma vision du projet

2) HARDWARE
2.1) Carte de développement
2.2) Verilog, schéma global
2.3) Verilog, coeur CPU
2.4) Verilog, Vidéo VGA
2.5) Verilog, périphériques

3) OUTILS DEVELOPPEMENT SOFTWARE
3.1) Généralités
3.2) Langage A2Z Basic
3.3) Compilateur
3.4) Assembleur
3.5) Autres outils
3.6) Emulateur sur PC

4) LES LOGICIELS A2Z
4.1) Le Boot
4.2) Système fichier & OS
4.3) Editeur texte
4.4) Image viewer & map viewer
4.5) Le jeu : Micromachines

Blog (hackaday.io)

1.3) Ma vision du projet

C’est un projet passionnant. Franchement.

C’est un projet très varié, vu tous les sujets abordés. J’ai énormément appris. J’ai découvert le Verilog pour l’occasion, et j’ai appris à concevoir puis coder un compilateur. Je me suis vraiment creusé la cervelle.


Maitriser tout de A à Z, tous les aspects d’un ordinateur, même très simple, ça apporte une certaine saveur au projet, et une grande satisfaction.
En fait, c’est un projet dont je rêve depuis que je suis tout gamin : comprendre dans le détail comment fonctionne un ordinateur, de A à Z, et si possible en concevoir un, et le réaliser soi-même de A à Z.

Ce projet a nécessité de coder dans 3 langages différents : Verilog, C, et mon langage A2Z_Basic. Ce jonglage est un bon exercice intellectuel auquel je n’étais pas habitué.

Il faut vraiment bien organiser, découper et documenter son projet. Il est facile d’être perdu…
Attention, c’est un projet de longue haleine, qui prend beaucoup de temps. Il faut en avoir conscience avant de se lancer.

Mais même si c’est un projet long, c’est faisable. Une fois que le projet est découpé en plein de petits morceaux (le cœur, les périphériques, l’assembleur, le compilateur, le système de fichier, etc…), chaque portion est relativement simple ; sauf pour le compilateur qui est clairement la partie la plus complexe, et qui nécessite de cramer plus de neurones...

Mais surtout, une fois qu’une partie est codée, débuggée, et qu’elle est fiable, alors elle est acquise, on l’oublie totalement, et on passe ensuite à la couche supérieure. C’est cet empilement de couches, d’abstractions, qui fait qu’on arrive à un résultat complexe, à partir de briques relativement simples.
Bien évidemment, coder une nouvelle partie, ça fait souvent ressortir les bugs insoupçonnés de la strate d’en dessous. Mais on arrive tôt ou tard à avoir 100% confiance en une strate, et dont on ne se préoccupe plus, tout en sachant qu’elle existe et comment elle fonctionne.
Réussir cet empilement de couches, pour faire un ordinateur réellement utilisable, ça donne vraiment une grande satisfaction.

Je suis vraiment fier d’avoir réalisé ce projet de A à Z, tout seul, comme un grand.

F4HDK| Janvier 2017
f4hdk_arob_free.fr