La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Carte graphique 2D sur FPGA

Présentations similaires


Présentation au sujet: "Carte graphique 2D sur FPGA"— Transcription de la présentation:

1 Carte graphique 2D sur FPGA
Présentation de projet tutoré de 4 AE Année universitaire 2011/2012 LESAYEC Kévin PERRET Quentin THIEBAUT Simon 4AE-SE1 Tuteurs : Daniela DRAGOMIRESCU Sébastien DIMERCURIO

2 Plan Concepts de base en traitement graphique
Limitations technologiques Fonctionnalités implémentées - Démonstrations Organisation du projet Conclusion

3 I. Concepts de base en traitement graphique
Architecture d’une carte graphique

4 I. Concepts de base en traitement graphique
Architecture de notre processeur

5 I. Concepts de base en traitement graphique
Fonctionnement d’un écran CRT Canon à électron Balayage de l’écran

6 I. Concepts de base en traitement graphique
Fonctionnement d’un écran CRT Temps mort nécessaire en fin de ligne Même chose en fin de frame

7 I. Concepts de base en traitement graphique

8 I. Concepts de base en traitement graphique
Pixels Temps (µs) Zone visible 800 22.2 Front porch 24 0.67 Sync pulse 72 2 Back porch 128 3.56 Ligne complète 1024 28.4 56Hz – pixel clock 36MHz

9 II. Limitations technologiques
Choix de la résolution de travail Dépend des caractéristiques de la RAM vidéo et des standards VGA RAM « onboard » : 80 MHz max (pour la plus rapide)., adressable sur 2 octets; 16 Mo d’espace disponible Affichage ligne par ligne ou image par image ? ou (+/- temps d’accès négligeables)

10 II. Limitations technologiques
Résultats calculs pour une fréquence de RAM de 80 MHz Résultats calculs pour une fréquence de RAM de 50 MHz

11 II. Limitations technologiques
Optimisation de l’occupation des temps de refresh possible Tant que fRAM > fVGA … RAM = ressource critique d’une carte vidéo (vu par la suite) Siège de toutes les opérations Problème : fréquence du design ≈ 60 MHz...

12 II. Limitations technologiques
Caractéristiques de la RAM Choix de la RAM volatile onboard la plus rapide : module Micron (M45W8MW16 pour les connaisseurs…) 2 modes de fonctionnement : synchrone (+ rapide) ou asynchrone (14 MHz max.)

13 II. Limitations technologiques
Conception du buffer vidéo Nécessité : stocker pixels lus avant envoi vers écran Limitation Spartan 6 : impossible de créer tableau de 800 octets Utilisation de ressources internes : les Block RAM (16 kbits de données utiles séparables en 2 x 8 kbits, soit 1 ko Block RAM de 18 kbits

14 II. Limitations technologiques
Un travail d’horloger… En entrée : oscillateur de 100 MHz; en sortie : 50 MHz pour les accès mémoires, et 36 MHz pour l’écran… Simple compteur pour la première Utilisation d’un Digital Clock Manager pour la seconde (ressource interne du Spartan 6) Bloc DCM

15 II. Limitations technologiques
Le convertisseur numérique analogique Convertisseur à résistances pondérées Temps de conversion nul Seulement 8 bits !

16 III. Fonctionnalités implémentées
Conversion d’une image

17 III. Fonctionnalités implémentées
Palette de couleurs 256 couleurs # couleur de transparence

18 III. Fonctionnalités implémentées
Distance(A,B) = |A.red – B.red| + |A.green – B.green| + |A.blue – B.blue| On parcours tous les pixels de l’image Pour chaque pixel, on calcule la distance entre le pixel courant et chaque couleur de la palette On choisit la couleur qui minimise la distance DEMONSTRATION n° 1

19 III. Fonctionnalités implémentées
On choisit le plan de destination On parcours tous les pixels de l’image Pixel noir Pixel non noir On choisit déroule l’algorithme classique en excluant #000000 On choisit #000000 DEMONSTRATION n° 2

20 III. Fonctionnalités implémentées
Affichage d’une image Ligne par ligne, pendant le rafraichissement horizontal Lecture RAM à l’adresse duplan 1 vers buffer vidéo Envoi des pixels vers l’écran depuis le buffer (pendant l’affichage) Prioritaire sur toutes les autres opérations de la carte Lecture par défaut du plan vidéo n° 1 DEMONSTRATION n° 3

21 III. Fonctionnalités implémentées
Gestion de plusieurs plans vidéos Idée : superposer différents objets sans devoir recalculer une image complète => gestion transparence Limité à 2 plans pour notre coprocesseur Nécessité d’optimiser l’occupation du refresh horizontal Xmin = 466 Démarrage anticipé lecture RAM

22 III. Fonctionnalités implémentées
Résumé temporel des actions 2nd buffer vidéo, dédié au plan 2 Comparaison couleur pixel avec couleur de transparence à la volée Si identique, envoi pixel du plan inférieur Sinon, affichage de ce pixel DEMONSTRATION n° 4

23 III. Fonctionnalités implémentées
Scrolling de plans mémoire Utile lorsqu’on veut créer un environnement plus grand que la résolution affichable (type arrière plan Zelda ou Pokémon) Saut à l’adresse mémoire de l’image servant de background Octets lus ≠ octets plans vidéos Paramètres nécessaires : Adresse image à scroller Dimensions de celle-ci Mouvements du scroll (en X et en Y) DEMONSTRATION n° 5

24 III. Fonctionnalités implémentées
Copie d’images en mémoire vidéo vers plans vidéos Mouvement de personnages, curseurs, objets divers… Lecture en RAM et buffering, puis écriture en RAM dans un plan vidéo (ligne par ligne) Block RAM dédié => limitation taille horizontale image à 1 ko Pendant le vertical refresh Peut nécessiter plusieurs refresh verticaux selon taille Paramètres nécessaires : Adresse image à copier Dimensions de celle-ci Position dans le plan destination Numéro du plan destination DEMONSTRATION n° 6

25 III. Fonctionnalités implémentées
Tracé de zones colorées Logiciel de dessin à un plus haut niveau, ou tracé de fenêtres basiques (ligne/colonnes = zones rectangulaires colorées…) Simple écriture en RAM dans un plan vidéo Pendant le vertical refresh Peut nécessiter plusieurs refresh verticaux selon taille Paramètres nécessaires : idem que précédemment, + couleur DEMONSTRATION n° 7

26 III. Fonctionnalités implémentées
7) Communication Bus SPI (Serial Periphical Interface) Avantages : Communication Full duplex Débit important (36 Mhz) Esclave synchronisé sur l’horloge du maître Seulement 4 fils utilisés

27 III. Fonctionnalités implémentées
Principe de fonctionnement :

28 III. Fonctionnalités implémentées
Configuration flexible

29 III. Fonctionnalités implémentées
Jeu d’instruction haut niveau -> décodeur

30 III. Fonctionnalités implémentées
Test de la communication STM32 -> FPGA

31 III. Fonctionnalités implémentées

32 IV. Organisation du projet

33 Conclusion Objectif atteint : Coprocesseur graphique 2D
Connaissance des techniques graphique 2D de manipulation de pixel, plan videos … Confrontation à des contraintes matérielles Amélioration de nos connaissances en VHDL Amélioration possible : Communication + décodeur d’instruction Tracé de courbe (algorithme de Bresenham) Vitesse de lecture et d’écriture dans la RAM 4 plans vidéos : Changer la RAM

34 Avez-vous des questions


Télécharger ppt "Carte graphique 2D sur FPGA"

Présentations similaires


Annonces Google