Forum: FPGA, VHDL & Co. MicroBlaze Ports


von Beginner (Gast)


Lesenswert?

Hallo,

ich habe bisher nur mit dem Motorola 68HC11 gearbeitet. Dort war es so, 
dass man Daten auf die Parallel-Ports ausgab, indem man in bestimmte 
Port-Register schrieb.

Wie läuft das beim MicroBlaze-Softcore? Wie heißen die entsprechenden 
Register? Werde aus der Beschreibung nicht schlau. Dort ist nur von 
einem Bus-Interface die Rede. Gibt es keine Parallel-Ports?

Vielleicht kann mich hier jemand aufklären.

Gruß

Beginner

von Ulrich (Gast)


Lesenswert?

Hast du schon die PDFs von XILINX druch?
Sind sogar mit bildern....

von Beginner (Gast)


Lesenswert?

Ja die hab ich hier, werd aber wie gesagt nicht daraus schlau. Dort sind 
nirgendwo Register für die Datenausgabe erwähnt. Wenn du dich so gut 
auskennst könntest du es mir auch einfach sagen. Danke.

von Beginner (Gast)


Lesenswert?

Denke mal die GPIO-Ports (Referenzdesign) sind dafür zuständig. Aber wie 
spreche ich die an? Wie heißen die Register?

von FPGA-Küchle (Gast)


Lesenswert?

Du baust dir die Register selber also in VHDL oder vielleicht ist in der 
uB-Entwicklungsumgebung schon ein Klicki-Kacki Schalterchen für sowas 
da.
Das Businterface ist im FPGA intern, also Adressleitungen und Datenbus. 
Mit VHDL oder wie auch immer schaltest Du deine register an den 
erwähnten Bus. Diese Register sind dann mit den FPGA-Pins verbunden. Du 
kannst selber definieren wie diese Pins sich verhalten (INput/Output 
etc) in dem du die in dein design einbaust (VHDL).
Wahrscheinlich bist Du auf dem falschen Dampfer, weil Dir jemand von 
FPGA programmieren erzählt. Das ist aber kein programmieren, sondern 
Hardwareentwicklung. Schau mal ins EDK und die Demo-videos auf 
www.xilinx.com. Dann wird es dann klarer. Du musst dir das System erst 
bauen, das du programmieren kannst. Entweder in VHDL (nicht easy!) oder 
wie erwähnt kannst Du dir in der EDK Software vielleicht alles zusammen 
klickern. Das EDK kost aber Geld.

von Beginner (Gast)


Lesenswert?

Hallo,

mir war schon klar dass man FPGAs nicht programmieren kann. Allerdings 
dachte ich, dass durch implementieren des Softcores auch das ganze 
"Drumherum", z.B. die I/O-Register mit implementiert werden. Wenn ich 
deinen Post richtig verstehe ist man da aber sehr flexibel und legt das 
selbst fest.

Danke.

von Ulrich (Gast)


Lesenswert?

Sorry eigenltich kenne ich mich damit überhaupt nicht aus. habe es mir 
aber mal durchgelesen und hatte den subjektiven Eindruck das es dort gut 
erklärt war.

von Beginner (Gast)


Lesenswert?

Kannst du mir sagen wo in der Doku erklärt wird dass man die Register 
für I/O selbst basteln muss?

von fpgakuechle (Gast)


Lesenswert?

Es ist ein FPGA-Softcore, damit ist es selbstverständlich, das man I/O 
Register nach belieben hinzufügen kann (muß). Explizit habe ich diesen 
Satz in der Doku nicht gefunden, es ist für FPGA-Entwickler 
selbstverständlich das es so ist. Eventuell reicht für das selber bauen, 
der entsprechende Button im Platform Studio/EDK, und der 
VHDL/Verilig-Code fürs register wird automatisch erzeeugt. Da kenn ich 
mich nicht so aus, ich schreibs mir halt in VHDL. Dann musst du aber 
immer noch sagen, das dieses register an den FPGA-Pins AA2,J3 oder wie 
auch immer hängen muß. Das macht man nicht in der Microblaze-Umgebung 
(EDK) sondern mit den FPGA-tools (ISE). Mikroblaze heisst nun mal einen 
FPGA mit CPU zu bauen, nicht eine Universal-CPU zu programmieren. Auf 
www.Xilinx.com gibt es Videos (Demo) die zeigen wie man ein System mit 
uB zusammenklackert. Schau dir das mal an.

von Andreas P. (andreas_p)


Lesenswert?

Mit dem GPIO-Ports liegst du schon ganz richtig.

Das module heißt OPB General Purpose IO.
Im PDF für das Modul ist beschrieben wie die Register heißen.

Wenn du den Wizard benutzt um ein neues Projekt zu erstellen,
einfach mal den GPIO Core hinzufügen.

danach das Häckchen bei Peripheral selftest setzen.

In deinem Project ist jetzt eine Beispiel C Code der die Ports Blinken 
läßt.

im  #include "xparameters.h" sind jetzt die Basisadressen und im 
#include "xgpio.h" sind fertige Routinen um die Ports zu benutzen
da braucht man sich keine Gedangen mehr zu machen.

Wenn man jetzt im Core die Parameter ändert z.B. andere Basis Adr
ändert sich das xparameters.h automatisch mit. Das ist ganz Praktisch.

Die Pins werden auch im EDK einegegben.

Das EDK ist eine alternative Oberfläche und benutzt die ISE Programme 
wie das IMPACT zum Programmieren.

Ich wollte damit sagen mann braucht Die ISE Oberfläch nicht mehr bei EDK 
Projekten.




von Beginner (Gast)


Lesenswert?

Vielen Dank für die ausführlichen Antworten.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.