Discussions au sujet des autres produits NI

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Communication Host vers FPGA

Bonjour,

 

Encore besoin de votre aide concernant la communication host vers FPGA.

J'ai regardé les discussions et les exemples sur le site de NI, mais je ne comprend pas comment mettre en oeuvre cette communication.

 

Je génère des valeurs dans un VI, qui fonctionne sous Labview RT, puis je veux transférer ces données au FPGA.J'ai utilisé un DMA en écrivant les données dans la cible RT et en les lisant dans la tâche FPGA.

 

Dans la cible RT, je démarre la tâche FPGA (Run), puis dans une boucle while je génère mes valeurs, puis les écris dans le DMA, enfin je ferme la tâche FPGA à l'exterieur de la boucle while.

Dans la tache FPGA, j'execute Read DMA dans une boucle while, mais cette méthode ne fonctionne pas. 

 

Pouvez vous m'indiquer le problème qui persiste, ou même la methode pour réaliser cette communication, car celle-ci est peut -être erroné.

 

Je vous remercie,

 

PNI

0 Compliments
Message 1 sur 10
4 987 Visites

Bonjour,

 

Je vous conseille de regarder ce lien: Creating FPGA FIFOs (FPGA Module)

 

Si vous utilisez un canal DMA, vous devez egalement utilisez une fifo pour transferer les données de votre host vers/depuis votre FPGA.

 

Cordialement, 

0 Compliments
Message 2 sur 10
4 964 Visites

Bonjour,

 

Je vous remercie pour votre réponse.

 

J'ai effectivement lu le lien que vous m'avez donné.Mais je ne comprend pas où placer la FIFO supplémentaire au DMA.

J'ai crée une FIFO( que j'ai nommé DMA)  dans mon projet, que j'ai configuré du type "Host to Target -DMA"pour faire le lien entre la cible RT et la tâche FPGA.

J'obtiens mes données à l'aide d'une boucle"FOR" que j'envoie à  "DMA Write" dans la cible RT et que je les lis dans la tache FPGA en utilisant "DMA Read".

Mais aucune valeurs sont présentent dans la tâche FPGA.

 

Pourriez vous me donner des indications concernant mon problème.

 

Je vous remercie,

 

PNI

0 Compliments
Message 3 sur 10
4 955 Visites

Il faut bien comprendre l'intérêt des fifo et dma, cette architecture sert pour le transfert d'une grande quantité d'information entre le FPGA et le host.

 

Si tel est votre cas alors vous pourrez trouver plus d'information ici: Using DMA FIFO to Develop High-Speed Data Acquistion Applications for Reconfigurable I/O Devices 

 

Vous pouvez également trouver des informations dans cette présentation: LabVIEW FPGA Module Training

 

Cordialement, 

0 Compliments
Message 4 sur 10
4 947 Visites

Bonjour,

 

Je vous remercie encore pour vos liens.

 

Je suis arrivé à établir une communication d'une tâche FPGA vers la cible RT.Mais je souhaite savoir si la mèthode est la même pour une communication de la cible RT vers une tâche FPGA.

 

Dans les nombreux exemples donnés, seulement la communication FPGA vers host est traitée.

 

Je vous remercie,

 

PNI

 

 

0 Compliments
Message 5 sur 10
4 932 Visites

Bonjour,

 

Vous pouvez utiliser la même architecture pour les deux sens de communication cependant l'intérêt est assez limité. L'architecture FPGA permet de traiter en parallèle une large quantité d'information en peu de temps alors que la cible RT dans les traiter une à une, c'est pourquoi on utilise une FIFO, pour permettre à la cible RT de traiter les informations.

Si vous effectuez dans le sens inverse, votre file d'attente sera presque toujours vide.

 

Cordialement, 

0 Compliments
Message 6 sur 10
4 929 Visites

Bonjour,

 

Je vous remercie pour les différentes informations.

 

J'ai créé un VI RT (Transfert Host_FPGA.vi) et une tâche FPGA (Generation parallele.vi)que je vous joint au message.

 

La communication Host vers FPGA semble fonctionner mais les oscillogrammes obtenus ne sont pas cohérents.

 

J'envoie dans une boucle for,  la valeur  32767, pour verifier le bon fonctionnement du VI(qui doit me donner en sortie des états hauts continus sur chaque bit (DI0,DI1...DI5)).

 

 

 

Les oscillogrammes obtenus, sont ceux présents sur la sortie DI0.

 

Sur la vue 1, on observe que entre chaque éxécution  un temps de 279 us apparait.

 

 Ensuiste sur la vue 2( correspondant à un zoom des pics que l'on visualise sur la vue 1), on obtient bien un état haut d'une durée de la boucle timée que je souhaite, mais entre chaque bit de chaque mot, un état bas apparait aussi.

Le nombre de creneau à l'etat haut correspond bien aux nombres d'iterations de la boucle for( meme si à premiere vue on endénombre 14 mais dans les 2 rectangles rouges, il y a 2 créneaux juxtaposés.

 

Je souhaiterais savoir pourquoi j'obtiens ces oscillogrammes, je pense que ces temps à l'etat bas peuvent correspondre aux temps d'éxécution des boucles, mais comment est-il possible d'obtenir mes valeurs sans ses états bas et ainsi obtenir un état haut continu?

 

Je vous remercie,

 

PNI

Tout télécharger
0 Compliments
Message 7 sur 10
4 896 Visites

Avez-vous résolu votre problème de chronogramme?

 

Cordialement, 

0 Compliments
Message 8 sur 10
4 834 Visites

Bonjour,

 

J'ai modifié mon programme.

En effet les différentes boucles ne permettaient pas d'avoir les données en permanence d'où les différents états bas.

 

Je vais donc utiliser une mémoire dans la partie FPGA pour récuperer les différentes valeurs arrivant sur le DMA.

 

Merci pour votre aide

 

PNI

0 Compliments
Message 9 sur 10
4 812 Visites

Bonjour,

 

Encore quelques problèmes pour la communication FPGA vers cible RT.

J'ai réalisé un sous VI qui me délivre 4 valeurs.J'utilise alors le VI "Build Array" pour construire un tableau et pouvoir envoyer ces valeurs dans le bloc "DMA ouput FIFO Write".

 

Dans la tache FPGA, la lecture du DMA peut seulement me delivrer les valeurs une par une.Je ne vois pas comment lire les données du DMA dans la partie FPGA.

J'ai utilisé 3 sorties digitales pour tester si une valeur était recue.

 

J'utilise, pour la communication Host vers FPGA, l'exemple donné par Labview qui se nomme "Basic DMA output"

 

J'ai fais des recherches sur la communication Host vers FPGA, mais celle-ci me parait moins abordée que la communication FPGA vers Host.

 

Je vous remercie de votre aide,

 

PNI

0 Compliments
Message 10 sur 10
4 753 Visites