Cadre
Pour notre projet d’ingénierie, nos tuteurs voulaient nous faire face aux défis de la conception d’un système en temps réel avec des performances relativement élevé des ressources limitées (mémoire, bande passante).
Les spécifications exigent une plateforme de jeu en utilisant le matériel suivant :
- Conseil 3 Nexys d’un Digilent (pour mettre en œuvre un GPU sur le FPGA),
- Conseil MCBSTM32F400 d’un Keil (pour le système d’exploitation de la plateforme d’hébergement et en stockant les données du jeu),
- un écran LCD DT035TFT DisplayTech avec un pilote de Novatek NT39016 (affichage portable couleur vraie).
Il y a deux équipes de deux étudiants qui travaillent sur ce projet, une équipe se concentre sur la MCU de bras et l’autre sur le GPU.
Spécifications
La plate-forme doit correspondre à la performance d’une plateforme de jeux commerciaux 16 bits comme SNES, Sega MegaDrive, structures multicouches et défilement. La plate-forme se compose de deux éléments principaux : le microcontrôleur de la carte mère et le GPU relié à la sortie vidéo.
- Les exigences spécifiques de MCU sont graphiques API pour le GPU, l’API audio codec audio embarqué, utilisateur e/s, interface MCU/GPU, interface de carte SD. Programmation du jeu vidéo. Un module de configuration de l’écran LCD (luminosité, contraste, etc.) est également considéré comme à l’intérieur de la GPU.
- Les exigences spécifiques de GPU sont affichage multicouche, mélange de différentes couches à l’aide de la transparence, couleurs de 16 bits RGBA, multicouche, défilement, opérations de base 2D (bitblit (copie), la couleur de remplissage, modification de la transparence et leur combinaison (effacer, déplacer, etc.)), génération primitive (lignes, cercles, texte). LCD et vidéo VGA sorties. Graphiques orientée vers le contrôleur de mémoire avec accès DMA.
Plan de mise en œuvre
Les deux équipes devront collaborer régulièrement pour élaborer les deux principales composantes précédemment mentionnés. Nous avons conçu l’architecture globale de la plate-forme pour assurer cette (voir la première étape).
L’équipe graphique débutera en mettant en place des modules d’affichage vidéo à HDL et tester les sorties vidéo à l’aide de données vidéo statiques synthétisées sur le FPGA. Cela sera suivi par la mise en œuvre et l’intégration du contrôleur mémoire ainsi que le tampon de trame afin d’afficher les données stockées dans la RAM vidéo.
Pendant ce temps instruction bus et Registre fetch et decode unité sera réalisée afin d’assurer l’accès aux registres d’affichage.
L’unité de traitement du bloc sera exécutée pour assurer un fonctionnement 2D base sur les données vidéo dans la mémoire vive. Après l’étape préliminaire d’intégration avec l’équipe de la carte mère, ces fonctionnalités seront testées et déboguées.
L’équipe procédera à la mise en œuvre du contrôleur DMA afin de permettre à MCU transférer des données vidéo de sa carte SD (au lieu d’outil Digilent Adept). Et modules HDL restants seront appliqués, tels que le générateur primitif.