SEm/labore/08 soc

(Difference between revisions)
Jump to: navigation, search
(Implémentation)
Line 3: Line 3:
 
= Realisierung eines AMBA-SoCs =
 
= Realisierung eines AMBA-SoCs =
  
== Introduction ==
+
== Einleitung ==
Dans ce laboratoire, nous allons implémenter dans un circuit programmable un système à processeur comprenant les périphériques développés précédemment.
+
In diesem Labor werden Sie in einem programmierbaren Schaltkreis ein Prozessorsystem  inklusive der in den vorherigen Laboren entwickelnden Peripheriegeräten implementieren. Ein solches System wird Ein-Chip-System (System on Chip:SoC) genannt.
  
== Protocole bus série ==
+
== Serielles Busprotokoll ==
  
Le [http://opencores.org/project,nanoblaze processeur] exécute un programme qui lit l'interface série, à travers le périphérique UART et donne accès au contenu de la mémoire en lecture ou en écriture.
+
Der [http://opencores.org/project,nanoblaze Prozessor] führt ein Programm aus, welches das serielle Interface über das Peripheriegerät UART liest und Lese- sowie Schreibzugriff auf den Inhalt des Speichers gibt.
  
=== Trames ===
+
=== Datenframe  ===
  
Le protocole série est celui utilisé par les collègues d'électronique de puissance pour la communication avec leurs DSPs.
+
Dieses serielle Protokoll wird auch von Ihren Kollegen der Leistungselektronik für die Steuerung ihrer DSPs verwendet.
Chaque trame se compose comme suit:
+
Jedes Datenframe ist wie folgt aufgebaut:
 
: '''header''': AA<sub>h</sub>
 
: '''header''': AA<sub>h</sub>
: '''packet id''': numéro de la commande
+
: '''packet id''': Befehlsnummer
: '''cmd''': code de commande
+
: '''cmd''': Befehlscode
: '''data length''': nombre de bytes du contenu de la commande
+
: '''data length''': Anzahl Bytes des Befehls
: '''data''': contenu de la commande
+
: '''data''': Inhalt des Befehls
: '''checksum''': somme de tous les bytes de la commande, en ignorant les reports
+
: '''checksum''': Summe aller Bytes des Befehls, ohne Überträge
  
Chaque commande reçoit en retour une trame qui se construit de la même façon.
+
Auf jeden Befehl folgt ein Antwortdatenframe, welches in der gleichen Weise aufgebaut ist.
La réponse retourne le même numéro et le même code que la commande, mais avec des données différentes.
+
Die Antwort kopiert die Nummer und den Code des Befehls, kann aber andere Daten enthalten.
  
=== Ecriture en mémoire ===
+
==== Schreibzugriff auf den Speicher ====
  
Pour une écriture d'un mot de 16&nbsp;bits en mémoire, la trame de commande contient:
+
Um ein 16 bit langes Wort in den Speicher zu schreiben, sieht das Befehlsdatenframe folgendermassen aus:
 
: '''cmd''': 03<sub>h</sub>
 
: '''cmd''': 03<sub>h</sub>
 
: '''data length''': 4
 
: '''data length''': 4
 
: '''data''': addr<sub>l</sub>, addr<sub>h</sub>, data<sub>l</sub>, data<sub>h</sub>
 
: '''data''': addr<sub>l</sub>, addr<sub>h</sub>, data<sub>l</sub>, data<sub>h</sub>
  
La réponse contient:
+
Die Antwort enthält:
 
: '''data length''': 0
 
: '''data length''': 0
: '''data''': ''vide''
+
: '''data''': ''none''
  
=== Ecriture de mémoire ===
+
==== Lesezugriff auf den Speicher ====
  
Pour une lecture d'un mot de 16&nbsp;bits de la mémoire, la trame de commande contient:
+
Um ein 16 bit Wort im Speicher zu lesen, muss das Befehlsframe folgendermassen aussehen:
 
: '''cmd''': 04<sub>h</sub>
 
: '''cmd''': 04<sub>h</sub>
 
: '''data length''': 2
 
: '''data length''': 2
 
: '''data''': addr<sub>l</sub>, addr<sub>h</sub>
 
: '''data''': addr<sub>l</sub>, addr<sub>h</sub>
  
La réponse contient:
+
Die Antwort enthält:
 
: '''data length''': 2
 
: '''data length''': 2
 
: '''data''': data<sub>l</sub>, data<sub>h</sub>
 
: '''data''': data<sub>l</sub>, data<sub>h</sub>
Line 48: Line 48:
 
== Simulation ==
 
== Simulation ==
  
Le banc de test à disposition, <code>beamerSoc_tb</code>, lit et écrit dans différents registres du système.
+
Die zur Verfügung gestellte Testbank <code>beamerSoc_tb</code> liest und schreibt verschiedene Register des Prozessorsystems.
  
 
{{TaskBox|content=
 
{{TaskBox|content=
Examinez le contenu du bloc <code>beamerSoc</code>
+
Untersuchen Sie den Inhalt des Blocks <code>beamerSoc</code> und bestimmen Sie an welchen Adressen sich die Register des Kurvenzeichnungsperipheriebausteins befinden.
et déterminer à quelles adresses sont les registres du périphérique de dessin de courbes.
+
 
}}
 
}}
  
 
{{TaskBox|content=
 
{{TaskBox|content=
Etudier le code VHDL du générateur de stimuli <code>beamerSoc_tester</code> et expliquer la séquence de test.
+
Studieren Sie den VHDL-Code des Stimuli-Generators <code>beamerSoc_tester</code> und erklären Sie die Testsequenz.
 
}}
 
}}
  
 
{{TaskBox|content=
 
{{TaskBox|content=
Effectuer une simulation du système et vérifier son bon fonctionnement.
+
Führen Sie eine Simulation durch und überprüfen Sie, dass das System richtig funktioniert.
 
}}
 
}}
  
== Implémentation ==
+
== Implementation ==
  
 
{{TaskBox|content=
 
{{TaskBox|content=
Synthétiser le SoC et vérifier son fonctionnement à l'aide d'un oscilloscope.
+
Synthetisieren Sie das SoC und überprüfen Sie dessen korrektes Verhalten mit einem Oszilloskop.
 
}}
 
}}
  

Revision as of 15:27, 8 April 2016

Contents

Realisierung eines AMBA-SoCs

Einleitung

In diesem Labor werden Sie in einem programmierbaren Schaltkreis ein Prozessorsystem inklusive der in den vorherigen Laboren entwickelnden Peripheriegeräten implementieren. Ein solches System wird Ein-Chip-System (System on Chip:SoC) genannt.

Serielles Busprotokoll

Der Prozessor führt ein Programm aus, welches das serielle Interface über das Peripheriegerät UART liest und Lese- sowie Schreibzugriff auf den Inhalt des Speichers gibt.

Datenframe

Dieses serielle Protokoll wird auch von Ihren Kollegen der Leistungselektronik für die Steuerung ihrer DSPs verwendet. Jedes Datenframe ist wie folgt aufgebaut:

header: AAh
packet id: Befehlsnummer
cmd: Befehlscode
data length: Anzahl Bytes des Befehls
data: Inhalt des Befehls
checksum: Summe aller Bytes des Befehls, ohne Überträge

Auf jeden Befehl folgt ein Antwortdatenframe, welches in der gleichen Weise aufgebaut ist. Die Antwort kopiert die Nummer und den Code des Befehls, kann aber andere Daten enthalten.

Schreibzugriff auf den Speicher

Um ein 16 bit langes Wort in den Speicher zu schreiben, sieht das Befehlsdatenframe folgendermassen aus:

cmd: 03h
data length: 4
data: addrl, addrh, datal, datah

Die Antwort enthält:

data length: 0
data: none

Lesezugriff auf den Speicher

Um ein 16 bit Wort im Speicher zu lesen, muss das Befehlsframe folgendermassen aussehen:

cmd: 04h
data length: 2
data: addrl, addrh

Die Antwort enthält:

data length: 2
data: datal, datah

Simulation

Die zur Verfügung gestellte Testbank beamerSoc_tb liest und schreibt verschiedene Register des Prozessorsystems.


View-pim-tasks.png

Untersuchen Sie den Inhalt des Blocks beamerSoc und bestimmen Sie an welchen Adressen sich die Register des Kurvenzeichnungsperipheriebausteins befinden.


View-pim-tasks.png

Studieren Sie den VHDL-Code des Stimuli-Generators beamerSoc_tester und erklären Sie die Testsequenz.


View-pim-tasks.png

Führen Sie eine Simulation durch und überprüfen Sie, dass das System richtig funktioniert.

Implementation

View-pim-tasks.png

Synthetisieren Sie das SoC und überprüfen Sie dessen korrektes Verhalten mit einem Oszilloskop.


Navigation
Arrow left.gif 07 Kurvenzeichnungsperipheriebaustein Arrow up.gif Anleitung auf Deutsch 09 Zustandsmaschine Arrow right.gif

Personal tools
Namespaces
Variants
Actions
Navigation
Modules / Projects
Browse
Toolbox