Synthèse d’un jeu vidéo

Slides:



Advertisements
Présentations similaires
Télévision.
Advertisements

Évaluation diagnostique
Tension électrique aux bornes des prises de courant :
TRAITEMENT PROGRAMME DE L’INFORMATION
INCRUSTATION TEXTE ET HEURE DANS UNE VIDÉO
LES ECRANS PLATS ET LEURS FONTIONNALITES
Présentation d’un design de carte vidéo
Par Clément en vacances sur la Côte dAzur Le 02 Mars Pour bien comprendre voir dabord RADIORADIO (Découverte Junior – Gérard Villemin)Découverte.
INTERVENTION SUR UN SYSTEME TECHNIQUE
SECTION 3 L’INGÉNIERIE ÉLECTRIQUE
L’ évolution de la télévision.
Gestion des Périphériques
NOTE : Pour faire évoluer le diaporama, si le clic de souris ne fait rien utilisez les touches du clavier : Pg up Pg down.
Électronique numérique Intervenants : Boitier V. / Perisse T.
La vision de la couleur.
Représentation numérique de l’information
L ’acquisition d ’images
Technique Chapitre 2- Première partie Courants alternatifs
Illustrator – couleurs et formes géométriques

La numérisation de l'image N°1
Ch 2 : Couleur des objets Objectifs:
Bases de la micro informatique
Les présentations assistées par ordinateur (préAO)
DECOUVERTE DU MODULE ADOBE PHOTOSHOP
PARTIE A : LA CHIMIE, SCIENCE DE LA TRANSFORMATION DE LA MATIERE
Ivaldi-Brunel, Horel, Le Fur, Joly
Ceci est l’aide en ligne du TP les cotes tolérancées
© 2008 General Parts International, Inc. Written permission is required to copy or forward to anyone other than the intended recipient. 1 © 2008 General.
Création et présentation d’un tableau avec Word 2007
1 By B. Michel, UCL titre. Visualising 3D Movies on YouTube Pour faire des films 3D, il faut: 2 caméras, une grammaire adaptée, de l’expérience Pour produire.
La Lumière et les couleurs
- Allez sur Google et tapez ``SKYPE`` dans la zone de recherche
AGIR : Défis du XXIème Siècle.
Algorithmes sur les images dans Excel
Granulométrie de l’image
OBSERVER COULEURS ET IMAGES.
ARCHITECTURE D’UN SYSTEME MICROPROGRAMME
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Langages de description architecturale.
Projet Transversal Convertisseur XY vers VGA
Carte graphique 2D sur FPGA
COMPOSANTES INTERNES DE L’UNITE CENTRALE.
Ch 19 (20) Numérisation de l’information
PPE : Portail à commande par puce RFID
TRANSMISSION D’INFORMATION PAR FIBRE OPTIQUE
Matériel utilisé Montage Questions.
Algorithmique et programmation en
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Images télés Format JPEG Format MPEG
TP2 synthèse additive, synthèse soustractive
Mise au point de systèmes mixtes et évaluation de puissance : Un exemple d’application Anne-Marie TRULLEMANS- ANCKAERT FTFC’03 UCL-DICE, Place du Levant.
Utilisation de l ’oscilloscope
SURVEILLANCE VIDEO SUR RESEAU ETHERNET
TP N° 2 : OSCILLOSCOPE NUMERIQUE
TRAITEMENT D’IMAGE SIF-1033 Segmentation des images par détection de contours et d’arêtes u Détection des contours et arêtes u Dérivée première (gradient)
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Performance de circuits.
Synthèse d’un jeu vidéo
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Stage technique Cora.
Les périphériques d’affichage
TP N° 1 : OSCILLOSCOPE ANALOGIQUE
Tensions à l'Oscilloscope.
DUCKHUNT Olivier Agopian Antoine Christin Laurent Romieux Mathieu Rouyez.
L’image vidéo. Séquence 1 : l’image vidéo Le Pixel est un carré lumineux : => simple définition (SD), deux standards : plusieurs NTSC et PAL => haute définition.
Conception des pages Web avec
CHAPITRE II LA TENSION ALTERNATIVE
Télécharger :
Les bascules et registres
Les vues O.Legrand G.Seront. Les vues Dans Android, une ihm est composée de vues. Ces vues.
1 Initiation à la micro-informatique Le matériel un clic pour la suite… Moniteur.
Transcription de la présentation:

Synthèse d’un jeu vidéo en VHDL ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Structure de principe d’un jeu vidéo De façon simplifiée, un jeu vidéo est constitué de : Un noyau (CORE) chargé de gérer les caractéristiques primaires des objets animés à incruster dans l’image : positions, amplitudes, etc., ceci en fonction des règles comportementales du jeu. C’est ce noyau qui reçoit les commandes externes du jeu. Une unité d’affichage (DISPLAY) : c’est elle qui va produire les signaux de contrôle (synchros horizontale et verticale) et les signaux vidéo correspondant aux objets gérés par le noyau. L’aspect de ces objets (forme, couleur, etc.) est fonction des spécifications du jeu. ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Schéma structurel d’un jeu vidéo Spécifications standard vidéo caractéristiques primaires des objets du jeu CORE Gestion des objets du jeu DISPLAY Mise en forme des objets du jeu Signaux vidéo (Synchro, RVB) Commandes externes Spécifications comportementales Spécifications d’aspect ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Un standard vidéo simple : le système VGA (nom donné à l’interface : Video Graphics Adapter) Une image VGA est formée d’une trame de 480 lignes balayées de haut en bas, à raison de 60 trames par seconde. Chaque ligne comprend 640 pixels et est balayée de gauche à droite. De façon simplifiée, un écran VGA (LCD ou cathodique) est piloté par 5 signaux : 2 signaux logiques de synchronisation : synchronisation horizontale : signale le début d’une nouvelle ligne synchronisation verticale : signale le début d’une nouvelle trame 3 signaux analogiques vidéo (rouge, vert, bleu) d’amplitude maximale 1 volt sur charge de 75 ohms. ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Le contrôleur vidéo VGA A l’aide de deux compteurs X et Y, le contrôleur vidéo VGA sert à adresser en continu un espace 525 x 800 dans lequel se trouve inclus l’espace vidéo 480 x 640 comme le montre la figure suivante : 639 640 799 X Espace vidéo 479 480 524 Blanking Y En dehors de l’espace vidéo les signaux vidéo (RVB) doivent être à 0. Le contrôleur vidéo VGA délivre un signal « blanking » destiné à bloquer les signaux RVB dans cet espace. ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Timing de la synchronisation Le contrôleur VGA délivre les signaux de synchronisation horizontale et verticale en fonction des valeurs des compteurs X et Y selon le timing suivant : Synchro horizontale (fonction de X) : 659 755 756 799 639 640 31.75 µs (31.5 KHz) Vidéo Retour (pas de vidéo) La fréquence d’adressage X sera de (800/31.75) = 25.196 MHz, soit environ 25 MHz Synchro verticale (fonction de Y) : 493 494 495 524 479 480 16.67 ms (60 Hz) Vidéo Retour (pas de vidéo) ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Structure du contrôleur VGA Le contrôleur VGA est composé de 2 compteurs X et Y dont les valeurs fournissent par décodage les signaux de synchronisation et de blanking. VSYNC Décodeur HSYNC BLANK X Y X = 799 Compteur Y % 525 E CLK (25MHz) Compteur X % 800 Sauf pour les besoins d’une simulation, une remise à zéro asynchrone des compteurs X et Y n ’est pas souhaitable en raison du décrochement momentané de la synchronisation au niveau de l’écran utilisé. ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Génération de l’image d’un objet simple Supposons que le noyau fournisse simplement les coordonneés XP et YP d’un objet qui doit être affiché sous l ’aspect d’un carré blanc de 10 pixels de côté, sur fond vert, avec le coin supérieur gauche calé sur (XP,YP). Le module DISPLAY aura la structure suivante : VSYNC HSYNC CTRL_VGA CLK (25MHz) GEN_RVB P_RVB BLANK RVB 3 GEN_CARRE P_VC VC X Y XP YP ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Process de génération de l’image d’un objet simple Process de génération du signal VC validant la zone du carré : P_VC : process (X,Y,XP,YP) begin if X>=XP and X<XP+10 and Y>=YP and Y<YP+10 then VC <= ‘1’; else VC <= ‘0’; end if; end process P_VC; Process de génération des signaux vidéo RVB : P_RVB : process (CLK) begin if CLK’event and CLK = ‘1’ then if BLANK = ‘1’ then RVB <= “000”; elsif VC = ‘1’ then RVB <= “111”; else RVB <= “010”; end if; end process P_RVB; ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Génération de l’image d’un objet complexe (sprite) L’objet à afficher ne se résume plus à une forme géométrique simple. Il s’inscrit cependant dans une matrice de L lignes de K pixels. Sa position est celle du coin supérieur gauche (XS, YS). XS YS Le contenu de la matrice décrit l’objet (sprite) à afficher. On lui associe un tableau de L vecteurs de K bits pour un objet monochrome ou L vecteurs de K entiers pour un objet multicolore. Autant que possible ce tableau est implémenté à l’aide d’un bloc RAM du FPGA cible si ce dernier en dispose. Ceci est inféré automatiquement par la plupart des synthétiseurs. ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Process de description d’un sprite monochrome signal SPRITE : bit_vector (0 to 6); signal AD_SPRITE : integer range 0 to 9; ... P_SPRITE : process (AD_SPRITE) begin case AD_SPRITE is when 0 => SPRITE <= "0111110"; when 1 => SPRITE <= "1000001"; when 2 => SPRITE <= "1010101"; when 3 => SPRITE <= "1000001"; when 4 => SPRITE <= "1001001"; when 5 => SPRITE <= "1001001"; when 6 => SPRITE <= "1000001"; when 7 => SPRITE <= "1011101"; when 8 => SPRITE <= "1000001"; when 9 => SPRITE <= "0111110"; end case; end process P_SPRITE; ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Process de génération de l’image d’un sprite monochrome AD_SPRITE <= Y-YS; -- adresse de la ligne du sprite Process de génération du signal VS validant les pixels du sprite : P_VS : process (X,Y,XS,YS,SPRITE) begin if X>=XS and X<XS+7 and Y>=YS and Y<YS+10 then VS <= SPRITE(X-XS); else VS <= '0'; end if; end process P_VS; Process de génération des signaux vidéo RVB : P_RVB : process (CLK) begin if CLK’event and CLK = '1' then if BLANK = '1' then RVB <= "000"; elsif VS = '1' then RVB <= "111"; else RVB <= "010"; end if; end process P_RVB; ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Thème du TP Spécifications fonctionnelles Le jeu vidéo à réaliser est un jeu de squash à un joueur, avec une balle et une raquette virtuelles qui se déplaceront dans le champ d’un écran VGA. Le jeu consistera simplement à renvoyer la balle vers le fond du court en la touchant avec la raquette dont la position dépend du joueur. Un score affiché sur l’écran s’incrémentera à chaque balle renvoyée. Lorsque le score atteint 15, la partie en cours est gagnée et sera arrêtée jusqu’ à la relance d’une nouvelle partie. La partie s’arrête aussi lorsque le joueur a raté une balle… ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Implémentation Le jeu sera implémenté à l’aide d’une carte munie d’un FPGA Spartan3 de 200 000 portes et équipée entre autres d’un port de sortie VGA et de 4 boutons poussoirs BTN0 à BTN3. On adoptera les spécifications techniques suivantes : Ecran VGA 480 lignes de 640 pixels, 60 trames/sec, couleurs 1 bit. (On aura donc 8 couleurs possibles : noir, blanc, rouge, vert, bleu, jaune, cyan, magenta.) Court : vert, mur à gauche de l’écran, joueur à droite. Balle : carré blanc 16x16 animé selon une trajectoire à +/- 45 degrés avec rebonds sur le fond et les côtés du court. Raquette : rectangle rouge (largeur 16, hauteur 64) mobile verticalement à l’abscisse X= 512. Ses mouvements sont contrôlés par deux boutons poussoirs (BTN0 => DOWN, BTN1 => UP). ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Implémentation (suite) Affichage du score (0 à 15) en jaune, sur le haut de l’écran. Il sera fait appel à un component VHDL existant pour générer les chiffres à partir de la valeur du score. Règles comportementales : lorsque la balle rencontre la raquette il y a rebond et le score est incrémenté. Sinon la balle continue vers la droite et la partie est arrêtée (GAME_OVER) jusqu’au redémarrage d’une nouvelle partie par le bouton NEW_GAME (BTN2). Lorsque le score atteint 15, le joueur a gagné (WIN) et la partie s’arrête également. En outre : Oscillateur à quartz externe 50 MHz Réinitialisation asynchrone par BTN3 (RAZ) ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Vue externe UP HSYNC DOWN NEW_GAME SQUASH VSYNC 3 RAZ RVB QUARTZ Types : Toutes les entrées : std_logic; Sorties HSYNC, VSYNC : std_logic; Sortie RVB : std_logic_vector (0 to 2); ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Analyse du noyau On peut procéder par objet à gérer : raquette, balle, score Raquette : compteur/décompteur (0 – 479) produisant l’ordonnée YR. Activé par les boutons UP et DOWN, il s’incrémente ou se décrémente à un rythme imposé par un temporisateur TIMER. Balle : deux compteurs/décompteurs (0 – 639 et 0 - 479) produisant les coordonnées XB et YB. Ils s’incrémentent ou se décrémentent à un rythme imposé par le même temporisateur TIMER (mais plus lentement que la raquette ! ). Ces deux compteurs auront besoin en interne de deux drapeaux SENS_X et SENS_Y à gérer sur les valeurs extrêmes de XB et YB ou sur contact avec la raquette. Score : compteur SCORE (0-15) s’incrémentant à chaque rebond de la balle sur la raquette. Chaque rebond produit une impulsion COUP. Remis à zéro à chaque départ de nouvelle partie. Un petit séquenceur gérera le départ du jeu et son arrêt. ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Schéma structurel du niveau supérieur SQUASH YR UP XB HSYNC DOWN CORE DISPLAY YB NEW_GAME VSYNC SCORE RVB CLK RAZ PREDIV P_CLK QUARTZ Types signaux internes : CLK : std_logic; XB : integer range 0 to 639; YR, YB : integer range 0 to 479; SCORE : integer range 0 to 15; ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Schéma structurel du component CORE CTRL_RAQ P_YR DOWN UP YR TEST_CONTACT YR XB YB CONTACT TEMPO P_TIMER TIMER CTRL_BALL P_XB P_YB XB YB SEQUENCEUR P_ETAT NEW_GAME ETAT COUP GEN_COUP XB SCORE SCORE CTRL_SCORE P_SCORE La même horloge CLK de 25 MHz est appliquée à tous les process synchrones. Le signal RAZ s’applique à tous les process synchrones. ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Séquencement de CORE CS_YB NEW_GAME = 1 1 CS_SCORE CS_XB NEW_GAME = 0 2 EN_XB EN_YB XB=639 SCORE=15 3 GAME_OVER 4 WIN NEW_GAME = 1 Les signaux WIN et GAME_OVER peuvent être utilisés de diverses façons : changement de couleurs, accélération du jeu, etc. ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Schéma structurel du component DISPLAY X,Y X GEN_RAQ P_VR VR CTRL_VGA Y HSYNC VSYNC YR BLANK GEN_BALL P_VB VB GEN_RVB P_RVB XB 3 YB RVB VS VIDEO_SCORE SCORE VIDEO_SCORE est un component générateur de caractères pour l’affichage du score. ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Développement Le projet comportera 6 fichiers (*.VHD) dont voici l’arborescence : Niveau supérieur : SQUASH.VHD Noyau : CORE.VHD Vidéo : DISPLAY.VHD Contrôleur VGA : CTRL_VGA.VHD Affichage du score : VIDEO_SCORE.VHD Affichage chiffres : GEN_CHIFFRES.VHD VIDEO_SCORE est un component à importer. GEN_CHIFFRE est importé par VIDEO_SCORE. ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Étapes du développement (1) Réalisation du component CTRL_VGA : codage et simulation. Codage des entity CORE et DISPLAY (entity seule), puis codage du niveau supérieur SQUASH (entity et architecture). Architecture de CORE : initialiser les signaux transmis à DISPLAY. (XB = 320, YB = 240, YR = 240, SCORE = 0 par exemple) Architecture de DISPLAY : instancier CTRL_VGA et VIDEO_SCORE et coder les process P_VR, P_VB et P_RVB. Synthétiser et tester le système sur écran VGA. A ce stade, la balle, la raquette et le score doivent apparaître (immobiles) conformément aux spécifications. ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Étapes du développement (2) Architecture de CORE : codage et test progressifs Gestion de raquette (YR) sous contrôle de UP et DOWN avec ralentissement par TIMER. Tester. Gestion de la balle (XB,YB) avec ralentissement par TIMER. Mouvement libre avec rebonds sur les bords du champ ou sur la raquette (rebond provoqué par le signal CONTACT) . Tester. Gestion du score : production d’un signal impulsionnel COUP qui doit apparaître à chaque entrée en contact avec la raquette. Ce signal doit servir à incrémenter SCORE. Tester. ESEO - TP I2 – Synthèse VHDL

ESEO - TP I2 – Synthèse VHDL Étapes du développement (3) Architecture de CORE : codage et test progressifs (suite) Codage du séquenceur (signal ETAT) Mise sous contrôle de la balle et du score par ETAT. Test final. Étude de la mise en forme circulaire de la balle (sprite circulaire). ESEO - TP I2 – Synthèse VHDL