Latence excessive dans la communication inter-FPGA

Randomblue

Latence excessive dans la communication inter-FPGA


J’ai 4 FPGA Spartan 6 connectés via des voies 64 bits, formant une ligne. (Autrement dit, FPGA1 est connecté à FPGA2, FPGA2 est connecté à FPGA3 et FPGA3 est connecté à FPGA4.)

J’ai divisé chaque voie 64 bits en deux voies 32 bits, une pour chaque « direction ». Je connecte ensuite les voies 32 bits pour former un grand bouclage de FPGA1 à FPGA4 et vice-versa.

Lors du test de ce bouclage (où FPGA1 conduit le test) avec un « marche 1 » se déplaçant tous les 100 cycles d’horloge, je remarque que le bouclage est irrégulier (le bit 7 ne monte pas assez vite, semble-t-il). Lorsque je réduis la vitesse de marche 1 pour me déplacer tous les 1000 cycles d’horloge, le test réussit.

FPGA1 est cadencé à 20 MHz, donc 100 cycles correspondent à 5 micro secondes. Un signal a-t-il vraiment besoin de plus de 5 micro secondes pour voyager du FPGA1 au FPGA4 et vice-versa? Qu’est-ce qui pourrait être à l’origine de cette latence excessive? (Les FPGA sont sur la même carte, étroitement acheminés les uns aux autres.)

mng

Avez-vous des registres à l’intérieur des FPGA ou les chemins ne sont-ils que des «fils»? Utilisez-vous des contraintes de temps?

Randomblue

Les chemins pour ces voies 32 bits ne sont que des fils.

Réponses


 mng

5μs

est beaucoup plus lent que ce à quoi je m’attendais pour une implémentation naïve, vous pouvez donc avoir d’autres problèmes. Vérifiez le Floorplanner ou l’éditeur FPGA pour voir à quoi ressemble la conception routée. Vous pouvez essayer d’ajouter une contrainte de synchronisation « pad to pad » si vous ne l’avez pas déjà fait.

Mais en général, les conceptions asynchrones sont déconseillées pour les FPGA. Je ne sais pas quel est votre objectif, mais pour la communication entre puces, la meilleure pratique consiste à mettre en œuvre une forme d’interface cadencée.

 

#la, communication, dans, excessive, inter-FPGA, latence)

 

google

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *