Une application (simple) du VHDL et d'un CPLD ALTERA (série Max7000s) : Le montage vient superposer a l'image Vidéo N/B ou couleur PAL un texte qui rebondit sur les 4 cotés de l'écran , (possibilités de 8 textes différents , sélection avec un bouton Poussoir ) a la manière d'un jeu de PING-PONG . Ce montage utilise un CPLD d'ALTERA , un EPM7128 SLC84, qui se trouve maintenant relativement facilement (RS, FARNELL etc...) Le texte 'mobile' est en fait Mémorisé dans une mémoire EPROM 27C256 et est constitué d'une matrice de 128*128 pixels . Le CPLD se programme bien entendu In-Situ , via le bus JTAG ,( voir la page intro ) Les 8 textes sont mémorisés dans une 27C256 : il faudra bien sur un programmateur Adéquat pour 27Cxx Le CPLD est chargé de calculer tout simplement la position de la matrice de pixels , position qui évolue pour animer la matrice de haut en bas et de gauche a droite et réciproquement évidement , l'effet est visuellement intéressant , le texte rebondi sur les cotés ! le CPLD est défini comme suit , dans l'environnement de travail ALTERA MAX II PLUS

LES ENTREES:

Clock est l'horloge système a 16 Mhz,issu d'un oscillateur DIL16 16Mhz

synchro_H est la synchro vidéo Horizontale de la vidéo

synchro_V est la synchro verticale de la vidéo

pair_impair est le bit de trame pair ou impair (l'image vidéo est entrelacé)

les signaux de synchronisation de la vidéo sont issu d'un LM1881

bouton_poussoir est le bouton de sélection d'un des 8 textes mémorisé dans l'eprom

data_eprom est le bit de luminance correspondant a l'adresse de la matrice , et est utilisé pour le multiplexeur

 LES SORTIES:

matrice_H[6..0] représente la position des pixels de la matrice dans le sens horizontal (128 pixels) et adresse les 7 poids faible de d'eprom

matrice_V[5..0] représente la position des pixels de la matrice dans le sens vertical (64 pixels) et adresse les 6 poids suivant de l'eprom

matrice_V_bit_6 représente le poids 6 de la matrice Verticale , il est chargé de d'assurer l'entrelacement correct de la matrice verticale (64 lignes par trame = 128 lignes par image)

selection[2..0] sélectionne le bit valide en sortie de l'eprom (8 possibilités) via un multiplexeur 8 vers 1 externe (74HC151)

multiplexeur est le signal qui indique d'insérer le texte sur la vidéo (via un TEA5114)

Le synoptique du montage est simple ! merci a la logique programmable ! 

Chaqu'un des 8 texte est une image BMP de 128 par 128 pixels , et permet d'ecrire un texte par exemple, c'est uniquement le texte qui sera en superposition sur l'image vidéo: des exemples ci dessous , un petit programme se charge de convertir les 8 images en un fichier binaire pour la 27C256

 

le montage :

 

CLIQUER ICI pour avoir tout les fichiers necessaires (Circuit imprimé , code VHDL , fichier .pof etc....) et dezziper (175ko)

RETOUR PAGE PRINCIPALE