ZyboPong : jeu Pong sur Zybo avec Vivado

Introduction

Il s'agit de réaliser un clone élémentaire du jeu Pong apparu à la fin des années 1970.

La vidéo suivante présente le cahier des charges de ce mini-projet et donne des indications sur la génération des signaux nécessaires à l'affichage d'une image sur un écran connecté en VGA.

Création de l'IP du projet

Créer un projet de type RTL (comme dans l'exemple précédent) et le nommer ZyboPong.

Note : le projet créé est totalement vierge et doit être configuré pour cibler une carte Zybo comme dans le projet VHDL vu précédemment.

Créer un module IP capable de s'interconnecter au Processing System via un bus AXI comme cela a été vu dans l'exercice précédent.

Ce qui change par rapport au projet de l'exercice précédent :

Une fois l'ip en cours d'édition, on ne repart pas sur la création complète d'un fichier source contenant le comportement de l'ip mais on ajoute le fichier suivant : ipPong_core.vhd

Notes :

Afin de gagner du temps, remplacer les fichiers ipPong_v1_0.vhd et ipPong_v1_0_S00_AXI.vhd présents dans le dossier hdl de l'IP nouvellement créé par ceux là : ipPong_v1_0.vhd et ipPong_v1_0_S00_AXI.vhd

Il s'agit maintenant de :

Packager l'IP et quitter l'éditeur d'IP.

Diagramme fonctionnel du projet

De retour dans le projet ZyboPong, utiliser l'outil Create Block Design pour créer la structure matérielle complète de l'application :

Il faudra aussi créer les ports de sortie pour les sigaux sortants de l'instance de l'ipPong avec VGA_HS et VGA_VS comme scalaire et VGA_R, VGA_G, VGA_B avec un format vectoriel.

Avant la synthèse, l'implémentation puis la génération du bitstream, il faut ajouter le fichier de contraintes permettant de spécifier les broches pour la connexion à la prise VGA : vga_pinout.xdc

Terminer l'application Vivado HLx :

Programme C de l'application

Dans le SDK, créer un projet vide (Empty Project) nommé ZyboPong (revoir la procédure vue lors de l'exercice précédent si nécessaire).

Pour vous aider, récupérer le programme C zybopong.c en choisissant Enregistrer sous... et enregistrer-le dans le dossier ZyboPong.sdk\ZyboPong\src du projet.

Compléter le programme étape par étape en commençant par assurer le déplacement des raquettes, puis celui de la balle.

Notes :