Ceci est mon premier aperçu du FPGA, mais une solide expérience dans le développement de logiciels. Je voudrais acheter une carte pour apprendre, mais j'aimerais éventuellement pouvoir utiliser un ordinateur basé sur le Z80 au début des années 80 (pensez au modèle TRS80, dis-je).
J'ai regardé les cartes Spartan 3E et Spartan 6, mais je ne suis pas vraiment sûr des différences de performances / capacité.
Ce que je pense, c'est quelque chose comme ça:
- Assez de place pour:
- simulé Z80 en utilisant le softcore opencores T80.
- périphériques embarqués simulés tels que contrôleur vidéo, contrôleur de son (simple 1 bit), contrôleur de disquette
- peut-être quelques contrôleurs picoblaze pour utiliser les boutons intégrés pour la sélection des images de disquette etc ...
- Connecteur VGA (16 couleurs suffiraient, 256 bonus)
- Connecteur clavier PS2
- Assez de mémoire flash intégrée pour contenir un certain nombre d'images de disquettes virtuelles et de ROM système (16 Mo devraient suffire)
- À l'écran, l'écran LCD serait bien, une LED segmentée 4x7 suffirait probablement.
- une sorte de prise pour carte flash serait bien, mais pas obligatoire.
- Connectez l'alimentation pour couper le courant, probablement via un bloc d'alimentation.
Ce sont les planches que j'envisage actuellement:
- Carte FPGA Nexys ™ 3 Spartan-6
- Carte de démarrage Spartan 3E
- Carte de développement Spartan 3E-1600
- Carte FPGA Basys ™ 2 Spartan-3E (500K) + Flash 16M pMod
- Carte FPGA Basys ™ 2 Spartan-3E (1200K) + pMod Flash 16M
EDIT: Je viens de remarquer que le Basys n'a pas de RAM intégrée, donc je serais limité à la RAM FPGA - pas idéal.
La principale chose dont je ne suis pas sûr est de savoir combien de place il restera après le chargement du softcore T80. Tout conseil grandement apprécié.
Réponses:
Bien que des objectifs ambitieux soient agréables, mon conseil est de commencer plus petit. Beaucoup plus petit. Le projet que vous proposez serait difficile pour un concepteur FPGA intermédiaire, et presque impossible pour un débutant. Je suis un grand partisan des FPGA et j'aimerais vous voir réussir - commencer avec un projet aussi ambitieux entraînera probablement beaucoup de frustration et abandonnera probablement complètement la conception de FPGA.
Permettez-moi de le dire en termes de logiciel: ce projet serait comme quelqu'un qui n'a jamais fait de logiciel pour écrire un compilateur C complet - à partir de zéro.
Commencez plus petit et vous serez beaucoup plus heureux.
Edit: Ajout de trucs ci-dessous.
Cela étant dit, il est difficile de donner une bonne recommandation pour un conseil. La raison en est que toute carte que je recommanderais à quelqu'un sans expérience FPGA n'est absolument pas la même que celle que je recommanderais pour faire un projet de type CPU. Une carte pour débutants peut coûter entre 50 et 100 $ US, tandis qu'une carte pour faire CPU + VGA + Flash_Card + tout ce qui pourrait être entre 1000 et 2000 $ US.
Il y a aussi une énorme chance qu'une fois que vous faites quelques conceptions simples de FPGA, vous changerez d'avis et voudrez faire un projet différent plus tard.
Ma recommandation est donc pour vous d'obtenir une planche simple dans la fourchette de prix inférieure à 100 $ US en premier. Ensuite, lorsque vous êtes prêt à vous attaquer à un projet plus vaste, vous pouvez acheter une planche plus chère et proche de ce que vous voulez (quoi que ce soit à l'époque).
La planche que j'aime est celle-ci: http://www.xilinx.com/products/boards-and-kits/AES-S6MB-LX9.htm
Il est peu coûteux, utilise une pièce de génération actuelle, provient d'une fabrication de niveau 1 et peut même faire des tâches de processeur simples.
la source
Hmmm, malheureusement c'est vhdl, j'allais dire commencer par verilator ou icarus verilog. Utilisez plutôt ghdl. La première suggestion est de lancer un environnement de simulation, de commencer à construire cette chose là-bas.
Avant de choisir une carte fpga, vous devez avoir une idée de sa taille, les différents outils sont gratuits ou gratuits avec le sacrifice de votre adresse e-mail et d'autres informations. Essayez les outils treillis, altera, xilinx, etc., commencez strictement avec le noyau T80 et certains de ces fpgas cibles que vous regardez. Je suppose que toutes les choses que vous souhaitez ajouter augmenteront considérablement le pourcentage total que vous obtiendrez lorsque vous implémenterez le cœur T80. Je parie, cœur seul, que vous allez pouvoir éliminer certains des candidats.
Peut-être que la carte fpgaarcade, qui sous une forme ou une autre a utilisé le noyau T80, est ce que vous recherchez ... Quand elle sera disponible.
Je dois être entièrement d'accord avec l'autre David, si vous n'êtes pas déjà un développeur professionnel de fpga / board, ce n'est pas par où vous commencez, vous envisagez peut-être des années de travail, vous allez probablement acheter plusieurs boards de plusieurs milliers de dollars comme vous détruisez-les avec des erreurs, etc. Si vous avez ce genre d'argent à votre disposition, vous devriez peut-être embaucher un consultant pour vous guider tout au long du processus. Ou faites construire une planche sur mesure.
Plus de pouvoir pour vous si c'est vraiment quelque chose que vous voulez faire, soyez juste intelligent, commencez par le noyau et quelques programmes simples qui clignotent quelques leds et progressent lentement, lentement. Je recommande fortement l'itinéraire de simulation. Autre que la gratification instantanée, ne vous embêtez pas avec du silicone jusqu'à ce que vous soyez plus loin sur la route. D'ici là, vous aurez plus de conception et pourrez utiliser les outils pour voir dans quoi il pourrait s'intégrer. Si vous ne pouvez pas faire fonctionner cette chose en simulation, vous ne la ferez probablement pas fonctionner en silicium.
la source
Si vous souhaitez simuler des ordinateurs avec sortie vidéo, essayez d'obtenir quelque chose avec une bonne quantité de RAM car vous en aurez besoin pour le système et la mémoire vidéo. Évidemment, un connecteur intégré pour VGA est agréable, mais si vous voulez faire une simulation fidèle au timing de certains des premiers systèmes, vous devrez peut-être générer de la vidéo composite en greffant sur un DAC ou même un DAC à résistance R2R.
Ensuite, choisissez peut-être la plus grande option de puce de comptage de portes disponible sur la carte prise en charge par la version gratuite des outils FPGA . Les puces plus grandes ont implicitement plus de RAM de bloc (j'ai vu de nombreuses conceptions motivées par cela plutôt que par le nombre de portes), mais vous pouvez être dans le territoire d'application où un RAM externe et un FPGA plus petit sont moins chers qu'un FPGA assez grand pour tout faire sur puce .
Le stockage flash peut toujours être greffé ultérieurement - par exemple une carte SD multi-gigaoctets interfacée en mode SPI.
Généralement, les cartes FPGA viennent dans la classe 100-200 $, puis dans la classe vraiment chère. Vous pouvez probablement faire pas mal de progrès avec l'un des premiers.
la source
J'étais l'affiche originale de cette question mais je ne devais pas être connecté, ou je n'avais pas encore créé de compte ...
Quoi qu'il en soit, j'ai finalement mis le projet de côté pendant 4 ou 5 mois, mais j'ai ensuite opté pour la carte Nexys3 et j'ai maintenant un ordinateur Microbee opérationnel. Vous pouvez en lire plus ici: http://www.toptensoftware.com/fpgabee .
Dans l'ensemble, j'ai été très satisfait du Nexys3, il gère le noyau T80 avec de la place à revendre, il n'était pas trop cher (250 $) et a tout ce dont j'ai besoin (et plus).
La principale déception est que je n'ai pas réussi à faire fonctionner l'interface du clavier USB-HID et même si je suis toujours en discussion avec Digilent à ce sujet, je soupçonne que cela ne fonctionne qu'avec certains claviers et je n'ai pas pu trouver celui qui est compatible (j'ai essayé environ 8 claviers différents maintenant). Il n'y a pas de modèles de référence pour cela, les tests périphériques ne testent pas le clavier et j'ai lu que d'autres ont le même problème.
la source