Ouvrez un terminal et exécutez les commandes suivantes :
source /opt/Xilinx/Vivado/2019.1/settings64.sh
source /opt/Xilinx/SDK/2019.1/settings64.sh
cd /Data/etudiant/soc2020
LANG=en_US.UTF-8 vivado &
Dans la fenêtre d’accueil de Vivado, choisissez Create Project et renseignez les paramètres suivants :
Page | Champ | Valeur |
---|---|---|
Project Name | Project name | zybo-minimal |
Project location | fpga |
|
Create project subdirectory | Oui | |
Project Type | RTL Project | |
Add Sources | Target language | VHDL |
Add Constraints | Ajoutez le fichier fpga/conf/ZYBO_Master.xdc |
|
Copy constraints file into project | Oui | |
Default Part | Family | Zynq-7000 |
Package | clg400 | |
Speed | -2 | |
Part | xc7z010clg400-2 |
À cette étape, nous allons définir le schéma de notre System-on-Chip en ajoutant et en interconnectant des blocs IP.
Le constructeur, Digilent, fournit déjà un projet complet qui peut servir de base pour tous les développements sur la carte ZYBO. Ici, nous avons choisi de développer un projet plus petit en partant de zéro afin de mieux comprendre comment est construit un tel système.
zybo_minimal_design
et validez.Notre système sera construit autour d’un processeur ARM Cortex A9 intégré au FPGA. Nous commençons par ajouter le processeur au schéma. Nous devons également le configurer pour activer les périphériques nécessaires au fonctionnement du noyau Linux.
fpga/conf/ZYBO_zynq_def.xml
.Ajoutons des périphériques d’entrées/sorties simples (GPIO) afin de piloter les voyants de la carte et les boutons-poussoirs à partir du processeur.
Composant | Champ | Valeur |
---|---|---|
axi_gpio_0 |
All Outputs | Oui |
GPIO Width | 4 | |
axi_gpio_1 |
All Inputs | Oui |
GPIO Width | 4 |
gpio_rtl_0
.leds
.gpio_rtl_1
.btns
.Dans l’onglet Address Editor, vous pouvez afficher et modifier les adresses affectées à chaque périphérique vu du processeur.
L’étape de validation peut afficher des Critical warnings de la forme :
[PSU-1] Parameter : PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_0 has negative value -0.073. PS DDR interfaces might fail when entering negative DQS skew values.
Pressez OK et ignorez ces messages.
À cette étape, Vivado va générer des fichiers sources VHDL à partir de notre schéma.
zybo_minimal_design
et choisissez Create HDL Wrapper.Le fichier de contraintes fourni par Digilent définit la correspondance entre les noms des ports d’entrée/sortie du schéma et les numéros de broches du FPGA. Pour le moment, toutes les affectations de broches sont en commentaires et les noms de ports doivent être modifiés.
ZYBO_Master.xdc
.btn
et led
(lignes 29 à 61) en retirant le premier #
de chaque ligne
(ou utilisez le bouton « // » de la barre d’outils).led
en leds_tri_o
.btn
en btns_tri_i
.Pour terminer, nous allons synthétiser le schéma, produire un fichier de configuration pour la logique programmable du composant Zynq 7000, et produire un fichier de définition de matériel destiné à configurer un noyau Linux.