Développement ZYNQ-Linux (2) Construction du projet Vivado, conception et construction de Block Design, configuration de base PS, PL IP

1. Créez le projet Vivado de Zynq

Après avoir ouvert Vivado 2018.3, cliquez sur Créer un projet pour commencer à créer le projet :

La première étape est une introduction, cliquez simplement sur Suivant pour passer à l'étape suivante :

Définissez le nom du projet et l'emplacement d'enregistrement du projet. Le nom ne peut être composé que de lettres anglaises, de traits de soulignement et de chiffres, et commencer par une lettre. Le chemin de l'emplacement enregistré ne peut pas contenir de signes de ponctuation chinois ou autres. Après la configuration, cliquez sur Suivant :

Conservez les paramètres par défaut et cliquez sur Suivant : 

Entrez le modèle de puce spécifique dans la zone de texte Rechercher (selon le diagramme schématique et le personnel de dessin du matériel à déterminer, parfois le diagramme schématique n'est pas marqué avec précision), sélectionnez la puce à utiliser et cliquez sur Suivant :

Entrez l'aperçu du nouveau projet et cliquez sur Terminer après avoir confirmé qu'il est correct de terminer le nouveau projet :

  

2. Créer une conception de bloc

2.1 Créer une conception de bloc

Cliquez sur la conception de bloc d'IP INTEGRATOR sous la colonne PROJECT MANAGER, conservez la valeur par défaut dans la boîte de dialogue contextuelle, cliquez sur OK et entrez la conception de conception de bloc :

Ajoutez les ressources de base IP requises par le projet dans la zone Diagramme, effectuez l'IP et la configuration et l'extraction de port, etc. :

Ajoutez le noyau IP de ZYNQ, cliquez sur le signe "+" au milieu de la zone Diagramme, saisissez zynq dans la recherche du menu contextuel, double-cliquez sur le système de traitement ZYNQ recherché, complétez l'IP et l'ajout du Zynq. puce, et l'éditeur d'adresse apparaît sur le côté droit de la sélection de la page de diagramme :

2.2 Configuration des ressources PS

Double-cliquez sur le noyau IP de Zynq pour entrer les paramètres des ressources Zynq, et entrez par défaut dans le premier aperçu des ressources Zynq, qui montre les ressources disponibles de Zynq (la partie verte représente configurable, double-cliquez pour entrer dans l'interface correspondante) :

Sélectionnez Broches d'E/S périphériques pour accéder à la configuration des broches d'E/S périphériques (interface périphérique fournie par PS) :

2.2.1 Configuration de l'interface périphérique

Sélectionnez la valeur de tension de la banque 0 et de la banque 1. Dans la conception générale, la banque 0 est LVCMOS 3,3 V, la banque 1 est LVCMOS 1,8 V et la zone périphérique est définie sur la périphérie du PS. Vérifiez-le directement et vérifiez si le la connexion entre l'interface et les broches du diagramme schématique est correcte. Cohérent (le numéro 0 ~ 53 sur le côté droit du périphérique indique le numéro de broche d'E/S du PS, et EMIO indique la broche d'E/S du PL) :

Généralement, les paramètres de PS sont relativement courants. Après vérification, vous devez vérifier avec le diagramme schématique. En cas de divergence, veuillez vérifier auprès d'un collègue dessinateur matériel.

1. Quad SPI Flash : doit généralement être vérifié, l'interface de données de la puce QSPI configurée pour Zynq est utilisée pour stocker le fichier de démarrage de Zynq, sélectionnez Single SS 4bit IO (doit être déterminé selon le manuel QSPI spécifique), et les broches PS occupées utilisent généralement la valeur par défaut ;

2. Il existe deux options pour Ethernet. Choisissez en fonction des besoins spécifiques. Généralement, choisissez Ethernet 0 (non absolu) pour le port réseau sur le panneau avant de la carte. Après avoir déterminé si la broche est PS ou PL selon le diagramme schématique , choisissez Enet0 ou EMIO. Développez Ensuite, MDIO détermine également si la broche est PS ou PL selon le diagramme schématique et choisit MDIO ou EMIO ;

3. Il existe deux options pour USB. Dans la conception, USB0 est essentiellement sélectionné comme port USB (USB1 entrera en conflit avec la broche SD0), qui est utilisé pour se connecter au disque U ou au lecteur de carte :

 

4. Il existe deux options pour SD. Dans la conception générale, SD0 est l'emplacement pour carte SD et SD1 est EMMC. S'il y a une puce EMMC sur la carte, SD0 et SD1 doivent être vérifiés. Peu importe s'il y a EMMC ou non, SD0 doit être sélectionné. La configuration courante de SD est la suivante (consultez le diagramme schématique) :

5. Il existe deux types de SPI, qui peuvent être sélectionnés en fonction des besoins de conception. Il faut également faire attention à savoir si la position de la broche est PS ou PL ;

6. Il existe deux UART. À l'heure actuelle, presque toutes les conceptions utilisent UART 1 comme interface de débogage série sur le panneau avant, donc UART 1 doit être vérifié et les broches sont fixées pour utiliser PS 48 et 49 :

7. Il existe deux options pour I2C, qui peuvent être sélectionnées en fonction des besoins de conception. Il faut également faire attention à savoir si la position de la broche est PS ou PL ;

8. CAN, TTC, SWDT, PJTAG et TPIU sont peu utilisés dans la conception actuelle et seront complétés ultérieurement ;

9. Enfin, vérifiez GPIO MIO et GPIO EMIO, indiquant que les broches d'E/S PS et PL restantes peuvent être utilisées comme GPIO ordinaire.

Après avoir terminé les réglages des broches d'E/S périphériques ci-dessus, vous pouvez choisir la configuration MIO pour vérifier les broches, la tension, la vitesse, etc. ;

2.2.2 Configuration PS-PL

Sélectionnez Configuration PS-PL, vous pouvez configurer les paramètres de l'interface interactive entre PS et PL, configurer selon vos besoins, généralement conserver la valeur par défaut, parfois vous devez configurer le débit en bauds du port série ou configurer l'interface HP :

2.2.3 Configuration de l'horloge

Sélectionnez Configuration de l'horloge pour accéder à la configuration de l'horloge :

La plupart des horloges peuvent conserver les paramètres par défaut. Notez que l'horloge DDR peut devoir être ajustée en fonction du démarrage ultérieur du système. Si le système ne démarre pas ou signale une erreur, vous devrez peut-être essayer de ralentir. D'autres éléments qui peuvent devoir être configurés sont les horloges de structure PL, qui sont déterminées en fonction des horloges requises par les cœurs IP PL ajoutés ultérieurement. Par exemple, certains des cœurs IP PL de ce projet nécessitent 100 M d'horloges, d'autres nécessitent 200 M d'horloges. et certains nécessitent des horloges de 125 Mo. D'autres ont besoin d'une horloge de 10 Mo, qui peut être réglée comme indiqué dans la figure ci-dessous. Pour les cœurs IP qui ne nécessitent pas de haute précision, vous pouvez également multiplier la fréquence de l'horloge en ajoutant l'IP de l'horloge pour obtenir l'horloge IP. horloge requise.

2.2.4 Configuration des paramètres DDR

Sélectionnez la configuration DDR, définissez la DDR, définissez principalement le modèle DDR, selon le diagramme schématique et confirmez avec vos collègues matériels, sélectionnez le modèle DDR correct et conservez généralement les options par défaut pour les autres options :

2.2.5 Configuration des interruptions

Sélectionnez Interruptions, définissez l'interruption, vérifiez-la généralement comme indiqué dans la figure ci-dessous, pour l'interruption du port réseau PL, PL IIC, etc. :

3.3 Ajouter un noyau IP PL

Une fois le réglage terminé, cliquez sur OK et revenez au diagramme. À ce moment, de nouvelles broches apparaîtront dans le noyau IP de ZYNQ : 

2.3.1 Noyau IP de réinitialisation du système

Ajoutez d'autres cœurs IP en fonction des besoins du projet. Généralement, la réinitialisation du système du processeur est un cœur IP qui doit être ajouté. Cliquez sur le signe « + » pour rechercher « réinitialisation » et trouver :

Après l'ajout, vous pouvez cliquer sur Exécuter l'automatisation des blocs pour exporter automatiquement le port :

Cliquez sur Exécuter l'automatisation de la connexion pour une connexion automatique :

2.3.2 Noyau IP du port réseau GE

Continuez à ajouter d'autres cœurs IP, tels que les ports réseau GE de PL (2 ports réseau GE de PL sont ajoutés ici).

Ceci n'est qu'un exemple. Pour d'autres types de ports réseau, reportez-vous aux documents associés de "GE Network Port" .

Exécutez à nouveau Run Block Automation et Run Connection Automation (cochez tout) :

Ajoutez automatiquement le cœur IP d'AXI DMA, double-cliquez sur le cœur IP du sous-système Ethernet AXI 1G/2.5G et définissez les paramètres :

Choisissez 1 Gbit/s, l'interface PHY est généralement RGMII, SGMII ou 1000BaseX, sélectionnez en fonction des besoins spécifiques (la connexion des différents PHY peut être différente, vous devez confirmer selon le schéma), les fonctionnalités MAC peuvent être conservées par défaut, ou vous peut ajuster la taille de la mémoire TX et la taille de la mémoire RX :

La synchronisation réseau et la logique partagée peuvent généralement être laissées par défaut. Si les deux ports réseau sont RGMII, la logique partagée de l'autre port réseau peut être définie sur "mode maître-esclave" :

Gardez simplement l'horloge à la valeur par défaut de 100 K (il semble correct de choisir 200 K)

 Ajoutez concat, pour les ruptures de connexion :

Double-cliquez pour définir le nombre de ports de concaténation (défini en fonction du nombre d'interruptions utilisées), ici fixé à 13 (en plus du port réseau, il y a d'autres cœurs IP comme AXI I2C qui doivent être interrompus) : 

 

Terminez manuellement la connexion interrompue, doout est connecté à IRQ_F2P de ZYNQ et le port d'entrée est connecté au port réseau et à l'interruption DMA :

Corrigez manuellement la connexion des autres horloges :

Organisez automatiquement la mise en page :

Pour les paramètres spécifiques et les connexions d'autres ports réseau, veuillez vous référer à Application d'interface haut débit et débogage -GE.docx 

2.3.3 Noyau IP AXI IIC

Ajoutez le noyau AXI IIC :

Exécutez Run Connection Automation pour une connexion automatique et une interruption de connexion manuelle :

Il convient de noter que le noyau IP de l'AXI IIC doit définir le délai. S'il n'est pas défini, certaines cartes auront des erreurs « Erreur d'entrée/sortie » pendant le fonctionnement du logiciel , ce qui empêchera l'interface IIC de communiquer normalement. Pour ajouter la méthode, double-cliquez sur AIX IIC , définie comme indiqué dans la figure ci-dessous, la valeur d'expérience de retard est 50 .

2.3.4 Autres cœurs IP

Les étapes d'ajout et de connexion des autres cœurs IP sont les mêmes que ci-dessus. AXI Chip2Chip Bridge doit confirmer avec FPGA s'il doit utiliser Aurora, et les deux côtés doivent être symétriques. Le cœur IP d'AXI Chip2Chip Bridge est généralement configuré et le wUser L'élément de largeur est généré automatiquement. Le FPGA doit être renseigné, et Chip2Chip côté FPGA. Celui-ci doit être cohérent avec Zynq.

Pour les paramètres spécifiques de C2C, veuillez vous référer aux documents pertinents de « Application C2C » dans « Interface générale » .

2.4 Vérification de la connexion

Une fois le projet construit, vous pouvez vérifier la connexion.

S'il n'y a pas de problème, la fenêtre suivante apparaîtra, s'il y a un problème, une fenêtre d'erreur apparaîtra, modifiez le projet en fonction du message d'erreur jusqu'à ce qu'il n'y ait plus de problème.

2.5 Paramétrage de l'adresse principale IP

Définissez l'adresse IP principale dans l'éditeur d'adresses, dont la plupart peuvent être générées par allocation automatique. Parmi eux, l'adresse de Chip2Chip doit être fournie par FPGA (en même temps, vous devez faire attention à "Range"), et l'adresse de selectmap est fondamentalement inchangée, fixée à 0x43C00000.

3. Compilation du projet

Générer un wrapper HDL :

 

Utilisez les paramètres par défaut, cliquez sur OK et attendez :

La mise à jour disparaît une fois terminée et Output Products... est généré,

Utilisez les paramètres par défaut, cliquez sur OK et attendez la fin :

Mise en œuvre complète : 

 

Cliquez sur OK, il y a un "cercle" vert dans le coin supérieur droit :

Terminez l'implémentation et ouvrez la conception :

Sélectionnez Layout->I/O Planning dans le menu pour effectuer des contraintes de broches, principalement le numéro de broche (conforme au schéma) et la valeur de tension (choisissez généralement LVCOMS1.8 ou LVCOMS3.3, en fonction de la tension de la banque où se trouve la broche. situé) : 

Les contraintes de broches doivent correspondre aux broches du diagramme schématique. Une fois les contraintes terminées, cliquez sur Enregistrer pour créer un fichier de contraintes XDC, entrez le nom du fichier XDC et cliquez sur OK :

Certains projets peuvent avoir besoin d'ajouter les contraintes suivantes dans .xdc, sinon une erreur sera signalée lors de la compilation du port réseau :

create_clock -période 8.000 -nom ETH0_RGMI_rxc [get_ports ETH0_RGMI_rxc]

Générez un petit fichier après avoir enregistré :

Utilisez la configuration par défaut, cliquez sur OK et attendez que le fichier de bits soit généré. Le fichier de bits généré se trouve sous impl_1 dans le répertoire .run du répertoire du projet.

J'espère que vous aimez, préférez et suivez ! ! ! ヾ(o◕∀◕)ノ

Je suppose que tu aimes

Origine blog.csdn.net/qq_38584212/article/details/131498616
conseillé
Classement