Size: 3371
Comment:
|
Size: 4149
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 6: | Line 6: |
Le circuit FPGA de chacune des maquettes contiendra les modules suivants : |
. Le circuit FPGA de chacune des maquettes contiendra les modules suivants : |
Line 20: | Line 19: |
Line 23: | Line 23: |
Line 25: | Line 26: |
* '''vga_gen''' ||'''Nom''' ||'''Type''' ||'''Bits''' ||'''Fonction''' || ||clk_50 ||entrée ||1 ||horloge 50 Mhz active sur front montant || ||rst_n ||entrée ||1 || réinitialisation active sur état bas || ||rgb_in[2:0] ||entrée ||3 || Couleur entrante || ||hsync ||sortie ||1 || Synchro horizontale respectant les timings VESA 800x600 72Hz|| ||vsync ||sortie ||1 || Synchro verticale respec|| ||xcmpt[10:0] ||sortie ||11 || Compteur définissant la position horizontale du pixel courant, doit valoir 0 pour le premier pixel afficheable et doit valoir 799 pour le dernier. || ||ycmpt[9:0] || sortie || 10|| Compteur définissant la position verticale du pixel courant, doit valoir 0 pour la première ligne affichable et 599 pour la dernière. || |
L'objectif du projet est de réaliser un "économiseur d'écran multi-écrans". Le travail sera réparti entre 2 binomes. Le premier binome étant en charge de la gestion des écrans, le deuxième binome étant en charge de la communication entre les écrans.
Le système final à réaliser sera le suivant : deux écrans vidéo seront pilotés par deux maquettes Xilinx nommées "MMaster" et "MSlave". Un triangle se déplacera lentement sur l'espace constitué des deux écrans considérés. En mode test, une mire pourra être utilisée pour vérifier le fonctionnement de la génération des signaux graphiques.
- Le circuit FPGA de chacune des maquettes contiendra les modules suivants :
- MMaster
vga_gen : Module de génération de signaux de synchronisation pour un écran en mode VESA 800x600 (600 lignes de 800 pixels) avec fréquence pixel de 50Mhz.
mire : Génération d'une mire (cadrillage de lignes espacées régulièrement sur l'écran) permettant de vérifier le bon fonctionnement de vga_gen. La sélection ddu mode mire se fera via un bouton de la carte FPGA.
triangle_gen : Module de génération des sommets d'un triangle se déplaçant lentement dans un espace 1600x600 (600 lignes de 1600 pixels) correspondant aux deux écrans considérés. Les sommets du triangle rebondirons sur les bords de l'espace considéré (lois de descartes). Les sommets du triangle évoluerons "lentement" (par exemple tous les 1/10eme de seconde)
inside_triangle : Module de test permettant de savoir si les coordonnées courantes d"un point de l'écran sont à l'intérieur ou à l'extérieur du triangle courant. Le résultat obtenu (O/1) commandera directement l'affichage (blanc ou noir de l'écran).
send_coord: Module de transmission permettant d'envoyer les coordonnées courantes du triangle à la carte MSlave. Le protocole de transmission est un protocole série pour minimiser les fils nécessaires.
- MSlave
vga_gen : Module identique au précédent
mire : module identique au précédent
inside_triangle : Module identique au précédent
recv_coord : Module de réception permettant de recevoir les coordonnées du triangle en provenance de la carte MMaster.
Dans une première étape,
le binome 1 est en charge des modules (vga_gen et mire) et devra démonter le bon fonctionnement de la génération vidéo.
le binome 2 est en charge des modules send_coord et recv_coord et devra démontrer que ces deux modules, rebouclés sur une même maquette sont à même de transmettre les données voulues.
Dans une deuxième étape,
Les binomes se répartirons le travail entre "triangle_gen" et "inside_triangle"...
Les différents modules devront respecter les interfaces et protocoles suivants:
vga_gen
Nom |
Type |
Bits |
Fonction |
clk_50
entrée
1
horloge 50 Mhz active sur front montant
rst_n
entrée
1
réinitialisation active sur état bas
rgb_in[2:0]
entrée
3
Couleur entrante
hsync
sortie
1
Synchro horizontale respectant les timings VESA 800x600 72Hz
vsync
sortie
1
Synchro verticale respec
xcmpt[10:0]
sortie
11
Compteur définissant la position horizontale du pixel courant, doit valoir 0 pour le premier pixel afficheable et doit valoir 799 pour le dernier.
ycmpt[9:0]
sortie
10
Compteur définissant la position verticale du pixel courant, doit valoir 0 pour la première ligne affichable et 599 pour la dernière.
Quelques Liens sur l'affichage VGA:
Les timings des standards VGA :http://www.epanorama.net/documents/pc/vga_timing.html
Un calculateur de paramètres VGA :http://www.tkk.fi/Misc/Electronics/faq/vga2rgb/calc.html
La doc de la mémoire statique 32Kx8 : attachment:cy7c199.pdf
[:GroupeSen/EnSeignement/BaseConnaissancesindispensables/SemaineBloquée/ProjetVga/MemosProjet2006T1:Memos du projet 2006 T1]