Pistorm’X

Forum Amiga Hardware Pistorm’X

  • Ce sujet contient 36 réponses, 6 participants et a été mis à jour pour la dernière fois par stephbb75, le il y a 5 mois et 4 semaines.
  • Créateur
    Sujet
  • #136799
    flaco
    • Level 4
    • Messages : 148

    bonjour,

    Pour info j’ai commencé à parler de mon dernier projet sur de Discord Pistorm, section hardware.

    Si certains ont les compétences pour assembler le leur et voudront tester, ils seront les bienvenus dès que j’aurai pu le publier.

    Github du projet : https://github.com/f1ac0/PistormX

    Stay tuned !

    Pistorm'X

Affichage de 6 réponses de 31 à 36 (sur un total de 36)

Partager sur vos réseaux sociaux préférés :
Facebooktwitterredditpinterestlinkedintumblrmail

  • Auteur
    Réponses
  • #162159
    flaco
    • Level 4
    • Messages : 148

      Pour information je viens d’ajouter la seconde version de la carte PiStorm’X 1K2, plus courte, et plus traditionnelle avec le Pi accessible dans la trapdoor.

      Pour le DIY si on ne tient pas à refermer la trapdoor elle autorise d’utiliser un pin socket traditionnel plutôt que de devoir trouver un socket de hauteur réduite avec entrée par le bas. Les rallonges de carte SD dont la partie rigide est trop longue ne devraient cependant pas y passer lorsque un utilise un tel socket et que le Pi tient dans la trapdoor.

      PiStorm'X 1K2 alt

      PiStorm'X 1K2

      PiStorm'X 600

      PiStorm'X 500

       



      #162539
      flaco
      • Level 4
      • Messages : 148

        sur un 2000 le DMA ne fonctionne pas, sais tu ci c’est hard ou soft ? Et cela pourrais fonctionner avec ta version ?

        Ce qui devait arriver arriva, et j’ai pris un moment pour faire un firmware pour la carte PiStorm’X avec le support des signaux d’arbitrage du bus, qui devraient idéalement pouvoir faire fonctionner les périphériques DMA !

        C’est dans mon git, mais donc c’est pas testé puisque je n’ai pas d’A2000 ni de carte d’extension.

         

        se ne serais pas ce qu’il appel « bus master » en fait le transfert DMA

        Effectivement c’est lié et c’est un bon résumé de ma précédente explication : pour pouvoir faire des accès directs à la mémoire où à d’autres périphériques (DMA) le périphérique en question doit pouvoir devenir « maître du bus » (bus master) !

        #162572
        stephbb75
        • Level 9
        • Messages : 868

          Salut,

          Ce qui devait arriver arriva, et j’ai pris un moment pour faire un firmware pour la carte PiStorm’X avec le support des signaux d’arbitrage du bus, qui devraient idéalement pouvoir faire fonctionner les périphériques DMA !

          Et bas c’est cool :lol:
          Plus qu’a tester, le firmware fonctionnerais sur un Pistrom « standard » ?

          Bon, va falloir que je te lance sur les carte qui remplace les périf SCSI toi :whistle:

          https://youtube.com/@stephbb75

          #162579
          flaco
          • Level 4
          • Messages : 148

            C’est que tu es vachement exigeant dis donc. Ce que j’ai commité ce matin c’est pour la carte PiStorm’X première du nom. La logique est différente et les composants aussi donc on ne peut pas utiliserces fichiers tels quels sur la carte PiStorm originale.

            J’ai écris une erreur dans mon message du 23 mai : sur la carte CPU PiStorm originale les signaux d’arbitrage du bus sont bien connectés au CPLD via le switches/lever shifters 743384 U7. Les buffers 7416347 ont bien une sortie sur le bus 68000 pilotable par le CPLD : DATA_WR_OE et surtout ADDR_OE. Et dans le code la sortie M68K_BG_n est bloquée au niveau haut sans aucune logique pour prendre en compte BG. Donc ça ne me paraît pas impossible à réaliser pour celle-ci.

            Et donc je trouve étrange que personne n’ait rien fait en ce sens si le problème est connu. En plus tu ne dois pas être le seul à utiliser un A2000 vu qu’il y a des gens qui essayent de faire du blé avec des produits comme cela : https://www.tindie.com/products/retrofletch/pistorm-2k-for-a2000-amiga-2000-pistorm2k-black/

            C’est soit disant conçu par un certain MadGrizzle. Sauf que manifestement je ne trouve aucune info partagée à son sujet, notamment là https://github.com/madgrizzle. J’ai pu passer à côté, mais sinon je n’aime vraiment pas les gens qui profitent mais sans contribuer en retour ni leur layout ni leur code, et qui pour le support de leurs clients renvoient vers le projet communautaire. Et s’ils n’ont pas fait le nécessaire pour adapter leur produit au système dans lequel il doit être installé alors c’est la cerise sur le gâteau.

            #162594
            flaco
            • Level 4
            • Messages : 148

              Voici une tentative d’ajout de l’arbitration du bus dans la logique du Pistorm original.

              Je peux donner le fichier svf compilé pour EPM240 à qui veut l’essayer. Il y a quand même un truc que mon Quartus 17 ne génère pas exactement le même bitstream pour le code original généré avec Quartus 20, j’espère que ça n’a pas d’incidence.

              diff rtl/pistorm.v rtl-dma/pistorm.v
              48c48
              < output reg M68K_BG_n,

              > output M68K_BG_n,
              79c79
              < M68K_BG_n <= 1’b1;

              > // M68K_BG_n <= 1’b1;
              83a84
              > reg [1:0] bg_sync;
              87a89
              > bg_sync <= {bg_sync[0], bus_granted};
              91a94,95
              > wire bg_rising = !bg_sync[1] && bg_sync[0];
              > wire bg_falling = bg_sync[1] && !bg_sync[0];
              193a198,217
              > if(bg_rising) begin
              > M68K_AS_n <= 1’bz;
              > M68K_UDS_n <= 1’bz;
              > M68K_LDS_n <= 1’bz;
              > LTCH_A_OE_n <= 1’bz;
              > LTCH_D_WR_OE_n <= 1’bz;
              > M68K_RW <= 1’bz;
              > M68K_VMA_n <= 1’bz;
              > end
              > if(bg_falling) begin
              > M68K_AS_n <= 1’b1;
              > M68K_UDS_n <= 1’b1;
              > M68K_LDS_n <= 1’b1;
              > LTCH_A_OE_n <= 1’b1;
              > LTCH_D_WR_OE_n <= 1’b1;
              > M68K_RW <= 1’b1;
              > M68K_VMA_n <= 1’b1;
              > end
              >
              >
              205c229
              < if (op_req) begin

              > if (op_req && !bus_granted) begin
              277a302,318
              >
              > // BUS ARBITRATION CONTROL
              > wire bus_requested = !M68K_BR_n;
              > reg bus_granted = 1’b0;
              >
              > wire bgset = bus_requested & (state == 3’d1);
              > wire bgreset = !bus_requested & M68K_BGACK_n;
              > always @(posedge bgset, posedge bgreset) begin
              > if(bgreset)
              > bus_granted <= 1’b0;
              > else
              > bus_granted <= 1’b1;
              > end
              >
              > // output M68K_BG,
              > // indicates to all other potential bus master devices that the processor will relinquish bus control at the end of the current bus cycle.
              > assign M68K_BG_n = bus_requested ? 1’b0:1’b1;

               

              De revoir le code original compliqué avec son horloge à 200MHz et (je trouve) pas très net  et sans commentaire, ça m’a rappelé pourquoi j’avais dû tout refaire pour le PiStorm’X ;)

              #162595
              stephbb75
              • Level 9
              • Messages : 868

                C’est que tu es vachement exigeant dis donc.

                HA non, c’est juste une question ;-)

                J’ai écris une erreur dans mon message du 23 mai :….Et donc je trouve étrange que personne n’ait rien fait en ce sens si le problème est connu.

                J’avais pauser la question sur le discord, mais je ne me rappelle plus vraiment de la réponse !
                Michal Schulz n’a pas de 2000 je crois bien déjà. et les autres je ne sais pas ;-)

                En plus tu ne dois pas être le seul à utiliser un A2000

                Non c’est sur !

                vu qu’il y a des gens qui essayent de faire du blé avec des produits comme cela

                Oui, y’en a qui ne doute de rien, qui se foute de tout !
                Ma gueule en 1er et les autre crevez :cry:

                De mémoire c’est un simple Pistorm avec la connectique pour le slot CPU du 2000 (à la place du 68000).
                Et de mémoire aussi effectivement il n’y a jamais eu de diffusion du plan.

                Moi j’utilise un adaptateur CPU (slot CPU vers 68000) puis un Pistrom « classique ».
                Je n’ai pas ces PiStorm que tu branche directement sur le port CPU, beaucoup trop cher (mon fils (celle la faut avoir 50 ans pour la comprendre !!!))

                 

                 

                https://youtube.com/@stephbb75

              Partager sur vos réseaux sociaux préférés :
              Facebooktwitterredditpinterestlinkedintumblrmail
              Affichage de 6 réponses de 31 à 36 (sur un total de 36)
              • Vous devez être connecté pour répondre à ce sujet.