Je suis nouveau dans FPGA et je suis actuellement en cours de HDL (Verilog en particulier). Jai des connaissances suffisantes en conception numérique comme circuits combinatoires et séquentiels.
Je souhaite créer un projet similaire à celui présenté dans cette vidéo YouTube .
Je sais aussi que Xilinx ISE peut traiter des signaux logiques et simuler des formes donde. At-il des capacités supplémentaires comme obtenir les signaux dentrée via USB, caméra, etc. et les sortir dans votre ordinateur.
Est-il possible dexécuter ce projet (comme une simulation sur ordinateur) sans acheter une carte FPGA réelle? Ce que je veux dire, cest, puis-je construire, coder et exécuter ce projet sur mon ordinateur, et simplement brancher ma caméra via USB, puis laisser les signaux vidéo entrants être traitées par des simulateurs HDL comme Xilinx ISE, etc. (sans vraiment acheter une carte FPGA et y synthétiser votre projet, je nai actuellement pas le budget pour en avoir une)
( Ce que je veux vraiment dire, cest dinterfacer la conception HDLl dans des sources du monde réel, du code C, etc.)
Commentaires
- Je ne ‘ Je ne sais pas si vous pouvez faire cela avec le simulateur de Xilinx ‘, mais quelque chose comme Icarus Verilog laissera votre interface de simulation au code C qui pourrait obtenir des données à partir de sources du monde réel; Cependant, il est susceptible de fonctionner des ordres de grandeur plus lents quen temps réel, il serait donc difficile de traiter une source vidéo en direct.
- Oh là, cest la phrase im find, interfaçage avec des sources du monde réel
- @vvavepacket upvote les commentaires / publications pour remercier le commentateur / laffiche.
- Le FPGA de la vidéo ressemble à Altera DE2. Il ‘ est compris entre 200 et 600 USD selon la licence et la puce. Il existe ‘ des simulateurs à csc.kth.se/~emille/niisim
- Le Terasic DE0-nano est de lordre de 80 $ et peut sinterfacer avec des caméras et des écrans LCD; en fait, ils en ont des démos sur leur site Web. Pas affilié à eux, mais les DE0-nano ‘ ont un joli petit FPGA sur une carte à un prix décent. ‘ jai toujours détesté le prix de la plupart des cartes de développement.
Réponse
Les outils Xilinx ne peuvent pas sinterfacer en temps réel pour autant que je sache, ni ModelSim (utilisé par lIDE Libero dActel)
Je ne connais pas les simulateurs open source, il y en a plutôt projets exotiques là-bas, il est donc possible quil y ait quelque chose qui pourrait faire cela.
Cependant, cest peut-être vous une réponse que vous navez pas demandée (je la supprimerai si cela ne vous aide pas), mais jenvisagerais de créer votre propre carte FPGA pour le faire ou du moins Jai gravé ma première carte FPGA et même si cétait très simple (la carte pas le processus ;-)), cela ma appris beaucoup de choses assez rapidement.
Avantages:
- Bon marché
- Plongez-vous directement dans le grand bain et apprenez tout ce que vous devez savoir sur les considérations matérielles. Vous oblige à lire dabord la plupart des fiches techniques et à rédiger les vôtres code de démarrage, qui à mon humble avis est souvent meilleur que lapproche plug and play de la carte de développement pour apprendre.
- Ne mettez sur le tableau que ce dont vous avez besoin.
- Vous rapprochez davantage de votre objectif dune conception fonctionnelle réelle avec peut-être le même effort / recherche que le fait de trouver comment tout simuler en temps réel.
Inconvénients:
- Il faut encore acheter un programmeur, bien que des versions bon marché des programmeurs Xilinx / Altera soient disponibles sur eBay.
- Si la conception et les problèmes dintégrité des PCB / signaux ne sont pas quelque chose sur lequel vous souhaitez vous concentrer, alors vous ne serez peut-être pas intéressé par une grande partie des connaissances à acquérir en procédant ainsi.
Je comprends que graver votre propre carte est probablement inutile, je ne lai fait que parce que javais les FPGA là-bas, jétais impatient et je ne voulais pas attendre 2 semaines pour quun PCB arrive. Il existe des offres extrêmement bon marché ici pour les cartes à 2 couches, ce qui ferait au moins dexécuter votre conception (éventuellement à des vitesses inférieures à celles éventuellement souhaitées – normalement, le nombre minimum de couches pour une conception FPGA haute vitesse serait de 4, mais ce sont beaucoup plus cher)
Quoi quil en soit, Spirit Circuits propose un contrat PCB à 2 couches entièrement gratuit (un par mois, un design, pas de masque ni de sérigraphie), ce qui est pratique pour un design unique .
De plus, pour des cartes prototypes bon marché à 2 et 4 couches, ITead et Seed Studio vont aussi bas que 10 $ pour 10 cartes (ou peut-être 5 à ce prix).
Commentaires
- point très intéressant à ce sujet! et encourageant aussi
Réponse
Le Webpack standard Xilinx ISE (la version gratuite qui vous pouvez télécharger sur xilinx.com) comprend un simulateur appelé iSim. Ce nest pas un excellent simulateur, mais il est entièrement fonctionnel et le prix est correct.
Bien que je n’ai pas utilisé les outils Altera, cela me surprendrait si un simulateur n’était pas inclus.
Mais … vous devez savoir ce qu’un simulateur peut et ne peut pas faire . Pour commencer, il ne peut pas simuler un FPGA fonctionnant à pleine vitesse. En fait, ils sont assez lents. Selon la complexité du FPGA simulé, cela ne me surprendrait pas de voir quil faudrait 1 minute pour simuler 1 ms de « simulé time « . Si vous voulez simuler une heure de » temps simulé « , il faudrait 1000 heures de temps réel.
De plus, un FPGA simulé ne peut pas communiquer directement avec des éléments comme votre port USB. Le FPGA simulé communique avec un « testbench ». Le testbench est un bloc de code VHDL ou Verilog qui alimente les entrées du FPGA (ou des parties du FPGA) et vérifie la sortie de votre FPGA. Vous pouvez faire des choses assez complexes dans un testbench , comme utiliser des nombres à virgule flottante, lire et écrire des fichiers et exécuter une logique impossible à synthétiser.
Commentaires
- A ltera ‘ a obtenu des éditions gratuites de Quartus qui incluent ModelSim. La version gratuite de ModelSim limite votre vitesse de simulation, et la version gratuite de Quartus limite le nombre de cœurs de processeur utilisés pour synthétiser, mais sont par ailleurs entièrement fonctionnels.
- Altera ModelSim ne prend pas en charge la co-simulation de VHDL et Verilog dans le même design.
Réponse
Je ne connais aucun simulateur qui interfacera directement aux signaux arrivant sur un port USB (ou autre matériel).
Au moins en théorie, il serait possible décrire des logiciels qui prendraient les signaux arrivant sur un port, et de les traduire dans un fichier testbench qui un simulateur pourrait traiter. Malheureusement, je ne connais aucun logiciel existant pour le faire, et lécrire vous-même ne serait décidément pas trivial.
Commentaires
- alors le meilleur moyen est dobtenir une carte fpga dentrée de gamme à faible coût pour les n00bs comme moi
- Vous navez ‘ pas besoin de passer par un fichier testbench si vous avez un simulateur whic h prend en charge une interface pour le code personnalisé dun tel VPI, cependant, étant donné que le simulateur fonctionnera des ordres de grandeur plus lentement quen temps réel, il peut être plus facile de traiter les données capturées dans un fichier qui peut être lu à la vitesse de la simulation.
- @ChrisStratton Je suis intéressé par lidée des données capturées dans un fichier. Des ressources pour ça? Merci
- Cela dépendrait entièrement des périphériques que vous souhaitez utiliser comme sources de données.
Réponse
Vous devrez utiliser une interface de co-simulation (DPI, VPI, VHPI, FLI) qui vous permet décrire du code qui se connecte au simulateur et ainsi faire le pont entre le RTL fonctionnant en simulation et le matériel réel sur votre machine .
Les problèmes importants que vous allez rencontrer (mis à part les interfaces mal documentées) sont liés à la synchronisation et au timing. RTL sexécutant dans la simulation est beaucoup plus lent que le matériel réel – vous devrez être capable de parcourir les interactions avec linterface externe pour correspondre à la vitesse de simulation. Certaines interfaces matérielles ne seront pas comme ça! Par exemple, si vous utilisez TCP, vous devrez peut-être modifier les minuteries dans la pile du noyau pour éviter de fausses retransmissions, etc.
Icarus prend en charge le VPI et est gratuit afin que vous puissiez expérimenter sans dépenser dargent en licences. Vous voudrez peut-être examiner les frameworks existants qui font une partie du gros du travail de co-simulation et fournissent une abstraction plus claire au simulateur. Un tel framework est Cocotb , une bibliothèque open-source qui fournit une interface Python au simulateur. ( Clause de non-responsabilité: Je « suis lun des développeurs de cocotb.)
Un exemple qui peut être pertinent: hier, jai lancé du RTL pour répondre aux requêtes ping et créé un banc de test qui ouvre une interface TUN. Vous pouvez alors envoyer un ping à linterface à laide de la commande ping
et le RTL en cours de simulation reçoit le ping et répond. Lensemble du banc dessai est inférieur à 50 lignes de Python! Le code source de cet exemple est sur Github et il fonctionne sous Icarus sous Linux.
Réponse
Dans la grande majorité des cas, tout ce que vous faites dans la simulation reste dans la simulation. Vous ne pouvez pas accéder au matériel réel à partir de celui-ci – vous devez avoir un modèle de simulation du matériel réel.
Cependant, si vous êtes prêt à faire des efforts, la plupart des simulateurs ont une interface avec du code arbitraire. Dans Verilog, cest une interface assez standard si je comprends bien, donc le côté Verilog des choses portera entre les simulateurs. En VHDL-land, il existe une manière standard de le faire, mais au moins un des grands fournisseurs a sa propre manière de le faire!
Gardez également à lesprit que linterfaçage en temps réel (cest-à-dire à la vitesse que le FPGA le ferait) est très peu probable – et le reste de votre simulation (le HDL) ne fonctionnera pas en réel -temps non plus.Comme indiqué dans les commentaires, le traitement simulé en temps réel de la vidéo nest pas réalisable de cette manière.
Personnellement, je nai jamais eu besoin dessayer cela, je trouve que je suis des modèles décriture plus productifs de le matériel et tout exécuter en VHDL.
Mais, ne négligez pas les avantages de la simulation – cest un moyen beaucoup plus rapide de savoir si les choses fonctionnent (les compilations prennent quelques secondes) puis de construire des flux binaires (les compiles prennent des dizaines de minutes à des heures) et de les essayer sur le matériel.
Commentaires
- Faux, voir les commentaires sur la question.
- OK, je devrais ‘ être plus clair – je limitais ma réponse à » I ‘ m nouveau sur FPGA » level 🙂 Réponse mise à jour