banner

Nouvelles

Jun 09, 2023

Hackster's FPGAdventures : construire une logique à l'aide de Libero SoC sur le kit Microchip PolarFire SoC Icicle

Jusqu'à présent, dans nos FPGAdventures, nous avons joué avec à peu près tout, à l'exception du FPGA lui-même, en examinant comment la partie de traitement à usage général du SoC PolarFire au cœur du kit Icicle de Microchip peut être utilisée pour tout exécuter à partir d'un système entièrement fonctionnel. Distribution Linux en code bare-metal - même les deux en même temps, grâce aux capacités intelligentes de multitraitement asymétrique (AMP) de la plate-forme.

Cette fois-ci, nous plongeons dans la vraie viande du kit : utiliser Libero SoC, l'environnement de développement intégré (IDE) de Microchip et la chaîne d'outils pour ses produits FPGA, pour créer un circuit logique de base, le synthétiser et le déployer sur la carte. .

La première chose à comprendre à propos de Libero SoC, une fois que vous avez parcouru les étapes requises pour vous inscrire à une licence gratuite et déployer le serveur de validation de licence archaïque sur votre poste de travail, c'est que la configuration système requise de Microchip est loin d'être une recommandation, mais plutôt un absolu Exigence : lorsque l'entreprise vous indique que vous aurez besoin de 16 Go de RAM, vous devez vous assurer que vous disposez d'au moins 16 Go de RAM. Exécuter le logiciel avec moins est possible, ce qui peut vous induire en erreur en pensant que tout va bien - mais vous constaterez que vos projets échouent sans erreur lors de l'étape de synthèse. L'outil de placement et de routage épuise la RAM du système et tombe sous le coup du tueur de mémoire insuffisante, même pour les conceptions les plus simplistes, sortant d'une manière qui échoue le processus mais sans une erreur correspondante pour vous diriger vers le problème.

Une fois que vous avez un poste de travail convenablement charnu à portée de main, vous devez commencer à apprendre les tenants et les aboutissants de ce qui est une interface utilisateur très chargée. La bonne nouvelle pour un fabricant venant du froid est que Microchip a un guide étape par étape, qui vous guide tout au long du processus – du démarrage de votre premier projet à la synthèse du flux binaire et à son affichage sur le FPGA. Il s'agit en fait d'un didacticiel sur rails, mais suffisant pour vous permettre de démarrer et d'apprendre les bases de l'interface Libero SoC quelque peu encombrée. Malheureusement, ce n'est pas directement applicable au kit PolarFire SoC Icicle; au lieu de cela, il a été écrit pour l'ancien kit PolarFire Splash de la société.

Pour la majorité du processus, cela n'a pas d'importance. Le démarrage d'un nouveau projet est le même pour tous les kits de développement de Microchip ou les produits FPGA nus, bien que vous deviez déterminer avec laquelle des nombreuses variantes de PolarFire SoC vous travaillez pour configurer correctement l'environnement. Ce n'est vraiment que lorsque vous avez atteint la partie la plus sérieuse du processus et que vous commencez à concevoir quelque chose que vous rencontrerez un véritable obstacle, cependant : les numéros de broches et les fonctions du SoC PolarFire ne correspondent pas à l'ancien PolarFire, et en tant que Par conséquent, les instructions du didacticiel pour le PolarFire Splash Kit ne peuvent pas être appliquées directement au PolarFire SoC Icicle Kit.

Il n'y a pas vraiment de solution rapide pour cette barre, ce qui est évident : remplacer les numéros de broches suggérés par ceux disponibles - et d'utilisation pratique - sur le kit PolarFire SoC Icicle. Pour ce faire, vous devez afficher les schémas du SoC PolarFire et explorer la numérotation des broches pour déterminer les entrées et les sorties que vous pourriez appliquer à votre conception pour qu'il fasse réellement quelque chose d'utile ; il n'y a pas de mappage par défaut pratique dans Libero SoC, ce qui vous permettrait, par exemple, de sélectionner "LED1" dans une liste déroulante. Cela devrait donc être la première étape de tout projet donné - et vous trouverez peut-être utile de créer une petite feuille de triche d'épingles courantes à avoir à portée de main lorsque vous travaillez avec le kit Icicle.

Il existe une approche alternative, bien qu'elle ne soit pas abordée dans les didacticiels de l'entreprise : la conception de référence du kit PolarFire SoC Icicle, publiée par Microchip sur GitHub sous une licence open source non spécifiée. Cela fournit un script qui peut être chargé dans Libero SoC pour générer un gateware avec, explique la société, "la même fonctionnalité ou une fonctionnalité étendue" que celle déjà chargée sur le FPGA depuis l'usine - pratique si, ayant progressé considérablement plus loin dans la courbe d'apprentissage que les tutoriels vous guideront, vous souhaitez étendre ou améliorer la fonctionnalité du stock plutôt que de la remplacer purement et simplement.

Le chargement du script dans Libero SoC diffère du didacticiel pas à pas, mais il est possible de combiner les deux approches en une seule. "C'est très utile comme point de départ", explique Leonardo DiCarlo de Microchip à propos du projet de référence. "Vous n'avez même pas besoin de générer le projet, vous pouvez simplement utiliser comme référence les mêmes contraintes que celles utilisées ici. Dans le [fichier] ICICLE.pdc, vous trouverez les choses habituelles utilisées pour les tests comme les boutons de commutation, les LED, etc. Vous pouvez importez directement ce fichier. Vous devez juste vous assurer que le nom du port de sortie que vous avez utilisé correspond à celui qui y est utilisé, sinon vous pouvez simplement modifier le nom.

Comme on peut s'y attendre d'un outil de niveau entreprise pour le travail de développement FPGA, Libero SoC n'est pas le logiciel le plus accueillant pour les nouveaux arrivants, y compris les fabricants. Les guides de Microchip vous mèneront jusqu'ici, mais vous devrez certainement passer beaucoup de temps à jouer avec avant de vous sentir en confiance, en particulier si vous venez aux FPGA à partir d'une plate-forme plus immédiatement accessible comme les microcontrôleurs.

L'investissement en vaut la peine - et SmartDesign de Microchip est essentiel pour vous permettre de vous mettre sur pied le plus rapidement possible. Traditionnellement, le gateware pour FPGA est écrit à la main à l'aide d'un langage de description matérielle (HDL) - une approche textuelle analogue à l'écriture de MicroPython pour un Raspberry Pi RP2040 ou de C/C++ pour un Arduino. SmartDesign est quelque chose de plus proche de Scratch, mais pour les FPGA : les conceptions matérielles peuvent être esquissées à l'écran sous forme de schémas et sont automatiquement transformées en code HDL - et, à partir de là, en gateware - par Libero SoC.

Mieux encore, Microchip fournit une bibliothèque saine de composants qui peuvent être chargés dans Libero SoC et utilisés comme blocs de construction pour la conception de votre gateware - tout, des portes logiques booléennes de base aux mémoires et aux périphériques d'entrée/sortie. La bibliothèque peut être recherchée librement, bien que les pièces portent souvent des noms comme "DFN1C0", qui sont peut-être un peu obliques pour le nouveau venu, et un objet choisi simplement glissé sur le SmartDesign Canvas - où il se transforme en un symbole schématique.

Pour tester la fonctionnalité, nous avons suivi les conseils du didacticiel de Microchip et choisi probablement le composant le plus simple : une porte ET booléenne, qui envoie sa sortie singulière à l'état haut uniquement lorsque ses deux entrées sont également à l'état haut. L'ajout à la conception est un simple cas de glisser-déposer, bien que le câblage de ses entrées et sorties prenne un peu plus de temps.

Pour notre conception de porte ET simple, nous avons besoin de deux entrées - des interrupteurs à bouton-poussoir, pour rendre les choses aussi simples que possible lorsque vient le temps de tester le matériel - et une seule sortie. En regardant à travers le schéma ou les exemples de fichiers de projet, la broche V14 se connecte à LED1, nous donnant notre sortie ; V19 et U18 se connectent chacun à un interrupteur à bouton-poussoir, fournissant les deux entrées dont nous aurons besoin pour interagir avec notre conception FPGA de base. Si nous voulions câbler des boutons externes, d'autres broches se connectent à l'en-tête d'entrée/sortie à usage général (GPIO) de style Raspberry Pi ou à la prise mikroBUS - mais pour nos besoins, les commutateurs à bouton-poussoir intégrés fonctionneront bien.

Une fois que les jambes virtuelles de la pièce sont câblées, ce qui nécessite quelques étapes moins évidentes, notamment la "promotion" de ses connexions au "niveau supérieur", la création du HDL est un processus en un clic. À ce stade, les besoins en mémoire pour Libero SoC n'ont pas été un problème - mais la prochaine étape du processus, la synthèse, est l'endroit où le logiciel commence à consommer de la RAM. Double-cliquer sur l'option Synthesize dans Design Flow lance le processus de transformation de votre création en gateware chargeable sur le FPGA, en appelant un outil externe appelé Synplify Pro - une licence pour laquelle est incluse dans la licence gratuite Libero SoC disponible pour tous les PolarFire SoC Icicle Kit utilisateurs. C'est lui qui gère la "compilation" du HDL, y compris le placement et le routage - l'équivalent FPGA de mettre des empreintes de composants sur un PCB et de les relier avec des traces de circuit.

Pour une conception simple comme la porte ET, c'est un processus assez rapide - mais à mesure que la complexité de la conception augmente, le temps et la mémoire nécessaires à la synthèse augmentent également. Rendez votre conception trop complexe et vous manquerez de ressources sur le FPGA - exactement de la même manière que vous pouvez manquer de mémoire ou de stockage de programme sur un microcontrôleur - et devrez le réduire ou choisir une puce de spécification plus élevée. dans la famille PolarFire SoC.

Une fois la synthèse terminée, il est possible de déployer le gateware sur le FPGA, bien que ce ne soit pas recommandé. Au lieu de cela, les conceptions FPGA doivent d'abord être exécutées par simulation - c'est là que la documentation de Microchip prend un peu de recul. Le didacticiel PolarFire Splash Kit de la société, que nous avons suivi jusqu'à présent à l'exception des modifications requises pour la compatibilité PolarFire SoC, saute complètement cette étape - et il est difficile de blâmer la société pour cela, car il s'agit d'un sujet extrêmement complexe. Tout ce dont vous avez besoin est là dans Libero SoC, mais bien que le trouver soit assez simple, pouvoir l'utiliser demande beaucoup d'apprentissage.

La simulation de saut fournit un moyen rapide de pouvoir appuyer sur les boutons du kit Icicle et d'avoir une LED qui s'allume et s'éteint en conséquence - prouvant que vous avez, en fait, créé une porte ET fonctionnelle, qui est liée au broches de votre choix et, parmi les broches, les interrupteurs à bouton-poussoir et les LED du kit Icicle - mais ne vous aidera pas lorsque vient le temps de concevoir des projets plus complexes.

Et c'est ici que les espoirs de Microchip de voir le kit PolarFire SoC Icicle largement adopté par la communauté des fabricants, plutôt que par l'industrie et le milieu universitaire, pourraient s'effondrer. Sa documentation conviviale pour les débutants est écrite pour une ancienne carte de développement, et non pour le nouveau kit PolarFire SoC Icicle, et abandonne le lecteur avant ce qui est sans doute la partie la plus complexe et la plus vitale du flux de conception ; sans nouveau matériel mieux adapté au nouveau public cible de l'entreprise, de nombreux fabricants sont susceptibles d'abandonner la plate-forme pour quelque chose de plus accessible avant d'obtenir quelque chose de plus complexe qu'un additionneur construit.

Si c'est le cas, c'est dommage : la puissance et la flexibilité du SoC PolarFire sont impressionnantes, tout comme sa capacité à combiner FPGA et traitement à usage général de classe application sur un seul appareil. Il y a tellement de potentiel pour des créations intéressantes, et si Microchip peut trouver un moyen de briser les barrières, il y a peu de limites à ce que la communauté des fabricants pourrait faire avec le kit Icicle et les puces SoC PolarFire qui le pilotent.

Rejoignez-nous la prochaine fois lorsque nous examinerons certaines des choses que la communauté a déjà faites avec le SoC PolarFire et discuterons avec Microchip de ses plans pour l'avenir de la plate-forme.

Plus d'informations sur le kit PolarFire SoC Icicle sont disponibles sur le site Web de Microchip et peuvent également être trouvées sur la page produit d'Avnet.

Lire toute la série :

PARTAGER