Hallo, ich habe einen IPcore, der muss dem Microblaze unbedingt etwas mitteilen. :) Geht das denn, daß der IP über PLB an eine Microblaze-Adresse schreibt? XPS "Create and Import Peripheral" bietet keine Möglichkeit an den eigenen Core zu einem PLB-Master zu machen. Man kann höchstens eine Read-Fifo anlegen. Aber kann die auch der Microblaze auslesen? Welche Möglichkeiten habe ich noch zu µBlaze zu sprechen? Ist FSL die richtige Wahl? Wäre nett, wenn jmd was schreiben könnte. Das ist mein erstes vollständiges Design und ich kenne mich mit gutem Stil nicht aus. Danke.
Du hast drei Möglichkeiten: 1) Der Microblaze holt die Daten AKTIV über den PLB aus einem FIFO in deinem Device, evtl. aufgeweckt durch einen Interrupt. Dauert halt ein paar Taktzyklen pro Wort. Ist an sich das einfachste und sehr portabel (alles normale Speicherzugriffe und keine FSL-Extravaganzen). 2) Der Microblaze holt AKTIV die Daten vom FSL, dahinter brauchst du auch ein FIFO. Das ganze evtl. aufgeweckt von einen Interrupt. Geht etwas schneller als 1, für kontinuierlich hohe Datenraten (mal so übern Daumen >1Mbyte/s) aber auch nicht so geeignet, ausser du machst dein FIFO sehr gross, damit nichts verloren geht. Insgesamt spart das FSL-Interface aber nicht viel, die IRQ-HW braucht man so oder so. Der FSL ist eher für ein schnelles Coprozessor-Interface gedacht, also Daten schnell hinschreiben und zurücklesen. 3) Dein Device macht selbst DMA-Zugriffe über den PLB. Dazu gibt es AFAIR einen DMA-Central-Core oder du machst den PLB-Master selbst (etwas mühsam). Ist das effizienteste, erfordert aber etwas Koordinierung im Speicher (unter MMU-Linux also einen Treiber, uCLinux bräuchte keinen) und das Debugging ist auch nicht ganz so einfach (wenn was schief geht).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.