[Joe Wingbermuehle] a un intérêt pour les anciens ordinateurs et une certaine expérience passée de la construction d’ordinateurs sur perfboard à partir de transistors discrets, donc ce prochain projet, Q2, est une implémentation complète d’un micro-ordinateur de type PDP8 sur un seul PCB. Comme le DEC PDP-8, il s’agit d’une machine 12 bits, mais au lieu de la logique diode-transistor du DEC, le Q2 sensiblement plus petit utilise une approche NMOS simple. De plus, le DEC a une mémoire centrale, mais le Q2 a recours à une paire de circuits intégrés SRAM, simplement parce que qui veut de toute façon créer des structures de mémoire répétitives avec des transistors 2N7002 discrets ?
Comme le PDP-8, cette machine utilise une ALU à tranches de bits, ce qui permet au circuit d’être beaucoup plus petit que la structure ALU plus habituelle, au détriment de la nécessité d’un cycle d’horloge par bit par opération, c’est-à-dire qu’une seule opération ALU prendra 12 cycles d’horloge. Pour cette machine, le temps de cycle d’instruction est de toute façon de 8 ou 32 horloges, et à une vitesse maximale de 80 kHz, ce n’est pas exactement rapide (et nettement plus lent qu’un PDP-8) mais c’est très petit. Petit et parfaitement formé.
La machine est construite à partir de 1094 transistors, avec une logique dans une configuration NMOS, utilisant des résistances pullup de 10 K. Ce n’est pas un moyen rapide de construire un circuit, mais c’est très compact. En regardant la sortance logique, [Joe] repéré les zones avec de grandes sorties et réduit les résistances de rappel de 10 K à 1 K. Cela a été fait afin de maintenir le délai de propagation dans les limites du temps de cycle sans consommation d’énergie excessive. Le courant d’alimentation a été maintenu en dessous de 500 mA, permettant à la carte d’être alimentée à partir d’un connecteur USB. Intelligent!
La mémoire est fournie par deux SRAM 6264 sauvegardées par batterie, avec les quatre registres à usage général 12 bits construits à partir de transistors discrets. Un écran LCD à bord est une touche agréable, augmentant les commutateurs du «panneau avant» utilisés pour l’entrée de programme et l’entrée de l’utilisateur. Un en-tête à 40 broches a été ajouté, pour la programmation via un Raspberry Pi au cas où les commutateurs de programmation du panneau avant se révéleraient un peu fastidieux et sujets aux erreurs.
En termes d’écriture de projet, il y a beaucoup à voir, avec un modèle Verilog disponible, un langage de programmation personnalisé [Joe] appelle Q2L, complet avec un compilateur et un assembleur (écrit en Rust !) même un simulateur Q2 en ligne ! Beaucoup de démos sympas, comme Snake. Game of Life et même Pong, ajoutent de très belles touches. Super truc!
Nous avons présenté de nombreux projets similaires au fil des ans; en voici une belle, une très petite 4 bits, et une vraiment Un gros.