https://wiki.hevs.ch/fsi/index.php5?title=SEm/labore/06_apb&feed=atom&action=historySEm/labore/06 apb - Revision history2024-03-29T10:13:19ZRevision history for this page on the wikiMediaWiki 1.18.1https://wiki.hevs.ch/fsi/index.php5?title=SEm/labore/06_apb&diff=366&oldid=prevGuo: /* Übertragung mit Hilfe des Komponenten APBUART */2013-06-19T21:10:12Z<p><span class="autocomment">Übertragung mit Hilfe des Komponenten APBUART</span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 21:10, 19 June 2013</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 40:</td>
<td colspan="2" class="diff-lineno">Line 40:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>{{TaskBox|content=</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>{{TaskBox|content=</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>In der Simulation, stellen Sie die Senden des Charakters auf der seriellen Linie fest und folgen Sie den Änderungen der Register '''r.tcnt''' und '''r.thold''' des Komponenten '''apbuart'''.}</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>In der Simulation, stellen Sie die Senden des Charakters auf der seriellen Linie fest und folgen Sie den Änderungen der Register '''r.tcnt''' und '''r.thold''' des Komponenten '''apbuart'''.<ins class="diffchange diffchange-inline">}</ins>}</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Lesen des Status des dem Komponenten APBUART ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Lesen des Status des dem Komponenten APBUART ===</div></td></tr>
</table>Guohttps://wiki.hevs.ch/fsi/index.php5?title=SEm/labore/06_apb&diff=365&oldid=prevGuo at 21:09, 19 June 20132013-06-19T21:09:50Z<p></p>
<a href="https://wiki.hevs.ch/fsi/index.php5?title=SEm/labore/06_apb&diff=365&oldid=330">Show changes</a>Guohttps://wiki.hevs.ch/fsi/index.php5?title=SEm/labore/06_apb&diff=330&oldid=prevGuo at 14:15, 11 June 20132013-06-11T14:15:51Z<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 14:15, 11 June 2013</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>{{TOC right}}</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>{{TOC right}}</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>    </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>    </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>= APB Komponent =</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>= APB Komponent =</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">----</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">'''Table des mati&egrave;res'''</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">[[Einleitung]][[Analyse des APB Busses]][[Schaltung]][[Initializierung des Masters AHBUART]][[Initializierung des Komponenten APBUART]][[&Uuml;bertragung mit Hilfe des Komponenten APBUART]][[Lesen des Status auf dem Komponenten APBUART]][[Signale des APB Busses]][[Index und Adressen]][[Erstellung des APB Komponenten]][[Registerplan]][[Schaltung]][[Simulation]]</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Einleitung ==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Einleitung ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 128:</td>
<td colspan="2" class="diff-lineno">Line 122:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>F&uuml;hren Sie eine Simulation des Systems durch, um die Funktionalit&auml;t des neuen APB</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>F&uuml;hren Sie eine Simulation des Systems durch, um die Funktionalit&auml;t des neuen APB</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Komponenten sicherzustellen.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Komponenten sicherzustellen.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">{{navNamed|left=SEm/labore/05_amba|left_name=05 AMBA-Bus basiertes System|up=SEm/labore|up_name=Anleitung auf Deutsch|right=SEm/labore/07_oszillo|right_name=07 Oszillo Peripheriebaustein}}</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">[[Category:SEm]]</ins></div></td></tr>
</table>Guohttps://wiki.hevs.ch/fsi/index.php5?title=SEm/labore/06_apb&diff=265&oldid=prevGuo: Created page with "{{TOC right}} = APB Komponent = ---- '''Table des matières''' EinleitungAnalyse des APB BussesSchaltungInitializierung des Masters AHBUART[[Initi..."2013-05-06T15:53:03Z<p>Created page with "{{TOC right}} = APB Komponent = ---- '''Table des matières''' <a href="/fsi/index.php5?title=Einleitung&action=edit&redlink=1" class="new" title="Einleitung (page does not exist)">Einleitung</a><a href="/fsi/index.php5?title=Analyse_des_APB_Busses&action=edit&redlink=1" class="new" title="Analyse des APB Busses (page does not exist)">Analyse des APB Busses</a><a href="/fsi/index.php5?title=Schaltung&action=edit&redlink=1" class="new" title="Schaltung (page does not exist)">Schaltung</a><a href="/fsi/index.php5?title=Initializierung_des_Masters_AHBUART&action=edit&redlink=1" class="new" title="Initializierung des Masters AHBUART (page does not exist)">Initializierung des Masters AHBUART</a>[[Initi..."</p>
<p><b>New page</b></p><div>{{TOC right}}<br />
<br />
<br />
= APB Komponent =<br />
<br />
----<br />
<br />
'''Table des mati&egrave;res'''<br />
<br />
[[Einleitung]][[Analyse des APB Busses]][[Schaltung]][[Initializierung des Masters AHBUART]][[Initializierung des Komponenten APBUART]][[&Uuml;bertragung mit Hilfe des Komponenten APBUART]][[Lesen des Status auf dem Komponenten APBUART]][[Signale des APB Busses]][[Index und Adressen]][[Erstellung des APB Komponenten]][[Registerplan]][[Schaltung]][[Simulation]]<br />
== Einleitung ==<br />
<br />
Dieses Dabor zeigt die Erstellung eines APB Komponentes, basierend auf die GRLib.<br />
<br />
Das Komponent wird gebraucht, um Taster zu lesen und LEDs zu steuern.<br />
<br />
== Analyse des APB Busses ==<br />
<br />
=== Schaltung ===<br />
<br />
Die Analyse des APB-Busses basiert auf folgender Schaltung.<br />
<br />
'''Figure 1. Schaltung zur Analyse des APB Busses'''<br />
<br />
[[Image:ambaDesign.png]]<br><br />
Das System wird durch die serielle Schnittstelle '''ahbuart''' gesteuert,<br />
welches ein Master des AMBA Busses ist. Damit kann die andere serielle Schnittstelle,<br />
'''apbuart''', zugegriffen werden.<br />
<br />
=== Initializierung des Masters AHBUART ===<br />
<br />
Initializeren Sie die Schaltung, indem Sie das Character 55 h aud der RS232 Linie<br />
senden. Der '''ahbuart''' n&uuml;tzt es, um das Baudrate der seriellen Schnittstelle<br />
herauszufinden.<br />
<br />
=== Initializierung des Komponenten APBUART ===<br />
<br />
Initializieren Sie den Steuer- und den Baudrate-Register bei Adressen 8000.0208 h und<br />
8000.020C h. Dies wird mit Hilfe von der Sequenz C1 80000208 80001003 00000008<br />
dirchgef&uuml;hrt.<br />
<br />
In der Simulation, folgen Sie die &Auml;nderungen der Register '''r.rxen''' und<br />
'''r.brate''' des Komponenten '''apbuart'''.<br />
<br />
=== &Uuml;bertragung mit Hilfe des Komponenten APBUART ===<br />
<br />
Starten Sie das Senden eines Charakters auf der seriellen Schnittstelle, indem Sie<br />
dessen ASCII-Code zu Adresse 8000.0200 h Schreiben.<br />
<br />
In der Simulation, stellen Sie die Ermittlung des Charakters auf der seriellen Linie<br />
fest und folgen Sie die &Auml;nderungen der Register '''r.tcnt''' und<br />
'''r.thold''' des Komponenten '''apbuart'''.<br />
<br />
=== Lesen des Status auf dem Komponenten APBUART ===<br />
<br />
Lesen Sie das Statusregister des Komponenten, indem sie ein Wort bei Adresse 8000.0204 h<br />
lesen. Dies wird mit Hilfe von der Sequenz 80 80000204 durchgef&uuml;hrt.<br />
<br />
In der Simulation, analysieren Sie den zur&uuml;ckgelesenen Wert.<br />
<br />
Senden Sie einige Charakter auf der Linie '''rxd1''', d.h. auf dem<br />
seriellen Eingang des Komponenten '''apbuart'''.<br />
<br />
In der Simulation, folgen Sie die &Auml;nderungen der Register '''r.rcnt''' und<br />
'''r.rhold''' des Komponenten '''apbuart'''.<br />
<br />
Lesen Sie erneut das Statusregister des Komponenten und erkl&auml;ren Sie den Unterschied mit<br />
dem erten Leseergebnis<br />
<br />
=== Signale des APB Busses ===<br />
<br />
In der Simulation, folgen Sie das Datentransfer auf dem APB Bus.<br />
<br />
Machen Sie die Liste der Signale in den Typen '''apbi''' und<br />
'''apbo'''.<br />
<br />
Zeichen Sie ein Lese- und ein Schreibe-Zyklus eines APB Komponentes.<br />
<br />
=== Index und Adressen ===<br />
<br />
Untersuchen Sie das VHDL-Code des Komponenten '''apbuart''' und finden Sie<br />
die &Uuml;bereinstimmungen von '''pconfig'''. Bestimmen Sie, wozu dieses<br />
dient.<br />
<br />
Untersuchen Sie das VHDL-Code des Komponenten '''apbuart''' und finden Sie<br />
die &Uuml;bereinstimmungen von '''pindex'''. Erkl&auml;ren Sie, wie das Komponent der<br />
AHB/APB Br&uuml;cke sein Index &uuml;bermittelt.<br />
<br />
Das Komponent '''report_version''' erlaubt es, ein Message am Anfang der<br />
Simulation anzuzeigen. Die Pragmas '''translate_off''' und<br />
'''translate_on''' ziehen diesen Teil des Codes dem Synthese-Tool ab.<br />
<br />
== Erstellung des APB Komponenten ==<br />
<br />
Das zu erstellende Komponent wird dazu dienen, auf der Testplatte Schalter zu lesen und<br />
LEDs zu steuern..<br />
<br />
=== Registerplan ===<br />
<br />
Das Komponent hat 2 Register:<br />
<br />
* Das Register mit dem Zustand der Schalter bei Adresse 0x0<br />
* Das Register mit dem Steuerwert der LEDs bei Adresse 0x4<br />
<br />
Die LSBs von jedem Register geben den Zustand oder den Steuerwert der jeweiligen Ein-<br />
und Ausg&auml;ngen (Schalter oder LEDs).<br />
<br />
=== Schaltung ===<br />
<br />
Erstellen Sie im Block '''gr_beamer''' ein neues Komponent, welches am APB<br />
Bus angeschlossen ist. Dieses Komponent hat folgende generische parameter:<br />
<br />
* '''pindex''': sein Index auf dem APB Bus,<br />
* '''paddr''' und '''pmask''': die Parameter, welche bestimmen, bei welchen Adressen auf dem Bus das Komponent gelegt ist,<br />
* '''buttonnb''': die Anzahl Schalter, welche dem Komponenten angeschlossen sind,<br />
* '''lednb''': die Anzahl LEDs, welche dem Komponenten angeschlossen sind.<br />
<br />
Bringen Sie die Schalter-Eing&auml;nge und die LED-Ausg&auml;nge an die Ports des<br />
'''gr_beamer''' Blocks.<br />
<br />
Schreiben Sie das VHDL-Code des neuen APB Komponenten.<br />
<br />
Im Block '''beamer''', ziehen Sie die neuen Ein- und Ausg&auml;ngen des<br />
Komponenten '''gr_beamer''' auf den Ports dieses Blocks.<br />
<br />
=== Simulation ===<br />
<br />
F&uuml;hren Sie eine Simulation des Systems durch, um die Funktionalit&auml;t des neuen APB<br />
Komponenten sicherzustellen.</div>Guo