SEm/labore/05 amba
(→Simulation des Systems) |
|||
Line 13: | Line 13: | ||
=== Vorbereitung === | === Vorbereitung === | ||
− | {{TaskBox|Erstellen Sie im Arbeitsverzeichnis, '''U:\SEm_labs''' ein neues Verzeichnis '''Ambarchitect'''.}} | + | {{TaskBox|content= |
+ | Erstellen Sie im Arbeitsverzeichnis, '''U:\SEm_labs''' ein neues Verzeichnis '''Ambarchitect'''.}} | ||
− | {{TaskBox| | + | {{TaskBox|content= |
# Starten Sie das Programm [http://ambadraw.hevs.ch AMBAdraw]. | # Starten Sie das Programm [http://ambadraw.hevs.ch AMBAdraw]. | ||
# Klicken Sie auf '''Import Template Design''' und basieren Sie auf der Schaltung in '''C:/EDA/AMBAdraw/source/template/HDS'''.}} | # Klicken Sie auf '''Import Template Design''' und basieren Sie auf der Schaltung in '''C:/EDA/AMBAdraw/source/template/HDS'''.}} | ||
Line 22: | Line 23: | ||
Ihre schlussendliche Schaltung wird ein Teil dieser Gesamtschaltung sein. | Ihre schlussendliche Schaltung wird ein Teil dieser Gesamtschaltung sein. | ||
− | {{WarningBox|Alle ''Preferences'' gehen verloren, wenn man eine neue Referenzschaltung lädt.}} | + | {{WarningBox|content= |
+ | Alle ''Preferences'' gehen verloren, wenn man eine neue Referenzschaltung lädt.}} | ||
=== Schaltung === | === Schaltung === | ||
− | {{TaskBox|Im Programm [http://ambadraw.hevs.ch AMBAdraw]zeichnen Sie die folgende Schaltung.}} | + | {{TaskBox|content= |
+ | Im Programm [http://ambadraw.hevs.ch AMBAdraw]zeichnen Sie die folgende Schaltung.}} | ||
[[Image:SEm_ambaDesign.png|center|Zu erstellende Schaltung]] | [[Image:SEm_ambaDesign.png|center|Zu erstellende Schaltung]] | ||
Line 41: | Line 44: | ||
Alle Komponenten auf dem AHB-Bus haben einen eigenen Index, unabhängig vom Index des APB-Busses. | Alle Komponenten auf dem AHB-Bus haben einen eigenen Index, unabhängig vom Index des APB-Busses. | ||
− | {{TaskBox| | + | {{TaskBox|content= |
# In der Datei '''configuration.xls''' füllen Sie die Tabelle '''indexes'''. | # In der Datei '''configuration.xls''' füllen Sie die Tabelle '''indexes'''. | ||
# Aktualisieren Sie den'''hindex'''-Parameter der AHB-Komponenten in [http://ambadraw.hevs.ch AMBAdraw]. | # Aktualisieren Sie den'''hindex'''-Parameter der AHB-Komponenten in [http://ambadraw.hevs.ch AMBAdraw]. | ||
Line 58: | Line 61: | ||
Für die APB-Komponenten werden Basisadresse und Länge ähnlich definiert, nur aber auf den 12 weiteren Bits der Adresse. | Für die APB-Komponenten werden Basisadresse und Länge ähnlich definiert, nur aber auf den 12 weiteren Bits der Adresse. | ||
− | {{TaskBox|Füllen Sie in der Datei '''configuration.xls''' die Tabellen '''memory map, definition''' und aktualisieren Sie die '''haddr'''-, '''hmask'''-, '''paddr'''- und '''pmask'''-Parameter der Komponenten in [http://ambadraw.hevs.ch AMBAdraw].} | + | {{TaskBox|content= |
+ | Füllen Sie in der Datei '''configuration.xls''' die Tabellen '''memory map, definition''' und aktualisieren Sie die '''haddr'''-, '''hmask'''-, '''paddr'''- und '''pmask'''-Parameter der Komponenten in [http://ambadraw.hevs.ch AMBAdraw].} | ||
=== Komponentenspezifische Parameter === | === Komponentenspezifische Parameter === | ||
− | {{TaskBox|Setzen Sie mit Hilfe des Manuals '''grLib cores user manual.pdf''' die andere Parameter der Komponenten in [http://ambadraw.hevs.ch AMBAdraw].}} | + | {{TaskBox|content= |
+ | Setzen Sie mit Hilfe des Manuals '''grLib cores user manual.pdf''' die andere Parameter der Komponenten in [http://ambadraw.hevs.ch AMBAdraw].}} | ||
== Erstellung des VHDL Codes == | == Erstellung des VHDL Codes == | ||
Line 70: | Line 75: | ||
=== Erstellung des anwendungsspezifischen Systems === | === Erstellung des anwendungsspezifischen Systems === | ||
− | {{TaskBox| | + | {{TaskBox|content= |
# Klicken Sie auf '''Edit -> Document and Project Settings...''' und geben Sie folgenden '''Project Path''' ein: '''U:\SEm_labs\Ambarchitect'''. | # Klicken Sie auf '''Edit -> Document and Project Settings...''' und geben Sie folgenden '''Project Path''' ein: '''U:\SEm_labs\Ambarchitect'''. | ||
# Klicken Sie auf '''Export as... -> HDL'''.}} | # Klicken Sie auf '''Export as... -> HDL'''.}} | ||
Line 78: | Line 83: | ||
[[Image:SEm_ambaCircuit.png|thumb|Erstellte Schaltung]] | [[Image:SEm_ambaCircuit.png|thumb|Erstellte Schaltung]] | ||
− | {{TaskBox|Starten Sie HDL Designer mit der Datei '''U:\SEm_labs\Ambarchitect\ambarchitect.hdp''', öffnen Sie den Block '''toplevel''' und betrachten Sie die erstellte Schaltung.}} | + | {{TaskBox||content= |
+ | Starten Sie HDL Designer mit der Datei '''U:\SEm_labs\Ambarchitect\ambarchitect.hdp''', öffnen Sie den Block '''toplevel''' und betrachten Sie die erstellte Schaltung.}} | ||
{{WarningBox|Alle Änderungen in der exportierten Schaltung werden überschrieben wenn man in [http://ambadraw.hevs.ch AMBAdraw] ein '''Export as...'''durchführt.}} | {{WarningBox|Alle Änderungen in der exportierten Schaltung werden überschrieben wenn man in [http://ambadraw.hevs.ch AMBAdraw] ein '''Export as...'''durchführt.}} |
Revision as of 20:31, 19 June 2013
|
AMBA-Bus basiertes System
Einleitung
Dieses Labor zeigt die Erstellung eines AMBA Bussystem basierend auf der GRLib.
Es wird uns erlauben, eine einfache Schaltung mit einem Prozessor, einem Speicher-Interface und einer seriellen Schnittstelle zu bilden.
Zeichnung der Schaltung
Vorbereitung
Dies wird eine Referenzschaltung in AMBAdraw laden welche alle existierenden GRLib Blöcke enthält Ihre schlussendliche Schaltung wird ein Teil dieser Gesamtschaltung sein.
Schaltung
Das Manual grLib cores user manual.pdf beschreibt alle Blöcke des Systems. Mit ihm können Sie auch bestimmen, auf welche Busse (AHB oder ABP) die Komponenten angeschlossen werden.
Parametrisierung des Systems
Die Datei configuration.xls dient dazu, einige Parameter des Systems zu anzugeben.
Index
Alle Komponenten auf dem AHB-Bus haben einen eigenen Index, unabhängig vom Index des APB-Busses.
Speicherplan
Die Systemkomponente haben alle ihre eigene Speicherposition. Die GRLib parametrisiert diese mit Hilfe einer Adresse und einer Maske.
Für die AHB-Bus Slaves:
- ist die Basisadresse durch die 12 MSBs des Adresssignals gegeben
- ist die Länge des zugeteilten Speichers durch die Maske auf diese 12 MSBs gegeben.
Für die APB-Komponenten werden Basisadresse und Länge ähnlich definiert, nur aber auf den 12 weiteren Bits der Adresse.
{{TaskBox|content= Füllen Sie in der Datei configuration.xls die Tabellen memory map, definition und aktualisieren Sie die haddr-, hmask-, paddr- und pmask-Parameter der Komponenten in AMBAdraw.}
Komponentenspezifische Parameter
Erstellung des VHDL Codes
AMBAdraw erstellt Ihre Schaltung indem es die nicht ausgewählten Komponenten aus der Referenzschaltung entfernt.
Erstellung des anwendungsspezifischen Systems
Betrachtung des Systems
Simulation des Systems
Um das System zu testen wollen wir es auf eine Testbank setzen und es durch den AHB UART steuern.
Testbench-Library
Verlassen Sie das Programm HDL-Designer.
In der .hdp Datei speichert HDL-Designer den Namen und den Pfad aller Libraries Ihres Projekts. Dabei wird ein eigener Pfad für jeden Task (HDL, HDS, ModelSim, Synthese, ...) gesetzt. Die Pfade eines Tasks sind jeweils zusammen gruppiert.
Einkapslung der Schaltung
So wird AMBAdraw diese Datei nicht überschreiben, falls Sie das Projekt neu generieren. wird.
Testbank
Die VHDL-Modelle der Speicherblöcke sollten nun in HDL-Designer sichtbar sein.
Simulation
Initialisieren Sie die Schaltung, indem Sie den Charakter 55 h auf der RS232-Linie sendet. Der Block ahbuart kann sich damit automatisch der Baudrate der seriellen Linie anpassen.
Lesen Sie den Inhalt des Speicher an Adresse 8000.0100 h. Dies wird mit Hilfe der Sequenz 83 80 00 01 00 durchgeführt. Folgen Sie das, was auf dem AMBA-Buss passiert, von dem Empfang der Steuerung bis zum Zurücksenden der Daten. ErkLären Sie den Wert der Daten, welche vom Speicher gelesen wurden.
Figure 5. Simulation
File:AmbaSimulation.png
Schreiben Sie den Code der Testbank , um folgende Signale zu erzeugen:
- Power-on-Reset un Taktsignal,
- die Steuerung des Systems via RS232 durch den Block ahbuart.
Simulation
Initialisieren Sie die Schaltung, indem Sie den Charakter 55 h auf der RS232-Linie sendet. Der Block ahbuart kann sich damit automatisch der Baudrate der seriellen Linie anpassen.
Lesen Sie den Inhalt des Speicher an Adresse 8000.0100 h. Dies wird mit Hilfe der Sequenz 83 80 00 01 00 durchgeführt. Folgen Sie das, was auf dem AMBA-Buss passiert, von dem Empfang der Steuerung bis zum Zurücksenden der Daten. ErkLären Sie den Wert der Daten, welche vom Speicher gelesen wurden.
Figure 5. Simulation
Navigation
04 Automatische Synthese
Anleitung auf Deutsch
06 APB Komponent