› Forums › Communauté › Le Bar
Mister fpga
-
ouais c’est peut être une question de philosophie.
tu chipotes non ?
en cours un fpga on appelait ca un processeur schizophrénique …
un 486 restera un 486 … etc
le fpga une fois programmé en 486 est persuadé que c’est un 486 mais ça en est pas un, il émule un 486 parce qu’il a été programmer logiciellement pour ca et le restitue matériellement.
du dictionnaire le mot émuler bien avant l’invention de l’informatique :
Essayer d’égaler ou de surpasser quelqu’un.
en informatique:
Par abus de langage : Procédé d’imitation ou de simulation logicielle d’un matériel ancien ou d’un programme non prévu pour le matériel sur lequel on veut l’exécuter.
Synomymes:
« faire » c’est nettement moins précis du moins en informatique … enfin je voudrais pas te froisser .
possède la fonction d’opérateur grâce à laquelle il peut être utilisé pour remplacer presque n’importe quel verbe.allez a vos claviers les amishs
Je comprends ce que dit sam, le terme « émulation » fait davantage penser à émulateur, et donc à un binaire informatique s’exécutant au dessus d’un OS
Le FPGA peut simuler un matériel existant (ex : pc 486 sous mister), mais il peut aussi être un choix stratégique ou économique pour du matériel 100% original.
Par exemple on peut imaginer que le FPGA intégré au prototype du Walker a été un choix temporaire, il a permis aux ingénieurs hardware de commodore de travailler en attendant une vraie puce définitive commodore (asic) -> supposition valable pour tout type de protos
De même, quelqu’un a parlé d’une puce FPGA dans le DCTV, peut être était-ce plus rentable d’intégrer cette puce que de dépenser une fortune pour une puce asic dédiée?
Cela a beau être du FPGA, pour moi ce n’est pas vraiment comparable, les usages sont complètement différents :
1) Choix économique ou stratégique d’ingénieurs pour une carte ou un ordi grand public (carte DCTV / Walker) -> ces FPGA ne sont pas sensé être « vidés et reformatés » par le grand public
2) Unique choix technique possible pour que n’importe qui puisse facilement transformer sa carte autonome en ce qu’il désire, rien n’est figé et tous les outils sont accessibles au grand public -> ex : mister / minimig / vampire…
Enfin je le vois comme ça
@ zogobille :
tu dis toi-même : »Procédé d’imitation ou de simulation LOGICIELLE »C’est justement ça qui fait la différence. Un émulateur est un logiciel qui traduit les instructions entre l’hôte et la cible en temps réel, une traduction simultanée en gros.
Un FPGA, si il est configuré par un logiciel à sa mise sous tension, devient le composant décrit par ledit logiciel. Donc, en fonctionnement il devient ce composant. Il ne traduit rien du tout à la volée et donc n’émule rien du tout.
Pour pinailler, un FPGA faisant tourner un core 68080 ou un mist faisant tourner un TG68 est bien plus un 68k qu’un processeur d’architecture CORE n’est un x86, car à la base le CORE est un processeur RISC auquel une couche de compatibilité X86 a été ajoutée :
https://stackoverflow.com/questions/5806589/why-does-intel-hide-internal-risc-core-in-their-processors?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qaC’est juste un peu de la sémantique la 🙂
Fondamentalement écrire un émulateur logiciel ou matériel doit être un travail assez proche pour le concepteur. (le Fpga est sans doute plus complexe ceci dit)
D’ailleurs, ca me fait penser qu’il serait sans doute assez simple pour quelqu un comme Gunnar d’écrire un émulateur logiciel du 68080. Ca pourrait permettre a des gens qui n’ont pas encore de vampire mais souhaitent tester le dev du AMMX (entre autre) de le faire (je pense a des gens comme Alain Thellier pour ne citer que lui dont je lisais encore un échange avec Gunnar et Sam sur le site de l’appollo core).
Pas forcément rendre le truc public d’ailleurs, mais juste élargir le nombre potentiel de développeurs en le donnant à des gens compétents.
en fait c’était plus en réponse a _sam_
mais effectivement le fpga est schizophrénique et se prend pour ce qu’on lui a programmer .
en revanche on passe bien par le logiciel pour le programmer.
on pourrait parler d’émulation indirect ? lol
<span class= »normal » style= »font-size: small; »>»Procédé d’imitation ou de simulation LOGICIELLE »</span>
mais comme je le dis plus haut c’est vraiment une question philosophique.
un composant fait pour exécuter une tache bien spécifique ok pas de problème.
un fpga même si il n’émule pas a juste titre peut devenir tout et n’importe quoi. il devient un support issue d’une émulation logiciel.
émulation et fpga sont liés, sans émulation pas de fpga.
@ zogobille :
« en revanche on passe bien par le logiciel pour le programmer. »
Dis-moi, comment sont fait les ASIC ? On passe bien aussi par un logiciel pour les désigner :
https://www.intel.com/content/www/us/en/foundry/design-solutions.html
la seule différence (outre la puissance finale que l’on peut espérer qui n’est pas la même entre un ASIC et un FPGA), c’est que l’ASIC est fondu une fois pour toute selon le design effectué par le logiciel en question, alors que le FPGA est configuré dans cet état à chaque mise sous tension par le logiciel en question. Autrement, en terme de fonctionnement, c’est identique.Fondamentalement écrire un émulateur logiciel ou matériel doit être un travail assez proche pour le concepteur
Pas du tout, mais alors pas du tout! Il n’y a strictement rien de commun entre un code C++ et du VHDL. Dans le logiciel tu utilises des adresses de variables, des méthodes, des tableaux bref des trucs de softeux. En VHDL ou Verilog il n’y a rien de tout ca. En soft tu traites tout de façon séquentielle, en HW tout est massivement parallèle. En HW tu te trimbale un signal clock partout. En soft la clock n’existe pas. Un programme VHDL compilé pour fpga peut aussi être compilé en netlist pour créer des masques de transitors pour ASIC. Par contre avec un émulateur écrit en C/C++ tu peux toujours attendre avant d’en faire une netlist prête à graver. C’est juste deux façon totalement différentes et incompatibles de fonctionner.
Enfin bref, entre une émulation et un implémentation HW il n’y a strictement rien de commun. Cessons de parler d’émulation en parlant du FPGA.
Samuel.
Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne 🙁
A500 (+ 1Mo PPS), A1200 (Blizzard-IV/fpu/64Mo)
A500 Vampire V2+ ^8^ 🙂
(mais aussi TO8, TO8D, TO9. Groupe PULS.)Tient, Giubrush, je me posais une question :
Pour la Standalone, pourquoi ne pas passer par une carte type celle utilisée pour le projet Mister et y intégrer le core v3.0 ?
Ca permettrait de pouvoir se l’offrir à pour coût extrêmement bas et surtout immédiatement sans soucis d’approvisionnement car, fondamentalement, elle est très similaire à ce que proposera celle conçue par la team Apollo, non ?@ Alexandre JALON :
On y avait pensé, d’ailleurs les premières version de la V4 (qui s’appelait Phoenix alors) était composée d’une carte fille propriétaire pour les entrées sorties et d’une carte de développement DE0 nano, TuKo en a parlé sur la première page de ce fil.
Pourquoi on a abandonné cette idée ? Il y a plusieurs raisons
1. une carte de dev ne reste pas sur le marché longtemps, d’ailleurs, pas longtemps après que l’on ait décidé de partir sur une carte complète, la DE0 nano n’était plus disponible. Dis autrement : nous n’avons aucune influence sur le cycle de développement et de disponibilité du produit.2. la carte n’étant pas faite par la team, elle possède des choses inutiles que nous n’utiliserons pas (le ARM embarqué, certais connecteurs…) et en manque d’autres (port joystick, connecteur CPU pour mettre dans l’Amiga), donc ça nécessite une adaptation de notre part à la carte, alors que c’est logiquement la carte qui doit être adaptée à ce que nous voulons.
3. plus on met de connecteurs entre les éléments vitaux d’un système, plus le résultat final peut avoir de pannes potentielles. Imagine une carte adaptatrice sur laquelle on plugge une Nano0, elle-même pluggée sur un Amiga 600. On est pas loin des montages Elbox.
3. une carte en sandwich et plus épaisse qu’une carte seule. Pour faire passer le tout dans un A1200, ça compte aussi.
Finalement, comme on voulait avoir le moins de design différents à maintenir, le choix d’une carte utilisable uniquement en stand allone n’était plus pertinent, car elle n’était pas utilisable en interne. Avec la V4 qui a un design propriétaire, on peut l’adapter à l’envie. Meme si la forme change, le design est le même, et ça ça va faire gagner beaucoup de temps au final.
Fondamentalement écrire un émulateur logiciel ou matériel doit être un travail assez proche pour le concepteur.
Le développeur d’un émulateur n’en a strictement rien à faire de la disposition dans le détail des millions de portes logiques d’un composant. Ce n’est pas du tout son job
Par exemple le pico-8 a beau être une machine simple, bon courage pour concevoir la puce
Pour résumer, ASIC et FPGA sont par contre très proches, les différences sont :
Un est beaucoup plus performant, est figé et coûte un bras. et l’autre non.
On ne parle d’émulation avec un ASIC, alors on ne doit pas parler d’émulation avec un FPGA
Moddans un émulateur il y a un système hôte
dans un émulateur il y a une couche d interprétation entre le système hôte le logiciel
dans un fpga il n y a pas de système hôte
dans un fpga le code est exécuter directement par la puce
voila pourquoi ni le Mist ni le Fpaga arcade, ni le Mister, ni la vampire ne son de émulateur
@Sam
Oui, alors avec mes faibles compétence en C, je n’ai pas la capacité d’appréhender ni l’écriture d’un émulateur, ni la réimplémentation HW sur un fpga 🙂
Non, mon propos était plutot de dire que le travail intellectuel en amont pour comprendre le HW original parfaitement afin de le ré implémenter (voir de l’optimiser dans le cas du 68080) était proche. Apres que la dite réimplémentation Logicielle (émulation) ou Matérielle (FPGA) soit très différente, je n’en doute pas le moin du monde.
Et tout ça fait passer a coté de mon idée principale qui était de dire qu’avoir un émulateur logiciel du 68080 serait sans doute une bonne façon d’étendre drastiquement le nombre de développeurs pour le core appollo ! Enfin je présume que les intéressés ne m’ont pas attendu pour y penser et que si ce n’est pas fait, c est qu il y a certainement une bonne raison (a commencer par le temps)
Tout à fait guybrush les asic peuvent « imiter » pour pas utiliser le terme émuler un jeux de composants ou processeur tout comme être utiliser à des fins unique et spécifique à vie contrairement au fpga.
On parle de la même chose dans différent termes mais c’est pareil.
Comme je le dit plus haut le terme émuler en informatique est un abus de language.
Alors bien sûr le fpga de la vampire n’ imite rien puisque ça été écrit de a à z.
Mais le xilynx du mister du moins son core imite bien un 68020 plus un jeux de composants aga.@Guibrush…
Heu, il me semble bien que la DE0-nano, qui est celle utilisée pour le projet Mister, soit bien toujours disponible.https://www.terasic.com.tw/cgi-bin/page/archive.pl?No=593
Et puis, il devrait être possible de négocier une certaine disponibilité de cette carte sur un plus long terme avec Terrasic, surtout si, outre l’Apollo Team, des projets comme Mister se greffent dessus, non ?
Mieux encore, vous pourriez voir avec eux la possibilité de créer une partenariat fort et de développer (conjointement) une carte qui correspondrait plus à vos besoins et pourrait servir de plateforme plus générale pour d’autres projets (Mister, entre autre mais pas que, genre pour des carte accélératrice pour ST, pour Mac, des standalone qui pourraient « simuler » d’autres plateformes, etc) ?
Vu les prix de leurs cartes en Cyclone V, ça pourrait clairement vous faciliter, en plus, grandement la tâche (plus besoin de gérer le SAV matériel, la fabrication, etc) tout en réduisant de façon importante les coûts, non ?
Vu l’engouement pour le retrocomputing actuellement, ça pourrait bien être un bon vecteur d’intérêt et de développement pour Terrasic qui, je pense, ne doit pas vendre des tonnes de leurs cartes en temps normal ^^.
Et pour vous, ça pourrait permettre de garantir un approvisionnement suffisant et de pas galérer dessus :).
En plus, un tel partenariat, sur le long terme, pourrait amener à des choses vraiment intéressantes, non ?Sinon, je parlais des DE0-Nano Kit pour une version standalone de la Vampire, pas en tant que carte CPU pour l’Amiga ^^.
Mais bon, je peux comprendre le pourquoi :). Ne serait-il pas, malgré tout, intéressant d’adapter le core Vampire à cette carte ?
En fait un émulateur de 68080 pour 68k est moyennement utile car les perfs ne seront pas au rendez-vous, ni même le principe de fonctionnement (hyperthreading, 2 pipes etc.) Quant aux instructions AMMX j’en ai émulé quelques unes, et franchement c’est hyper couteux pour le pauvre 680×0. Du coup ca n’est pas trop représentatif de la façon dont ca tournera sur la vraie vampire.
A mon avis le mieux pour coder pour vampire reste de bien coder pour 68k. Si ca tourne bien pour 68k, ca tournera encore mieux sur la vamp. Quant aux instructions AMMX le mieux là encore est de détecter sa presence au runtime et appeler les routines optimisées en asm là où il faut. C’est ce qui est fait pour RiVa, ou le decodeur jpeg de _Bax_ je crois, et ce que je fais moi même avec le monkey ou avec le quake fourni dans CoffinOS.
Samuel.
Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne 🙁
A500 (+ 1Mo PPS), A1200 (Blizzard-IV/fpu/64Mo)
A500 Vampire V2+ ^8^ 🙂
(mais aussi TO8, TO8D, TO9. Groupe PULS.)
- Vous devez être connecté pour répondre à ce sujet.
› Forums › Communauté › Le Bar › Mister fpga