Dans ma société, nous avons précédemment conçu certaines cartes FPGA personnalisées et avons récemment commencé à utiliser des cartes FPGA commerciales standard ("COTS") avec des cartes filles FMC personnalisées.
Stade du prototype
Si vous en êtes encore au stade de la définition du projet, envisagez d'acheter au moins une carte FPGA COTS pour le prototypage. Vous pouvez câbler l'un de vos capteurs aux en-têtes d'E / S et faire une preuve de concept rapide. Cela vous donne une idée de la façon dont le projet pourrait fonctionner lorsqu'il est mis à l'échelle de nombreux capteurs, et estimez combien vous pouvez prendre en charge avec un FPGA donné.
Si le FPGA est trop petit ou trop lent ou que les outils sont inadéquats pour le travail, il est facile d'échanger un autre FPGA COTS à ce stade. (Enfin pas facile mais au moins gérable ...)
Si le firmware ne fonctionne pas à ce stade, c'est clairement à cause d'un problème de firmware, pas d'une erreur de conception de PCB personnalisée. Avec un firmware personnalisé et un PCB personnalisé, il est parfois difficile de dire de quel côté est en cause un problème.
Carte FPGA personnalisée par rapport à une carte FPGA commerciale standard
La conception d'une carte FPGA personnalisée est logique si le projet aura un cycle de vie court, un volume élevé ou s'il nécessite un facteur de forme plus petit que celui que vous pouvez obtenir avec une carte FPGA COTS et des cartes d'extension PMOD ou FMC.
Si le cycle de vie du projet dépasse la durée de vie du produit d'une puce de mémoire DDR (quelques années), la conception d'une carte fille FMC personnalisée peut être une meilleure alternative.
Le coût est un facteur dans cette décision. La plupart des cartes FPGA COTS sont quelque peu polyvalentes, conçues pour une flexibilité maximale. Si vous créez un produit à volume élevé et sensible aux coûts, il vaut probablement la peine de faire un design personnalisé; mais pour les petits volumes, vous feriez probablement mieux de vous concentrer sur la création d'une carte fille.
Quelle que soit l'approche choisie, certaines interfaces nécessitent une documentation claire et maîtresse: à l'interface entre les broches d'E / S de niveau supérieur FPGA et le reste de la carte, et à l' interface du connecteur entre les cartes. Ce sont des endroits où les emplacements des broches, les noms de réseau internes et les noms de réseau externes sont parfois incompatibles et échangés. Un tableau est une documentation suffisante; assurez-vous de garder cette table d'interface versionnée et sous contrôle de source. Avant d'envoyer des fichiers PCB à la fabrication, imprimez une copie de cette table d'interface, une copie du schéma et une copie du rapport FPGA pin / pad. Faites glisser un surligneur sur les papiers pour vérifier que chaque signal se connecte là où il devrait.
Pour les connecteurs, j'ai appris la manière difficile de fournir un "schéma de système" mécanique qui montre les cartes et les connecteurs correspondants ensemble sur un seul dessin coté. J'ai d'abord été brûlé par un système de connecteurs VME où la broche "A1" sur un connecteur ne correspondait pas à la broche "A1" sur l'autre connecteur. J'ai également vu des concepteurs oublier qu'une paire de connecteurs à angle droit entraîne une connexion d'image miroir (90 degrés + 90 degrés = 180 degrés). C'était un problème lorsque j'étais responsable de la carte mère et que plusieurs autres chefs de projet étaient responsables de diverses cartes filles.
Conseils sur la carte FPGA personnalisée
Commencez par la «conception de référence» du fournisseur FPGA, puis omettez toutes les pièces qui ne sont pas requises pour votre application. Ne retirez aucun condensateur de dérivation du FPGA et n'essayez pas de vous en sortir en utilisant moins de couches de PCB. Faites attention à la pile de couches (souvent trouvée à côté du dessin de forage); les composants à pas fin utilisent généralement 0,5 oz de cuivre au lieu de l'épaisseur standard d'une feuille de cuivre de 1 oz.
Le paquet BGA est une douleur à travailler. Le rendement n'est jamais aussi bon qu'avec les packages TQFP ou TQFN, et retravailler un BGA est presque impossible. Même l'inspection des problèmes d'assemblage nécessite un imageur à rayons X. Assurez-vous d'utiliser un fournisseur de services de fabrication sous contrat en qui vous avez confiance.
Les alimentations sont toujours délicates lorsque vous travaillez avec des cartes FPGA. Les besoins réels en alimentation du FPGA dépendent très fortement du flux binaire de configuration. Xilinx fournit un outil "d'estimation de puissance", mais l'estimation n'est valide que si le micrologiciel est complet. Lors d'un changement de micrologiciel de dernière minute, il y a un risque que les besoins en énergie soient supérieurs à ceux attendus. Prévoyez de laisser une certaine marge actuelle d'approvisionnement. Si l'estimation de puissance initiale indique que vous avez besoin de 560mA, allez-y et utilisez un régulateur de 1000mA. Le courant de sortie supplémentaire disponible ne fait aucun mal, mais un courant de sortie insuffisant entraînera un comportement aberrant du système.
S'il y a des broches FPGA non validées, faites-en ressortir autant que possible dans un en-tête. En cas de problème, ces broches non validées deviennent une ressource de diagnostic précieuse pour sonder les signaux à l'intérieur du FPGA.