SEm/labore/07 beamer
|
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
- Bit 0:
- 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
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
Vérification
Navigation
06 UART-Peripheriebaustein
Anleitung auf Deutsch
08 Realisierung eines AMBA-SoCs