[TO8] CPU et Fréquence

Placez ici vos trucs et astuces, étalez sans retenue votre savoir-faire et votre science qui va nous permettre de redonner une apparence neuve et fonctionnelle à nos bouzes.

Modérateurs : Papy.G, fneck, Carl

CrossmanBx
Messages : 142
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

Je vois ce que tu veux dire Hlide.
Par contre, Qin doit précéder Ein. Quand on lit la datasheet du 6809, il est écrit que Q lead E.
Je refais quelques test cet aprem.
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [TO8] Remplacement CPU

Message par hlide »

Attention je réalise qu'il y a une différence entre le CoCo 3 et TO8 ! Pour le CoCo 3, le E et Q in sont à 2 MHz et la fréquence burst à 17,18 MHz (autant simplifier à 16 MHz), ce qui nous donne un ratio de 8 cycles pour un cycle - ce que j'ai représenté avec les timing wavedrom.

Pour le TO8 qui fait du 1 MHz, il nous faudrait maintenir ce ratio de 8 cycles pour un cycle et donc plutôt du 8,59 MHz.

Pourrait-on passer à du 16 cycles pour 1 cycle ? ça ne fonctionnera pas parce que le compteur va revenir à 0 au bout du huitième cycle et E in et Q in ne seront plus respectivement à 1 et 0. Il faudrait des multiplexeurs 16 vers 1 à la place des 8 vers 1. Et trouver un compteur 4-bit qui a un CARRY utilisé à la place du bit 3. Beaucoup de complication pour faire du 4 MHz.
Sappas
Messages : 669
Inscription : 02 oct. 2022 18:11

Re: [TO8] Remplacement CPU

Message par Sappas »

Bien bien, de la discussion naît la lumière, n'ayant qu'une connaissance élémentaire de l'algèbre de Boole, je comprends toutefois votre méthodologie, un binôme est né !
Bravo
CrossmanBx
Messages : 142
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

Tu as raison Hlide, le coco3, poké, a un bus à 2MHz, même 1,79MHz d'ailleurs.
Ton raisonnement est très bon, on va rester à viser 2MHz en BURST pour l'instant.
Ce matin, j'ai recablé le Reset du HCT393, mais ca n'a rien changé.
Du coup, j'ai mis à la place le HC161 (sans le T).
Le recablage m'a pris un peu de temps, mais plus rien ne fonctionne maintenant, je n'ai pas de clock au niveau de générateur (Reste à 1).
Du coup forcément, pas de vie pour le reste.
Mon "Ein" et mon "Qin", venant du gate sont OK.
AVMA reste à 1 et BA à 0
A la sortie du compteur (qui ne compte pas donc), je suis bloqué à Q0=1 Q1=0 Q2=0 et Q3=0.
Il me semble pourtant que Ein et Qin devraient être envoyés à Eout et Qout. Mais je n'ai pas d'affichage.

Faut que je regarde de plus près comment câbler le HC161. J'ai mis en dur TE, SPEbarre et PE à 1. J'ai peut-être un bleme là.
J'ai aussi un blème côté du socket de la CM, j'ai commandé un support d'essai qui sera bien plus costaud.

Par contre, je vais perdre mon oscillo pour la semaine, et ça c'est pas cool ;)
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [TO8] Remplacement CPU

Message par hlide »

Première chose : assure-toi que le générateur d'horloge synchronisée donne une fréquence correcte.

Voici comment il fonctionne : tu as deux entrées sur la porte AND. L'une sert à activer (1) ou désactiver (0) l'oscillation et l'autre sert de feedback pour l'inversion de la sortie (ce qui crée l'oscillation). Si on considère qu'il y a un délai entre la prise en compte d'une entrée et son application sur la sortie des composants AND et NOT (disons 15 ns pour donner un exemple), le feedback en entrée prendra donc 4 x 15 ns, soit 60 ns pour inverser la sortie (16.666666666667 MHz). La valeur de la capacité et celle de la résistance vont devoir être choisies pour ramener cette fréquence à du 8,59 MHz.
CrossmanBx
Messages : 142
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

Quelques news du front, vraiment pas terrible.
J'ai déja perdu du temps car j'avais inversé le sens d'un circuit inverseur. Je me demande pourquoi sur un CI, on trouve une encoche et un point, à l'exact opposé, complètement naze ça. Enfin bon...
Je n'arrive pas à avoir une fréquence correcte à l'entrée du clock du 4Bit counter.
Je n'ai pas mon oscillo ce weekend, mais j'avais commandé une analyseur logique, bien utile pour surveiller plusieurs voies à la fois.
J'ai pris celui sur amazon, seulement 16€, ce qui me fait bien entendu douter de ses perfos.

Voilà ce que j'obtiens :
Conditions :
Résistance Clock generator proche de 0
TO8 fonctionne
Pas de clock en entrée HC161
On peut voir que la grosse porte AND fait son office de trigger
Pièces jointes
Sans clock.png
Sans clock.png (82.06 Kio) Consulté 1584 fois
CrossmanBx
Messages : 142
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

Maintenant, quand je fais augmenter la valeur de R,
Un signal clock s'anime à un certain point de R, mais il n'est pas régulier.
J'aimerai bien sûr le vérifier à l'oscillo, mais je n'en ai pas ce weekend.
Le TO8 plante bien sûr lamentablement :
Pièces jointes
Avec clock.png
Avec clock.png (93.41 Kio) Consulté 1580 fois
Dernière modification par CrossmanBx le 26 mars 2023 15:55, modifié 1 fois.
CrossmanBx
Messages : 142
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

On peut voir que Qout se prend bien un front montant et descendant de plus, ce qui est un peu encourageant, mais Eout n'est pas encore terrible.
Il est très compliqué de trouver les valeurs de capacité et résistance adéquats.
Concernant la capacité, j'ai testé bcp de valeurs entres 50pF et 700pF.

J'aimerai avoir une valeur très stable du clock du compteur, une belle sinusoide numérique, mais je n'y arrive pas et comprends pas pourquoi.
Je pensais que c'était peut-être normal vu qu'il y a plusieurs conditions avant.
Pour pallier à cela, j'ai mis à "1" l'entrée de la porte AND (pas celle du feedback) du clock generator. Cela devrait avoir pour effet de desactiver les conditions en amont.
Malgré cela, la fréquence n'est pas synchrone. Pourquoi, je sais pas... Faudrait peut être voir pour disposer d'un générateur de fréquence plus précis que celui proposé par Sockmaster...

So, work in progress.....
Et par la même occasion, je change le titre du topic, qui ne correspondait plus réellement à celui-ci.
CrossmanBx
Messages : 142
Inscription : 25 oct. 2022 13:54

Re: [TO8] CPU et Fréquence

Message par CrossmanBx »

Un peu de mieux.
J'ai repensé différemment le clock generator, il est maintenant plus en adéquation avec les circuits cmos.
On peut se rendre compte qu'au trigger généré par la porte AND, le générateur de fréquence se met en action pour 8 cycles.
Cela correspond bien au fonctionnement du compteur 4bit, avec un reset pour #1000b.

Maintenant, à moi la joie de trouver le bon couple résistance/condensateur.
Hlide voyait une fréquence de 8,59MHz, Sockmaster calcule de son côté 9,48MHz.

Il me faut un oscillo, l'analyseur logique n'est pas assez précis.

Faut aussi que je fasse un bon compte rendu de ces avancées à Sockmaster (en anglais ! 😭🤣🤣).
Pièces jointes
27032023.jpg
27032023.jpg (110.19 Kio) Consulté 1508 fois
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [TO8] CPU et Fréquence

Message par hlide »

Attention, je n'avais fait que de diviser par 2 la fréquence qui était donnée sur le schéma. Il faudrait que Sockmaster nous explique pourquoi et comment il calcule cette fréquence.
CrossmanBx
Messages : 142
Inscription : 25 oct. 2022 13:54

Re: [TO8] CPU et Fréquence

Message par CrossmanBx »

Il n'y a aucun soucis Hlide, je partais sur la même valeur également. Je lui demanderai comment il arrive à ce résultat.
En attendant, je jonglerai entre ces 2 valeurs +/- 10%.
dundee
Messages : 1
Inscription : 01 mai 2023 19:30

Re: [TO8] CPU et Fréquence

Message par dundee »

Hi everyone,

I noticed the interest in my Turbo9 project! The project is alive and well. I will be making a beta release soon. I have a few academic priorities to complete in the short term, but I am committed to the project long term. The project goal is to build a modern high performance and efficient microprocessor IP that is desirable for today's SoC's and Mixed signal ASICs. I think the 68/65xx style architecture has ignored potential that is demonstrated by the Turbo9's performance and efficiency benefits vs the modern 32-bit RISC solutions. I am targeting current applications for the Turbo9 and modern ASIC design methodologies, but I have to give credit to all the retro-computer enthusiasts that have kept this architecture alive. I am happy to support anyone who wishes to use the Turbo9 in their retro projects.

Subscribe to the Turbo9 youtube channel for future updates:
https://www.youtube.com/channel/UChAQFt ... -6iWMmtY0g

Also, here is a link to my master's thesis:
https://ufdcimages.uflib.ufl.edu/UF/E0/ ... pson_K.pdf

Best regards,
Kevin
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [TO8] CPU et Fréquence

Message par hlide »

Hop, je remonte le sujet pour savoir où en est ce projet de 6309@4MHz (ou plutôt 2MHz). J'ai l'impression que c'est dans l'impasse depuis.

Pour avoir travaillé sur le Teensy4.1 et l'émulation Z80, je songeais à une émulation du 6309. Ce n'est qu'une idée car il me manque des informations pour le commencer. Je pars dans l'idée que si on peut gérer les 512 Ko de RAM virtuellement par le Teensy en ne gérant que les accès à la mémoire vidéo (est-elle partagée avec la RAM ou séparée ?) et aux contrôleurs par le bus externe, alors on peut obtenir une accélération substantielle car les instructions lues à partir de la RAM virtuelle ne sont pas sujet à la limitation de fréquence de E/Q - de même que pour les lectures de variables statique ou locales (pile). Pour l'écriture, tout dépend si la vidéo se partage la RAM. Si oui, alors la RAM virtuelle se comportera comme un cache write-through en écriture (écriture en interne ET sur bus extérieur à la fréquence de E/Q), sinon c'est comme pour la lecture, aucune synchro nécessaire avec E/Q.

Du coup, à ce que je vois on aurait trois variantes : 6809, 6309 et Turbo9.

J'ai regardé Turbo9 (sur GitHub) et j'ai un peu de mal à en extraire des informations sur le jeu complet d'instructions pour me dire si c'est le plus intéressant à implémenter. D'autre part, il ne me donne pas l'impression qu'il implémente les instructions spécifiques aux 6309.

Je recherche des sources d'émulateurs 6309 pour évaluer la difficulté à écrire un pour le Teensy. Donc si parmi vous, il y a des experts pour me conseiller, je suis tout ouï.

Dans un premier temps, je souhaite le développer en stand-alone (sans accès au bus externe) indépendamment de la partie hardware (PCB à insérer dans le socle sur la carte-mère ou PCB à connecter sur le bus d'extension de la machine). Néanmoins, j'aurais quand même besoin de connaître les détails sur les cycles du bus externe pour le reproduire fidèlement dans un mode legacy (non accéléré). Le Z80 spécifie bien les diagrammes des signaux pour les différent cycle-M et T-state des instructions mais j'ignore si on a l'équivalence de ce type de diagramme pour les instructions du 6309.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [TO8] CPU et Fréquence

Message par __sam__ »

A mon avis oublie le 6309 pour le TO8: rien, ni personne ne l'utilise en pratique (ya juste quelques expériences, mais rien de plus).

La ram vidéo est une ram standard pas isolée des autres (on peut même faire afficher certaines des banques RAM physiques), mais truc important sur les thomson et le 6809E (ici le E est important): la ram et l'écran sont rafraichis pendant les phases non actif du CPU par le gate-array. Gate-array, Ram et CPU sont donc intimement liées. Tout est décrit dans les pages du manuel technique des TO8, TO9 et TO9+.
Capture.PNG
Capture.PNG (241.87 Kio) Consulté 376 fois
Le point central de l'architecture mémoire et vidéo est le gate-array sur TO8. Le CPU n'accède pas à la RAM directement, mais via le gate-array qui s'occupe d'une forme de memory-mapping (recouvrir l'espace cartouches par de la ram, la verrouiller en écriture, afficher d'autres pages ram pour la vidéo, banking des pages ram pour le cpu). En revanche le cpu accède directement aux zones d'I/O et moniteur ROM ($E000->$FFFF)
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [TO8] CPU et Fréquence

Message par hlide »

Organisation en adresse logique (et non physique !) de la RAM (256 Ko + extension 256 Ko) dans TO8:
$4000-$5F3F : RAM écran A, 8 Ko (forme) -> pas de mention de banque, donc sur quelle adresse physique de la page 16 Ko de la RAM ?
$5F40-$5FFF : RAM écran B, 8 Ko (couleurs) -> pas de mention de banque, donc sur quelle adresse physique de la page 16 Ko de la RAM ?
$6000-$60FF : RAM moniteur, page 0 (256 o) -> Le DP du 6809 pointe ici pour les données système du moniteur en ROM, j'imagine.
$6100-$9FFF : RAM, non commutable -> Probablement la première page physique de la RAM ?
$A000-$DFFF : RAM données (14 pages de 16 Ko) -> Quelles sont les adresses physiques de ces pages ?

Ok, en page 41 (adresse physique) : RAM écran A et RAM écran B sont localisés sur des puces physiques donc j'ai l'impression que même si c'est dans la même RAM, on peut les voir séparer de la RAM logiquement.

En d'autre terme, si le CPU tente d'accéder en $4000-$5FFF, on passe par un cache write-thru pour accéder à la RAM interne du Teensy (ou on fait directement de l'accès en bus externe et on n'utilise pas la RAM interne mais c'est moins performant en lecture), sinon en $6000-$DFFF, on accède directement à la RAM interne après une conversion de l'adresse logique en adresse interne avec prise en compte du système de banque. Donc, il y a moyen de faire un accélérateur sympathique qui puisse s'affranchir des contraintes du GATE-ARRAY.

Ce que je lis en résumé : lorsque E = 0, l'automate prend le relai pour assurer le rafraichissement de la mémoire écran et des autres rams. Etant donné que E et Q continuent d'osciller à la fréquence d'origine, cette fonction est assurée. Si la mémoire écran est mise en cache write-thru, seule la tentative d'écriture devra attendre un E = 1 pour opérer. Quand aux autres rams, ben en fait, on n'y accède jamais car elles sont gérés en interne par le Teensy à la vitesse de ce dernier (jusqu'à 816 MHz).
Répondre