SEm/laboratoires/07 beamer

From FSI
(Difference between revisions)
Jump to: navigation, search
(Code VHDL)
 
(6 intermediate revisions by 2 users not shown)
Line 18: Line 18:
 
:: bit 1: <code>updatePattern</code>, définit si on charge des nouveaux points dans les mémoires ou si on est en mode de dessin
 
:: bit 1: <code>updatePattern</code>, définit si on charge des nouveaux points dans les mémoires ou si on est en mode de dessin
 
:: bit 2: <code>interpolateLinear</code>, définit si la ligne qui relie deux points successifs est une droite ou une spline
 
:: bit 2: <code>interpolateLinear</code>, définit si la ligne qui relie deux points successifs est une droite ou une spline
:: bits de poids fort: <code>patternLength</code>, spécifie le nombre de points de la courbe à dessiner
+
:: bits de poids fort: <code>patternSize</code>, aligné à gauche, spécifie le nombre de points de la courbe à dessiner
 
: adresse 01: registre de vitesse, donne la période entre le calcul de 2 points consécutifs du dessin
 
: 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 02: registre des points de la courbe en X
Line 28: Line 28:
  
 
=== Code VHDL ===
 
=== Code VHDL ===
 +
 +
{{TaskBox|content=
 +
Ecrivez le code VHDL du décodeur d'adresse <code>periphAddressDecoder</code>.
 +
}}
  
 
{{TaskBox|content=
 
{{TaskBox|content=
Line 48: Line 52:
  
 
{{TaskBox|content=
 
{{TaskBox|content=
Ecrivez le code VHDL des des blocs de contrôle des mémoires des points des courbes en X et en Y du périphérique <code>ahbBeamer</code>.
+
Ecrivez le code VHDL des blocs de contrôle des mémoires des points des courbes en X et en Y du périphérique <code>ahbBeamer</code>.
 +
}}
 +
 
 +
=== 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 ===
 +
 
 +
{{TaskBox|content=
 +
Ecrivez le code VHDL des du compteur générant les impulsions <code>interpolateEn</code> dans le bloc <code>periphSpeedController</code>.
 +
}}
 +
 
 +
=== Mode de test du calculateur d'interpolation ===
 +
 
 +
Le bouton <code>selSinCos</code> permet de dessiner un cercle en mode X-Y indépendamment de toute valeur écrite dans un registre du périphérique.
 +
 
 +
=== Code VHDL ===
 +
 
 +
{{TaskBox|content=
 +
Ecrivez le code VHDL des de la table générant les valeurs de sinus et de cosinus dans le bloc <code>sinCosTable</code>.
 
}}
 
}}
  
Line 64: Line 88:
 
}}
 
}}
  
[[Category:SEm]]
+
[[Category:Bachelor]] [[Category:SEm]] [[Category:Français]]

Latest revision as of 15:34, 16 April 2018

Contents

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
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

View-pim-tasks.png

Ecrivez le code VHDL du décodeur d'adresse periphAddressDecoder.


View-pim-tasks.png

Ecrivez le code VHDL des registres de commande et de vitesse du périphérique ahbBeamer.

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

View-pim-tasks.png

Ecrivez le code VHDL des blocs de contrôle des mémoires des points des courbes en X et en Y du périphérique ahbBeamer.

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

View-pim-tasks.png

Ecrivez le code VHDL des du compteur générant les impulsions interpolateEn dans le bloc periphSpeedController.

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

View-pim-tasks.png

Ecrivez le code VHDL des de la table générant les valeurs de sinus et de cosinus dans le bloc sinCosTable.

Vérification

View-pim-tasks.png

A l'aide du banc de test à disposition, simulez le système et vérifiez le bon fonctionnement du périphérique ahbBeamer.


Navigation
Arrow left.gif 06 Périphérique UART pour bus AMBA Arrow up.gif Travaux de laboratoire 08 Réalisation d'un SoC AMBA Arrow right.gif

Personal tools
Namespaces
Variants
Actions
Navigation
Modules / Projects
Browse
Toolbox