SEm/laboratoires/07 beamer
|
Périphérique de dessin de courbes
Introduction
Dans ce laboratoire, nous allons reprendre le circuit d'interpolation et l'interfacer au bus AMBA.
Le circuit utilisé présente une manière de réaliser une interface de bus générique qui peut s'adapter facilement à d'autres systèmes que le bus AMBA-Lite pris comme exemple dans cette série de laboratoires. Le circuit pourrait facilement s'adapter à un autre type de bus parallèle et même à un bus série.
Conception
Le périphérique fournit deux sorties modulées ∑∆ permettant le dessin d'une courbe sur un oscilloscope.
Registres
Les registres accédés en écriture par le microprocesseur sont:
- adresse 00: registre de commande
- bit 0:
run
, détermine si une courbe est dessinée ou bien si le système est arrêté - bit 1:
updatePattern
, définit si on charge des nouveaux points dans les mémoires ou si on est en mode de dessin - bit 2:
interpolateLinear
, définit si la ligne qui relie deux points successifs est une droite ou une spline - bits de poids fort:
patternSize
, aligné à gauche, spécifie le nombre de points de la courbe à dessiner
- bit 0:
- adresse 01: registre de vitesse, donne la période entre le calcul de 2 points consécutifs du dessin
- adresse 02: registre des points de la courbe en X
- adresse 03: registre des points de la courbe en Y
Les registres accédés en lecture sont:
- adresse 00: registre des commande, permet de relire les valeurs écrites précédemment
- adresse 01: registre des vitesse, permet de relire la valeur écrite précédemment
Code VHDL
Pilotage des mémoires de points à dessiner
Les mémoires contenant la liste des points à dessiner font usage de blocs spécifiques de mémoire à l'intérieur du circuit programmable. Le contrôle des mémoires comporte 2 modes distincts:
- en mode
updatePattern
, chaque nouvel accès en écriture au registre concerné déclenche une écriture dans la mémoire et une incrémentation du compteur d'adresse - en mode de dessin de courbes, chaque nouvelle demande d'un point par le signal
newPolynom
provoque l'incrémentation du compteur d'adresse
Au moment du passage à '1' du signal updatePattern
, le compteur d'adresse est remis à zéro.
En mode de dessin de courbes, le compteur d'adresse est remis à zéro lorsque le compteur atteint la valeur patternLength-1
.
Ceci n'est pas le cas en mode updatePattern
.
Code VHDL
Vitesse de dessin
Le registre de vitesse permet au périphérique de travailler à une vitesse plus lente que la fréquence d'hrologe.
Code VHDL
Mode de test du calculateur d'interpolation
Le bouton selSinCos
permet de dessiner un cercle en mode X-Y indépendamment de toute valeur écrite dans un registre du périphérique.
Code VHDL
Vérification
Navigation
06 Périphérique UART pour bus AMBA
Travaux de laboratoire
08 Réalisation d'un SoC AMBA