Explication détaillée du processus de base du développement FPGA

Le FPGA est un dispositif logique programmable, qui est hautement programmable et flexible, contrairement aux circuits câblés traditionnels. La méthode de conception du FPGA comprend deux parties : la conception matérielle et la conception logicielle. La conception matérielle comprend le circuit de la puce FPGA, la mémoire, le circuit d'interface d'entrée et de sortie, etc., et la conception logicielle est le développement du programme HDL, ainsi que le débogage conjoint du logiciel et du matériel. .

Cet article présente principalement le processus de base de la conception FPGA, afin que chacun puisse avoir une compréhension globale du processus de développement FPGA.

1. Le processus de développement de base du FPGA

Le processus de conception FPGA comprend principalement plusieurs étapes telles que l'analyse des exigences de développement, la construction du cadre de conception, la conception du circuit matériel, la programmation logicielle et les tests de vérification.Chaque étape nécessite un logiciel de développement EDA professionnel et des outils de programmation pour le support.

Grâce à ces outils, les concepteurs peuvent effectuer des opérations de simulation, de synthèse, de mise en page et de routage sur FPGA, afin de réaliser le développement et l'optimisation des puces FPGA.

2. Introduction au processus spécifique

1. Définition de la conception

Avant le début du projet de conception FPGA, selon les exigences de la tâche et la fonction du système, équilibrez la vitesse de travail et les ressources et les coûts de l'appareil lui-même, sélectionnez le schéma de conception approprié et le type d'appareil approprié, et concevez et définissez l'ensemble du projet selon la conception de l'architecture des exigences fonctionnelles.

Le but de la conception de l'architecture est de convertir les exigences de conception en structure matérielle, de déterminer la division du module, le mode de transmission du signal, la relation temporelle, etc. Lors de la conception de l'architecture, nous devons prendre en compte de nombreux aspects tels que la complexité de la conception, l'utilisation des ressources et la consommation d'énergie.

Cette pièce nécessite un FPGA expérimenté pour la conception, et le schéma de conception doit être analysé et vérifié pour s'assurer que les ressources et les performances du dispositif FPGA peuvent répondre aux exigences fonctionnelles. Il peut être nécessaire d'itérer plusieurs versions. Cette partie nécessite une accumulation d'expérience.

2. Mise en œuvre du HDL

Cette partie consiste principalement à écrire des codes. Selon les exigences de conception et la conception de l'architecture, les modules fonctionnels sont divisés en sous-modules, puis les codes de module correspondants sont écrits. Les langages HDL couramment utilisés sont verilog HDL et VHDL.

Cette partie concerne le développement verilog. Il est recommandé d'utiliser l'environnement de développement de Vivado+Visual Studio Code. C'est très pratique pour écrire du code.

3. Simulation fonctionnelle

La simulation fonctionnelle est le processus de vérification des fonctions logiques avant la compilation et est principalement utilisée pour la vérification.

La simulation à ce moment ne prend pas en compte les informations de retard du circuit, et ne peut détecter que la fonction logique, et ne peut pas garantir l'exactitude du fonctionnement de la carte supérieure.

La simulation fonctionnelle doit écrire un stimulus de test, et il est nécessaire d'écrire une logique de stimulus de test en fonction de la fonction à tester.

La simulation fonctionnelle est une méthode de vérification très importante, qui peut détecter les problèmes et les erreurs dans la conception le plus tôt possible, réduisant ainsi le travail de débogage et de modification ultérieur.

Les logiciels de simulation couramment utilisés incluent le simulateur et le simulateur de modelsim de Vivado.Parmi eux, la vitesse de simulation de modelsim est plus rapide que celle de Vivado.Il est recommandé d'utiliser la simulation de modelsim.

4.  Synthèse logique

La synthèse (synthèse) est le processus de compilation de l'entrée de conception dans une netlist logiquement connectée composée d'unités logiques de base telles que des portes ET, des portes OU, des portes NON, des RAM et des bascules. Le but de la synthèse est de convertir des descriptions abstraites de niveau supérieur en descriptions de niveau inférieur et de les optimiser pour améliorer les performances et l'efficacité du circuit.

L'optimisation synthétique optimise les connexions logiques générées en fonction des objectifs et des exigences, rend la conception hiérarchique planaire et fournit un support de mise en œuvre pour le logiciel de routage et de disposition FPGA.

Le temps de synthèse est lié à la taille du projet FPGA, plus le projet est complexe, plus le temps est long.

5. Simulation post-synthèse

La simulation post-synthèse consiste principalement à vérifier si le résultat de la synthèse est conforme à la conception d'origine, mais cette simulation prend du temps et consomme des ressources. Généralement, cette simulation peut être ignorée. Elle n'est pas aussi fiable que le débogage directement sur le conseil.

6. Mise en œuvre et mise en page

Cette étape est une étape très importante dans le processus de conception FPGA.La netlist logique générée par synthèse peut être configurée sur une puce FPGA spécifique, et c'est aussi une étape très chronophage.

Selon les contraintes de synchronisation et la structure de disposition de chaque unité logique de la puce, la disposition et le routage configurent raisonnablement les primitives matérielles et les unités sous-jacentes dans la netlist logique à la structure matérielle inhérente à l'intérieur de la puce via les ressources de connexion. équilibre entre l'optimisation de la vitesse et l'optimisation de la surface.

Vous pouvez définir les stratégies d'implémentation, de disposition et de routage sur le logiciel de développement, et généralement utiliser les paramètres par défaut.

7.  Simulation de chronométrage

La simulation de synchronisation, également appelée post-simulation, détecte principalement si la synchronisation du circuit après la disposition et le câblage n'est pas satisfaite. Cette partie est généralement moins utilisée, il est recommandé de sauter cette étape directement, et il est préférable de déboguer sur la carte.

8. Débogage de la carte

Généralement, le fichier de bits est transféré hors ligne à la puce FPGA via JTAG, le signal d'entrée réel est connecté et le test en temps réel en ligne est effectué.Ici, il y a une forte probabilité qu'il fonctionne anormalement lors du premier test.

Lorsque nous déboguons, nous devons être patients et recommander avec audace les causes possibles en fonction du phénomène, et ajouter les signaux du module avec des problèmes à ILA, capturer les signaux en temps réel et les analyser. Si vous n'avez vraiment aucune idée, il vous suffit de vérifier les modules un par un. , pour spéculer sur les causes possibles.

L'expérience de débogage de cartes doit être accumulée en permanence. Plus vous faites de projets, plus vous serez compétent. Faites attention au résumé et à la révision.

3. Résumé

Le processus de conception FPGA comprend des étapes telles que l'analyse des exigences de conception, la conception de l'architecture FPGA, l'écriture de code HDL, la synthèse logique, la disposition et le routage, le débogage de simulation et la génération de fichiers bitstream. Ces étapes ne sont pas terminées en une seule fois et peuvent nécessiter plusieurs itérations, une compilation et un débogage répétés pour terminer le projet. Bien sûr, l'expérience du projet doit être accumulée en permanence, réfléchir davantage et résumer davantage pour progresser.


Cet article continuera d'être mis à jour régulièrement, les mots de code ne sont pas faciles, cliquez sur ⭐️ aimez, collectez ⭐️ et cachez-le, ne vous perdez pas

Cet article va de l'entrée FPGA à la maîtrise de l'originalité. Si vous avez des questions, vous pouvez communiquer avec moi dans la zone de commentaires.

Partage de matériel d'apprentissage , code open source github : " base de connaissances FPGA "

Votre soutien est la plus grande motivation pour ma création continue ! Si cet article vous est utile, veuillez donner un encouragement, merci.

 

Guess you like

Origin blog.csdn.net/mengzaishenqiu/article/details/130715571