Bravo 8bit computer : assembler et comprendre son propre ordinateur 8bits

Bonjour,

Si le fonctionnement interne d'un ordinateur vous intéresse alors le projet "Bravo 8Bit Computer" vous intéressera au plus haut point.
J'ai dégoté un sérieux projet que je suis par ailleurs depuis plusieurs semaines :-)

Bravo 8 Bits computer

On y apprend comment re-créer un ordinateur en partant de rien avec des composants logiques!
On y découvre: 

  • le bus de données, 
  • le bus d'adresse, 
  • le génération du signal d'horloge, 
  • le Program Counter, 
  • les registres A & B,
  • Les différents signaux de gestion
  • Le registre d'instruction, 
  • l'unité Arithmétique et logique (ALU),  
  • les opérations au niveau binaire/bus,
  • le MicroCode en ROM, sortie, etc
  • Avec cartes, schéma et explications en vidéo!
8Bits bravo Computer project

Spécification du projet

Le but est d'arriver à un système CPU minimaliste dont en voici les caractéristiques fixée par son créateur:

  1. S'efforcer d'avoir une conception claire et la plus simple possible!
  2. Architecture Von-Neumann (Wikipédia)
    Un ordinateur dont le programme est stocké dans sa mémoire)
  3. Bus de données 8 bits
  4. Bus d'adresse 16 bits 
  5. 64 instructions incluant branchement conditionnel, sous-routine, pile et opération sur les mots (Word, 16 bits).
  6. 32 KB RAM
  7. Horloge configurable (jusqu'à 3.6 MHz)
  8. Interface UART
    • affichage terminal
    • entrée clavier
    • Entrée/sortie données
    • Téléversement
  9. 512 KB Flash ROM & SSD
    Permet d’accueillir
    • OS (système d'exploitation)
    • Outils logiciels
    • Demo
    • Jeux
  10. Système de fichier SSD
  11. 16 signaux de contrôles gérant le fonctionnement et opérations sur l'ordinateur.
  12. 2 registres A et B
  13. Unité Arithmétique et Logique (ALU)
    • Adder (addition)
    • Support nombre négatif (donc soustraction)
    • 3 Flags: Negatif Flag, Carry Flag (report), Zero Flag
  14. Empilable par conception
    • Carte de 290 x 120mm
    • Logique TTL 74HCxx
    • Les composants également disponibles au format CMS
    • Permet d'ajouter des modules complémentaires avec un adressage via un espace mémoire arbitraire.

En complément l'auteur à prévu les fonctionnalités avancées suivantes:

  • Editeur de texte natif
  • Assembleur natif
  • Cross-Assembler (Win10 ou Python) pour faire du copier/coller facilement depuis le terminal.
Source: cette vidéo Youtube

Architecture Von-Neumann

CC BY-SA 3.0 - Chris-martin - Wikipedia.org
L'architecture Von-Neumann est celle qui est encore employée aujourd'hui dans nos ordinateurs où le programme a exécuté est également stocké dans la mémoire de l'ordinateur.
  • L'unité arithmétique et logique s'occupe des opérations de base.
  • L'unité de contrôle prend en charge l'exécution des séquences d'instructions (c'est un peu comme le coordinateur)
  • La mémoire permet de stocker à la fois les données du programme et le programme lui-même.

Pour pourrez trouver des informations complémentaires et exemples instructifs sur l'article "Architecture de Von Neumann" publié sur monlyceenumerique.fr .

Evolution

Ce projet est basé sur ordinateur 8 bits de Ben Eater dont la capture est reprise ci-dessous:

ordinateur 8 bits de Ben Eater

Puis il est passé par une première version sur carte modulaire, encore un peu envahissant mais permettant déjà de tester la transposition de breadboard vers des cartes (modules) plus facilement à assembler.

Les prémisses du projet "8Bits bravo Computer"

Puis le projet "8bit Bravo projet" tel qu'il est connu aujourd'hui!
Un projet modulaire et évolutif --- les différents éléments pouvant être améliorés! Ce qui est déjà le cas par rapport au projet de Ben Eater.

8Bits bravo Computer project
Vue en gros plan sur le bus et différents modules (dont un UART en rouge)

La grande idée du projet

La constitution modulaire et empilable est déjà, en soi, une excellent idée.

Mais ce qui fait la différence, c'est le test systématique de de chaque module un fois celui-ci assemblé.

Les tests sont conduits à l'aide d'un Arduino Mega et de croquis/skecths écrit pour tester chacun des modules.

8Bits bravo Computer project
Module Arduino Mega utilisé pour tester/vérifier
les fonctionnalités des modules assemblés

L'Arduino Mega dispose d'assez de broches d'entrées/sorties pour contrôler tous les bus et tous les signaux logiques (associés au bus).

En vidéo

Prenez le temps de visiter (et vous abonner) à la chaîne YouTube Config I0I pour consulter les premières 7 premières vidéos du projet.

Ressources

où acheter

Ce kit est disponible sur www.8bitkits.com

Aucun commentaire