Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial Internet of Things >> Embarqué

Conception FPGA embarquée : Un processus de développement complet

Conception FPGA embarquée : Un processus de développement completNote de l'éditeur : Alors que les algorithmes avancés continuent d'émerger pour les designs de produits intelligents, les développeurs peinent souvent à implémenter des systèmes embarqués capables de répondre aux exigences de traitement de ces algorithmes. Les FPGA fournissent la performance nécessaire, et les avancées récentes en capacité de dispositif et environnements de développement ont rendu la conception FPGA accessible à une gamme plus large d'ingénieurs. Cet extrait du Chapitre 4 de Architecting High‑Performance Embedded Systems fournit une revue complète des dispositifs FPGA, langages d'implémentation, et du processus de développement, et offre une visite pratique pour démarrer avec la conception FPGA.
1 : Ressources matérielles
2 : Langages d'implémentation
3 : Processus de développement (cet article)
4 : Construction d'un projet
5 : Implémentation

Adapté de Architecting High‑Performance Embedded Systems, par Jim Ledin.


Le processus de développement FPGA

À travers divers domaines d'application, le développement FPGA suit une séquence commune d'étapes qui guident les ingénieurs du concept au matériel fonctionnel. Les sections suivantes décrivent le flux de travail typique, soulignant les décisions clés et les meilleures pratiques.

Définition des exigences système

Les projets FPGA réussis commencent par une définition claire et sans ambiguïté de la fonctionnalité du système, des modes de fonctionnement et des caractéristiques clés. Documentez le comportement prévu en langage clair et partagez-le avec toutes les parties prenantes pour obtenir un consensus. Incluez des métriques de performance quantitatives — tels que taux d'échantillonnage d'entrée, intervalles de mise à jour de sortie, débit, latence et limites de puissance — ainsi que des contraintes sur la taille physique, la durée de vie de la batterie, la plage de température et le coût. Un ensemble d'exigences complet assure que toute conception répondant à toutes les spécifications est viable ; si une solution techniquement correcte échoue pour des raisons comme le coût, l'omission se situe probablement dans la phase d'exigences.

Une fois les exigences de haut niveau convenues, décomposez le système en sous-systèmes cohérents, chacun avec ses propres spécifications fonctionnelles et techniques. Dans les systèmes embarqués temps réel, la capacité de traitement numérique forme généralement un sous-système dédié avec son propre ensemble de contraintes.

Allocation de la fonctionnalité au FPGA

Lorsque les exigences de traitement numérique d'un système dépassent les capacités des microcontrôleurs ou processeurs, envisagez un FPGA. Les architectures qui bénéficient de matériel parallèle à haute vitesse sont des candidats privilégiés. Même si un processeur conventionnel pourrait répondre aux performances, un FPGA peut offrir flexibilité et potentiel de mise à niveau sur le cycle de vie du produit.

Après avoir décidé d'utiliser un FPGA, allouez les tâches de traitement pertinentes à celui-ci. Définissez les interfaces d'entrée et de sortie du FPGA, les taux de mise à jour, et les interactions avec les composants périphériques tels que ADC, DAC et dispositifs de mémoire.

Identification des fonctionnalités FPGA requises

Avec les responsabilités et interfaces du FPGA définies, compilez une liste des fonctionnalités de dispositif obligatoires. Considérez les exigences de ressources — cellules logiques, blocs DSP, mémoire — et les besoins en puissance et refroidissement. Les designs à faible coût, alimentés par batterie, peuvent utiliser des dispositifs plus petits avec refroidissement passif, tandis que les systèmes haute performance peuvent avoir besoin de grands FPGA avec refroidissement actif.

Les familles de dispositifs diffèrent par les fonctionnalités disponibles ; par exemple, certaines incluent des ADC intégrés pour réduire la complexité de la carte. Utilisez les exigences pour présélectionner les familles candidates, puis affinez vers des modèles spécifiques au fur et à mesure que les estimations de ressources deviennent plus claires.

Implémentation du design FPGA

Avec un dispositif candidat sélectionné et la fonctionnalité mappée, commencez l'implémentation en utilisant une suite d'outils fournisseur — couramment Xilinx Vivado ou Intel Quartus. Le processus commence généralement par un design de haut niveau, qui peut être exprimé comme un diagramme de blocs ou écrit directement en HDL (Verilog ou VHDL) ou langages de synthèse haut niveau tels que C/C++.

Itérez à travers les phases suivantes, affinez le design jusqu'à la production d'un bitstream fonctionnel :

Entrée de design
Définissez la logique du système en utilisant HDL, diagrammes de blocs, ou code C/C++. Ces artefacts décrivent le comportement prévu mais pas l'intégration physique.

Planification E/S
Assignez les broches E/S, définissez les standards de signal, et considérez les contraintes physiques comme le placement des broches et la longueur de trace pour les signaux haute vitesse. Les contraintes E/S, ensemble avec les contraintes de timing, guident le processus de synthèse.

Synthèse
Convertissez le HDL en netlist qui mappe la logique sur les ressources du FPGA choisi. Si les contraintes ne peuvent pas être satisfaites, la synthèse échoue et le design doit être revu.

Placement et routage
Placez les éléments logiques du netlist sur des ressources FPGA spécifiques tout en respectant les contraintes. Routez les interconnexions pour finaliser la mise en page physique. Le résultat est une configuration pleinement spécifiée.

Génération du bitstream
Créez le fichier de configuration qui charge la SRAM interne du FPGA. Ce bitstream est analogue à un exécutable logiciel et doit être chargé à chaque cycle de mise sous tension, généralement depuis la flash embarquée ou une source externe.

Après la production du bitstream, effectuez des tests approfondis pour vérifier la correction fonctionnelle.

Test de l'implémentation
Testez à chaque étape : simulez la logique HDL, validez le netlist synthétisé, et exécutez des tests hardware-in-the-loop sur la carte cible. Des tests complets atténuent les bugs rares qui peuvent miner la crédibilité du produit.

La prochaine section détaille un exemple pratique utilisant la carte Arty A7 et la suite d'outils Vivado.

Réimprimé avec la permission de Packt Publishing. Copyright © 2021 Packt Publishing


Conception FPGA embarquée : Un processus de développement completJim Ledin est le PDG de Ledin Engineering, Inc. Il apporte une expertise approfondie en conception, développement et test de logiciels et matériels embarqués, et est une autorité reconnue en cybersécurité des systèmes embarqués. Avec un B.S. en génie aérospatial de l'Iowa State University et un M.S. en génie électrique et informatique du Georgia Institute of Technology, Jim est ingénieur professionnel licencié en Californie, CISSP, CEH et CPT.

Contenus connexes :

Pour plus Embedded, abonnez-vous à la newsletter hebdomadaire d'Embedded.


Embarqué

  1. Conception de systèmes de commande à sécurité intrinsèque (fail-safe) pour la sûreté et la fiabilité
  2. Programmation systèmes embarqués : langages, architecture et applications
  3. Chatbots 101 : Processus de Conception, Architecture et Perspectives Pratiques
  4. Conception de Systèmes Embarqués : Étapes, Principes et Applications Réelles
  5. Analog Devices Présente IA, Réseautage Industriel et Solutions Alimentation à Embedded World 2019
  6. Axiomtek tBOX400-510-FL : PC transport dual-processeur avec switch PoE géré 10 ports intégré
  7. IBASE CMI300-988 : PC Mini-ITX ultra-compact avec AMD Ryzen Embedded V1807B
  8. MicroSys lance miriac MPX-LS1028A SoM : Edge computing avec IEEE TSN & graphiques 4K
  9. Maximiser la production avec les logiciels avancés de fabrication additive