[Z80] Recréation du circuit électronique MCLZ8 souhaitable ?

Pour parler de toutes les réalisations récentes qui ne sont pas directement destinées à être utilisées avec une machine (ou une catégorie de machines) précise.

Modérateurs : Papy.G, fneck, Carl

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

Re: [Z80] Recréation du circuit électronique MCLZ8 souhaitable ?

Message par hlide »

Le firmware de MCLZ8 que l'on programme contient un émulateur de Z80 qui se synchronise avec le bus Z80. Même principe qu'un PiStorm mais sans la nécessité d'un CPLD pour connecter un RPI au bus 68000, juste des tampons rapides pour convertir des signaux 5 V en 3,3 V.

Le PC n'a rien à avoir avec l'émulation du Z80. La connexion du câble USB n'est absolument pas nécessaire à son fonctionnement. Moi je le laisse car j'en ai besoin pour mettre à jour le firmware ou tracer ce qu'il fait. Mais il peut très bien être inséré dans le socle Z80 pour remplacer le Z80 et fonctionner comme un Z80 sans utiliser l'USB.

La beauté de ce Teensys 4.1, c'est qu'il a un lecteur/enregistreur µSD, un port USB qui permet de gérer jusqu'à trois connexions séries simultanées (je n'en utilise qu'un comme terminal pour tracer), permet d'étendre la mémoire jusqu'à 16 Mo en PSRAM ou FLASH en soudant un ou deux puces QSPI (option mémoire de stockage supplémentaire qui transforme le Teensys en une clé USB), etc. le tout sans interférer avec les broches de la rangée (pratiquement toutes utilisées pour le bus Z80 à l'exception de 4 restantes).

Je l'adore car c'est rare qu'un microcontrôleur n'impose pas beaucoup de contrainte dans son utilisation.

Pour une personne qui ne souhaite que le fabriquer et l'utiliser comme Z80 sur une machine, il n'aura qu'à installer le logiciel de téléversement de firmware sans passer par l'environnement Arduino. Ce dernier reconnaîtra automatiquement une connexion USB sur le Teensys : il suffira juste de sélectionner le firmware sous forme de fichier .hex fourni par le développeur. Donc il suffit de disposer du firmware adapté à la machine ou un firmware qui se contente d'émuler le Z80 sans les fioritures et de mettre à jour le Teensys 4.1 via USB tout au début.
Dernière modification par hlide le 23 mars 2023 22:39, modifié 1 fois.
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [Z80] Recréation du circuit électronique MCLZ8 souhaitable ?

Message par hlide »

Notator a écrit : 23 mars 2023 22:03 Et si jamais il pouvait tourner plus vite que le Z80 d'origine, pas sûr que les circuits derrière arriveraient à suivre (s'il faut rajouter plein de wait states pour que notamment les mémoires puissent suivre, où est l'amélioration ?). :wink:
En mode 3, il tourne entre 10 et 20 fois plus rapidement d'après l'auteur - on est largement au delà de 20 MHz à minima (Z80 du TRS 80 III est à 2.08 MHz) . Par contre, je n'imagine pas faire du 100 MHz en équivalence. Seul les accès aux registres des périphériques doivent passer par le bus Z80 or ce n'est probablement pas la majorité des instructions exécutés par le Z80. De plus, on parle juste de 3 cycles Z80 (accès à un registre I/O type mémoire) ou 4 cycles Z80 (accès à un registre I/O type port) alors que le reste des T-states des instructions sont exécutés sans synchro donc au plus vite de ce que peut faire le processeur ARM. Je rappelle que le K64 (l'ARM qui équipe le T41) est de base à 600 MHz, peut monter jusqu'à 816 MHz sans refroidissement ou 1 GHz avec refroidissement (je ne sais pas quel type en revanche). Le Cortex ARM en question peux exécuter jusqu'à deux instructions ARM en un cycle.
Dernière modification par hlide le 24 mars 2023 00:36, modifié 1 fois.
Bernouilli92
Messages : 1254
Inscription : 24 déc. 2021 09:46
Localisation : Région parisienne

Re: [Z80] Recréation du circuit électronique MCLZ8 souhaitable ?

Message par Bernouilli92 »

J'avais notamment lu qu'on pouvait, en utilisant le teensy, exécuter un code directement depuis le teensy sans exécuter le code de la rom, on peut ainsi tester la mémoire du hôte et trouver quelle puce est défectueuse. Ou d'autres usages peuvent être trouvés.
Personnellement je suis intéressé par cela car j'ai une machine qui un problème de ram et beacoup de puces ram à dessouder si je veux trouver la bonne, ou plutôt la mauvaise.
Notator
Messages : 1286
Inscription : 09 août 2015 20:13

Re: [Z80] Recréation du circuit électronique MCLZ8 souhaitable ?

Message par Notator »

Hlide, oui effectivement, il peut tourner vite, mais avec des contraintes sérieuses, qui sont de ne plus se soucier de la véracité des timings, et en prenant aussi à son compte les bouts de RAM et ROM qui lui sont nécessaires pour le test de rapidité :

"When the Z80 cycle-accuracy is disabled and portions of the motherboard RAM and ROM are emulated inside of the Teensy’s 800 Mhz internal RAM it appears to yield a more than 15X speed boost over the stock Z80 in the TRS-80 Model III."
Notator est le nom d'un programme séquenceur Midi et notation musicale pour Atari ST(e) (puis Mac).
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [Z80] Recréation du circuit électronique MCLZ8 souhaitable ?

Message par hlide »

Bernouilli92 a écrit : 23 mars 2023 20:39 Et avoir ainsi un remplacement du z80, avec certaines améliorations.
La première fois que j'ai parlé du MCLZ8, c'est ici : viewtopic.php?f=32&t=13991
J'avais alors une idée en de ce que je voulais faire : une sorte de Z280 100% compatible Z80 que l'on pourrait placer dans n'importe quelle machine de base Z80. Je ne suis même pas sûr que je vais revenir au RP2040 finalement.
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [Z80] Recréation du circuit électronique MCLZ8 souhaitable ?

Message par hlide »

Bernouilli92 a écrit : 23 mars 2023 22:52 J'avais notamment lu qu'on pouvait, en utilisant le teensy, exécuter un code directement depuis le teensy sans exécuter le code de la rom, on peut ainsi tester la mémoire du hôte et trouver quelle puce est défectueuse.
Oui, j'ai fait ça pour mon MZ-80 K. Je n'ai plus de capture de ce test DRAM (que j'activais via un fichier sur µSD) mais j'ai aussi l'IPL au lancement qui est en fait un programme ARM qui gère directement l'accès au bus Z80 pour effectuer quelques choix avant lancer l'émulation du Z80.
MZ-80K-tZ80-IPL.jpg
MZ-80K-tZ80-IPL.jpg (133.46 Kio) Consulté 2294 fois
P.S.: celui qui connaît bien le MZ-80 K froncerait ces sourcils à la vue de cet écran : comment diable un écran monochrome peut afficher une variation de blanc ? ben le programme affiche deux trames différents à 60 Hz créant cette illusion de niveau de blanc. "Hein ? tu affiches 60 images par seconde sur tout l'écran et tu n'as pas les effets de neige si caractéristiques sur cet ordinateur !?". Euh, oui, j'ai 1000 caractères à l'écran et je n'ai besoin que deux cycles Z80 pour écrire un octet dans la VRAM : j'ai donc le temps de dessiner durant le blanc vertical de l'écran. Si c'était le Z80, j'aurais 21 cycles par octet (LDIR).
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [Z80] Recréation du circuit électronique MCLZ8 souhaitable ?

Message par hlide »

Notator a écrit : 23 mars 2023 22:56 [...] mais avec des contraintes sérieuses, qui sont de ne plus se soucier de la véracité des timings, et en prenant aussi à son compte les bouts de RAM et ROM qui lui sont nécessaires pour le test de rapidité
Effectivement, mais on ne peut pas avoir le beurre et garder l'argent. Dès lors que tu souhaites t'affranchir des contraintes naturelles de la machine, tu as nécessairement une adaptation du MCLZ8 à la machine cible à faire (utiliser le bon firmware).
Notator
Messages : 1286
Inscription : 09 août 2015 20:13

Re: [Z80] Recréation du circuit électronique MCLZ8 souhaitable ?

Message par Notator »

Oui, nous sommes bien d'accord. :)

Je précisais ça juste pour les lecteurs hâtifs, qui pourraient s'imaginer remplacer le Z80 par un MCLZ8 dans leur bécane, et ensuite pouvoir la faire tourner en mode Speedy Gonzales TGV ! :lol:
Notator est le nom d'un programme séquenceur Midi et notation musicale pour Atari ST(e) (puis Mac).
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [Z80] Recréation du circuit électronique MCLZ8 souhaitable ?

Message par hlide »

Alors je chipote peut-être ? j'aimais bien le fait que l'on pouvait connaître les états de CLK, /NMI, /INT et /RESET et lire en même temps la donnée quand on en avait besoin (ce que faisait le circuit imprimé original et son firmware). Je me demande si on ne pourrait pas tout simplement les mixer avec le poids fort de l'adresse.

Dans la majorité des cas, on a besoin de ces états à la détection des fronts du CLK. Donc de manière général, c'est le tampon U5 qui sera actif. Il ne sera désactivé que lorsqu'on aura besoin d'installer la nouvelle adresse via le LATCH ENABLE du tampon U2 (T41_ALE) qui aura juste besoin d'être actif le temps de propagation nécessaire à l'enregistrement de la nouvelle adresse.

Du coup, si le tampon U5 avait son /OE connecté à T41_ALE, cela assurerait-il tranquillement la bascule entre sortie d'adresse et entrée de contrôle, moyennant de ne pas oublier le changement de direction à effectuer via GPIO6_GDIR ?

Ça libère pas mal de broches et je constate aussi qu'il y a deux broches du tampon U5 qui ne servent pas. Je me dis que ce ne serait pas un mal de rajouter deux signaux IN0 et IN1 qui seront mixés respectivement avec A14 et A15 et qui pourrait servir de signal d'interruption supplémentaire ou d'événement ou d'état que le firmware pourrait traiter pour une machine particulière qui les exploiterait.
GPIO6_alt.png
GPIO6_alt.png (15.97 Kio) Consulté 2164 fois
Jacobert
Messages : 572
Inscription : 18 janv. 2018 23:30
Localisation : Paris

Re: [Z80] Recréation du circuit électronique MCLZ8 souhaitable ?

Message par Jacobert »

Tu voulais dire "récréation"? :lol:

:oops:
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [Z80] Recréation du circuit électronique MCLZ8 souhaitable ?

Message par hlide »

Suite à un décès et à des soucis de matériel de mon laptop personnel, j'ai dû mettre en pause tous les projets. Je tente de reprendre celui-ci avec l'aide de quelqu'un pour la conception du circuit imprimé. Pour ce circuit imprimé, le bus de donnée et d'adresse ainsi qu'une partie du bus de contrôle sont multiplexés, dégageant ainsi un certain nombre de broches :

1) 6 broches en entrées GPI0 à GPI5 (tolérant 5V). Les broches GPI0 et GPI1 peuvent être utilisées comme signaux /INT1 et /INT2 si l'on souhaite faire des interruptions internes au Teensy ou ajouter des sources d'interruption à la manière du Z180 ou Z280 (/INT0, /INT1, /INT2). Ces broches seront en pad ou sur un header sur le PCB (je ne sais pas encore) et seront bien sûr optionnelles.

2) 6 broches en sortie GPO0 à GPO5 (3,3V compatible TTL). Ces broches seront en pad ou sur un header sur le PCB (je ne sais pas encore) et seront bien sûr optionnelles.

3) la broche teensy 13 sert de base à piloter la LED orange présente sur le Teensy, donc elle ne sera pas utilisée pour les signaux Z80.

4) il reste les broches teensy 5 et 29 qui sont libres.
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [Z80] Recréation du circuit électronique MCLZ8 souhaitable ?

Message par hlide »

Je viens de recevoir les nouveaux PCB conçus avec l'aide très précieuse de @TotO (que je remercie beaucoup au passage). Il y a quatre couches et sa surface a été réduite pour être au plus proche du Z80. Les composants sont montés sous le PCB de façon à ce qu'ils se retrouvent entre le socle du Z80 et le PCB. Le Teensy 4.1 se mettra au dessus du PCB avec l'intention de le souder à même sur le PCB dans le produit final pour diminuer autant que possible la hauteur de l'ensemble. Mais là, ce sera aussi un socle pour le Teensy 4.1 pour la phase de développement et de test.
IMG_20230728_145546.jpg
IMG_20230728_145546.jpg (239.7 Kio) Consulté 1083 fois
A noter que faute de place et d'une erreur d'affectation des signaux outputs optionnels (GPO5 et GPO4 supprimés car mal placés), il n'y a pas de "pad" ou de "header" de disponible pour eux. Ils seront quand même disponibles à même la broche.
GPIO7.png
GPIO7.png (12.01 Kio) Consulté 1082 fois
Répondre