Differences between revisions 1 and 8 (spanning 7 versions)
Revision 1 as of 2006-11-28 18:02:16
Size: 216
Editor: lancelot-lnx
Comment:
Revision 8 as of 2007-02-27 18:08:56
Size: 4149
Editor: gnome
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#acl GroupeSen/MembPermGroup:read,write,delete,revert,admin All:read
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
  * '''v''''''ga_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
  * '''v''''''ga_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. ||

Line 5: Line 42:
Un calculateur de paramètres :http://www.tkk.fi/Misc/Electronics/faq/vga2rgb/calc.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]

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]

ComElec: GroupeSen/EnSeignement/BaseConnaissancesindispensables/SemaineBloquée/ProjetVga (last edited 2008-03-05 07:37:35 by pomme)