SEm/labore/07 beamer

(Difference between revisions)
Jump to: navigation, search
Line 3: Line 3:
 
= Kurvenzeichnungsperipheriebaustein für AMBA-Bus =
 
= Kurvenzeichnungsperipheriebaustein für AMBA-Bus =
  
== Introduction ==
+
== Einleitung ==
  
Dans ce laboratoire, nous allons reprendre le circuit d'interpolation et l'interfacer au bus AMBA.
+
In diesem Labor nehmen wir die Schaltung für die Interpolationsberechnung und schliessen sie an den AMBA-Bus an.
  
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.
+
Die benutzte Schaltung zeigt eine generische Bus-Schnittstelle die sich leicht auf andere Bus-Systeme, wie z.B. hier der AMBA-Lite-Bus, anpassen lässt. Die Schaltung kann einfach an einen anderen parallelen oder sogar seriellen Bus angepasst werden.
Le circuit pourrait facilement s'adapter à un autre type de bus parallèle et même à un bus série.
+
  
== Conception ==
+
== Entwicklung ==
  
Le périphérique fournit deux sorties modulées ∑∆ permettant le dessin d'une courbe sur un oscilloscope.
+
Das Peripheriegerät erzeugt zwei ∑∆-modulierte Ausgänge mit welchen eine Kurve auf einem Oszilloskop angezeigt werden kann.
  
=== Registres ===
+
=== Register ===
  
Les registres accédés en écriture par le microprocesseur sont:
+
Auf folgende Register schreibt der Prozessor:
: adresse 00: registre de commande
+
: Adresse 00: Kontrollregister
:: bit 0: <code>run</code>, détermine si une courbe est dessinée ou bien si le système est arrêté
+
:: Bit 0: <code>run</code>, bestimmt ob die Kurve gezeichnet wird oder ob das System angehalten ist
:: 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>, bestimmt ob neue Punkte in den Speicher geschrieben werden oder ob dir Kurve gezeichnet wird
:: 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>, bestimmt ob die Linie zwischen zwei aufeinanderfolgenden Punkten eine Gerade oder ein Spline ist
:: bits de poids fort: <code>patternLength</code>, spécifie le nombre de points de la courbe à dessiner
+
:: höchstwertigste Bits: <code>patternLength</code>, Anzahl an Punkten in der zu zeichnenden Kurve
: adresse 01: registre de vitesse, donne la période entre le calcul de 2 points consécutifs du dessin
+
: Adresse 01: Geschwindigkeitsregister, Periode zwischen zwei Berechnungen der Punkte auf der Kurve
: adresse 02: registre des points de la courbe en X
+
: Adresse 02: Punkteregister der X-Achse
: adresse 03: registre des points de la courbe en Y
+
: Adresse 03: Punkteregister der Y-Achse
  
Les registres accédés en lecture sont:
+
Die folgenden Register werden vom Prozessor gelesen:
: adresse 00: registre des commande, permet de relire les valeurs écrites précédemment
+
: Adresse 00: Kontrollregister, lesen der zuvor geschriebenen Werte
: adresse 01: registre des vitesse, permet de relire la valeur écrite précédemment
+
: Adresse 01: Geschwindigkeitsregister, lesen des zuvor geschriebenen Wertes
  
=== Code VHDL ===
+
=== VHDL-Code ===
  
 
{{TaskBox|content=
 
{{TaskBox|content=
Ecrivez le code VHDL des registres de commande et de vitesse du périphérique <code>ahbBeamer</code>.
+
Schreiben Sie den VHDL-Code des Kontroll- und des Geschwindigkeitsregisters des Peripheriebausteins <code>ahbBeamer</code>.
 
}}
 
}}
  
=== Pilotage des mémoires de points à dessiner ===
+
=== Steuerung der Speicher der zu zeichnenden Punkte ===
  
 
Les mémoires contenant la liste des points à dessiner font usage de blocs spécifiques de mémoire à l'intérieur du circuit programmable.
 
Les mémoires contenant la liste des points à dessiner font usage de blocs spécifiques de mémoire à l'intérieur du circuit programmable.

Revision as of 10:01, 7 April 2016

Contents

Kurvenzeichnungsperipheriebaustein für AMBA-Bus

Einleitung

In diesem Labor nehmen wir die Schaltung für die Interpolationsberechnung und schliessen sie an den AMBA-Bus an.

Die benutzte Schaltung zeigt eine generische Bus-Schnittstelle die sich leicht auf andere Bus-Systeme, wie z.B. hier der AMBA-Lite-Bus, anpassen lässt. Die Schaltung kann einfach an einen anderen parallelen oder sogar seriellen Bus angepasst werden.

Entwicklung

Das Peripheriegerät erzeugt zwei ∑∆-modulierte Ausgänge mit welchen eine Kurve auf einem Oszilloskop angezeigt werden kann.

Register

Auf folgende Register schreibt der Prozessor:

Adresse 00: Kontrollregister
Bit 0: run, bestimmt ob die Kurve gezeichnet wird oder ob das System angehalten ist
Bit 1: updatePattern, bestimmt ob neue Punkte in den Speicher geschrieben werden oder ob dir Kurve gezeichnet wird
Bit 2: interpolateLinear, bestimmt ob die Linie zwischen zwei aufeinanderfolgenden Punkten eine Gerade oder ein Spline ist
höchstwertigste Bits: patternLength, Anzahl an Punkten in der zu zeichnenden Kurve
Adresse 01: Geschwindigkeitsregister, Periode zwischen zwei Berechnungen der Punkte auf der Kurve
Adresse 02: Punkteregister der X-Achse
Adresse 03: Punkteregister der Y-Achse

Die folgenden Register werden vom Prozessor gelesen:

Adresse 00: Kontrollregister, lesen der zuvor geschriebenen Werte
Adresse 01: Geschwindigkeitsregister, lesen des zuvor geschriebenen Wertes

VHDL-Code

View-pim-tasks.png

Schreiben Sie den VHDL-Code des Kontroll- und des Geschwindigkeitsregisters des Peripheriebausteins ahbBeamer.

Steuerung der Speicher der zu zeichnenden Punkte

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 des blocs de contrôle des mémoires des points des courbes en X et en Y du périphérique ahbBeamer.

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 UART-Peripheriebaustein Arrow up.gif Anleitung auf Deutsch 08 Realisierung eines AMBA-SoCs Arrow right.gif

Personal tools
Namespaces
Variants
Actions
Navigation
Modules / Projects
Browse
Toolbox