Forum: FPGA, VHDL & Co. ISE -> Microblaze -> IO Bus -> IP ?


von rob (Gast)


Lesenswert?

Hey,
ich hab mit ISE ein Projekt aufgesetzt und auch erfolgreichen einen 
Microblaze eingebunden. Bei der Konfiguration des mircoblaze kann man 
IOs Uart etc. auswählen, welche ich dann in meiner top_level.vhd auch 
entsprechend an meine Ausgänge via .ucf mappen kann. Die Prgrammierung 
des Controllers in C mit dem SDK und das einspielen der software läuft 
auch. Soweit funktioniert also eigentlich alles was man sich wünscht.

Meine Frage ist: Bei dem konfigurieren des Microblaze, kann man 
auswählen das der IO Bus eingebunden werden soll. Kann ich mittels 
diesem eingene IP-cores an den Microblaze anbinden? Und wenn ja wie und 
wie greif ich dann im SDK darauf zu. Hab leider noch nichts passendes im 
Netzt gefunden, welches diesen Weg beschreibt, soweit überhaupt möglich.

Wenn jemand Erfahrung auf dem Gebiet hat und mir ggf. Tips geben kann, 
wäre ich sehr dankbar.

von Holger H. (holger-h-hennef) Benutzerseite


Lesenswert?

Hint:
Base System Builder
Core Generator
Sind die Tools ok ?

Die muss man immer noch so haendisch einfügen u. modden.

Fazit:

Oder bohrt man eher ein gutes Ref.Design auf?.
Frage:
Hast du "echte" test Hardware mit 'IRQ#s im Wish-Bone I/O
 Peripherie Bus am laufen ??
Das ist bei mir nur die UART und TIMER ticks.
Das andere kommt mit SPI.
Alles muxfreie  getrennte Busse.
2 @Clock Stoke --@MCU 1 Cycle exec.
Platz ist da ja genug drin.

Gruss Holger.

von Holger H. (holger-h-hennef) Benutzerseite


Lesenswert?

Hallo das ist ganz gut gemacht.

http://www.origin.xilinx.com/support/documentation/sw_manuals/xilinx12_2/PlanAhead_Tutorial_Reconfigurable_Processor_Peripheral.pdf
Das ist was für dich.
Aber der Periperie Bus is gemuxt.
---------------------------

Base Address $00000
Heap & Stacksize via Config.
Gruss Holger.

von rob (Gast)


Lesenswert?

Hey,
danke für die Dokumentation. Hab sie mir durchgelesen und beschreibt das 
vorgehen so weit ganz gut. Stützt sich dabei allerdings auf PlanAhead, 
welches ich nach Möglichkeit nicht anfassen wollte.

Allerdings bin ich gestern noch auf eine Dokument gestoßen, welches den 
IO-Bus näher beschreibt, bzw. das gesamte IO-Module von welchem er ein 
Teil ist.
http://www.xilinx.com/support/documentation/sw_manuals/xilinx13_4/ds865_microblaze_mcs.pdf
Da steht drin wie der Bus prinzipiell arbeitet.

Der Bus kann im SDK über XIOModule_IoWirteWord etc. angesprochen werden. 
Hinweise darauf gibt es hier: 
http://forums.xilinx.com/t5/Embedded-Processing/Microblaze-MCS-Hello-World/td-p/211577

Hab damit jetzt mal ein bisschen rumgespielt und soweit scheint das auch 
zu funktionieren. auf dem Adressbus werden zu mindestens die richtigen 
Daten ausgegeben. Um das ganz vollständig zu testen, muss ich bei 
Gelegenheit noch ein Modul schreiben, welches den Bus vollständig 
unterstützt. Bin ich bis jetzt leider noch nicht zu gekommen.

Wer interessiert daran ist, mit ISE und dem SDK einen Microblaze 
aufzusetzen, dem sein dieses Dokument empfohlen, darin ist alles 
notwendige ganz gut beschrieben:
http://ece.wpi.edu/~rjduck/Microblaze%20MCS%20Tutorial%20v2.pdf

von Holger (Gast)


Lesenswert?

@rob Learning-by-doing and test modding
@MicoBlaze MCS Address Map Xilinx Software Development Kit
Danke für die *.pdf Map + Bus spec. mit 0x8000-0038 @Master IRQ-Enabel.

Xilinx EDK Tutorial - Adding custom IP to an EDK Project - Part 2
pcores ist der Proj. Folder + SubFolders
2 Dateien werden händisch gemoddet, und via Tool korrekt Re-Importiert
 0 32 Bus dazu in Endian-Format via PORTMAP instanziert
https://www.youtube.com/watch?v=WYOQpqlEY94
Gruss Holger
PS.
Der Busdecoder ist eine Case switch, so wird der RW und I/O an 
Peripherie gemanaged.
So Dekodiert der Wishbone Bus auch.
So hoffe ich das ich meine WISHBONE V24 UART @TIMER Kopplung auf den 
Zahn triggen kann.
Da ich den prom_init.hex nicht als *.asm Source Code habe.
Nur den von dem neuen MachXo2 Derivat.
Bulding from Scatch via Bus Manager ist ein sehr gutes Video Tutorial
Danke für die Hilfe.

von Holger (Gast)


Lesenswert?

@Rob Hallo
"Build from sratch via Bus Manager"
http://www.origin.xilinx.com/csi/training/embedded...


Das Video Tutorial ist gut, da geht es nach ca 12 Minuten
Um deine Frage mit dem Build from Sratch Project
Bus Manager und System Builder Tools ect.
############################################################

Das ist ein Prof. der an das System noch DDR3 RAM vebaut hat.
Der Blog ist sehr gut gemacht.
http://svenand.blogdrive.com/archive/53.html
############################################################


Es ist ein wiered or Bus multipex Bus, sagt der Prof auch.
Danke für alles.
Gruss Holger
PS.
Ich habe das jetzt gepeilt Bus-select UART .TIMER und
Und wie beim WishboneBus geht es danach an den Simplex Bus.
Und somit an die Costom Fuction Module.mit Tasken auf dem Fabric.

Via Discrete Read nennt sich das.
1
data = XIOModule_Initialize(&gpi1, XPAR_IOMODULE_0_DEVICE_ID);
2
data = XIOModule_Start(&gpi1);
3
4
data = XIOModule_DiscreteRead(&gpi1, 1);
5
XIOModule_DiscreteWrite(&gpi1, 1, data);

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.