SEm/labore/07 beamer
Line 3: | Line 3: | ||
= Kurvenzeichnungsperipheriebaustein für AMBA-Bus = | = 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: <code>run</code>, bestimmt ob die Kurve gezeichnet wird oder ob das System angehalten ist |
− | :: | + | :: 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>, bestimmt ob die Linie zwischen zwei aufeinanderfolgenden Punkten eine Gerade oder ein Spline ist |
− | :: | + | :: höchstwertigste Bits: <code>patternLength</code>, 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 === |
{{TaskBox|content= | {{TaskBox|content= | ||
− | + | Schreiben Sie den VHDL-Code des Kontroll- und des Geschwindigkeitsregisters des Peripheriebausteins <code>ahbBeamer</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. | 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
|
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