Forum: FPGA, VHDL & Co. Eigenen IP Core für Microblaze mit Xilinx XPS erstellen


von ChrisB (Gast)


Lesenswert?

Hallo zusammen,

hat schon einmal jemand einen eigenen IP Core am PLB des Microblazes 
entworfen?
Ich habe mit dem Xilinx XPS ein Template für einen eigenen IP Core 
erstellt und kann diesen auch einfach in mein Design ziehen. Um in den 
IP Core jedoch Funktionalität zu bekommen muss so wie es aussieht direkt 
an der Schnittstelle die das Template zur Verfügung steht eigenen VHDL 
Code einfügen. Mir ist aber völlig unklar, wie ich da am besten vorgehe.
Ich wäre für jede Hilfe dankbar!

Gruß,

Christoph

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Also am besten erstmal die Datenblätter zum PLB wälzen, da steht wie das 
Timing funktioniert.
Ansosnten erstellt der Import Wizzard doch ein Beispiel VHDL template wo 
schon was drinne steht.
Je nach deinem Vorhaben würde ich dir auch EMpfehlen  lieber den FSL 
Kanal zu nutzen der ist sehr viel Einfacher von der Ansteuerungslogik 
her.

von gast (Gast)


Lesenswert?

Hallo,
im EDK gibt es doch den IP Wizard. Da legst du einfach nur den Bus, und 
die Register die du brauchst fest. Danach kannst du in der 
user_logic.vhd deine sachen einbinden.Kannst das ganze auch über ise 
bearbeiten wenn du willst(projnav ordner). Musst hinterher nur noch die 
Pao,Prj und MPD datei bearbeiten und fertig ist die Laube.
Jedenfalls wenn nicht mal wieder das EDK oder ISE mist baut....

mfg

von ChrisB (Gast)


Lesenswert?

Also den FSL wollt ich in dem Fall nicht verwenden, da ich schon was 
größeres vorhabe und nicht nur eine Berechnung.
Ich habe ein Farbdisplay mit integriertem Controller. Leider ist der 
Controller darauf nicht sehr schön zu programmieren, man muss immer ein 
komplettes Bild übergeben. Um einzelne Pixel zu ändern muss man eine 
neue Startadresse festlegen, das Schreiben aufs Display Ram aktivieren, 
den Pixel reinschreiben udn das Schreiben wieder deaktivieren. Um dies 
effizienter zu machen wollte ich ganz weg davon das über einen GPIO IP 
zu lösen und mir einen eigenen IP Core bauen. Dazu habe ich mir 
folgendes überlegt:
Ich baue einen IP Core, der das Display ansteuert, also alle 
Steuersignale etc selber setzt. Dazu hat der IP Core einen Write Fifo, 
in den ein DMA Controller(nicht Teil meines IP Cores) auf einem Befehl 
hin ein komplettes Bild in das Display Ram schreibt. So kann ich sehr 
effizient die Bilder darstellen und der Microblaze kann dann einfache 
SetPixel Funktionen auf einen bestimmten Speicherbereich im SDRam 
ausführen.
Soweit so gut. Einen eigenen IP Core habe ich inzwischen erstellt, der 
mit einem Write FIFO und einem Register arbeitet. Das klappt auch 
soweit. Jetzt geht es aber um die Ansteuerung des Display. Dazu müsste 
ich erstmal festlegen, dass mein IP Core Datenleitungen nach außen hat, 
aber wie mach ich das? Normal müsste man das ja so einstellen können, 
dass man die relativ einfach (wie andere IPCores ja auch) per Klicken in 
der "Port" Ansicht des EDK's die Leitungen nach außen führen kann. 
(External Ports)
Das hab ich aber leider bisher noch nicht geschafft.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Du erstellst einfach in der VHDL Datei weitere Ports die du benötigst.
Danach mußt du das IP neu importieren (Import existing Periperial) oder 
das MPD per Hand editieren. Diese Ports kannst du dann als in der Port 
Ansicht als extern deklarieren und im UCF File einem Pin zuordnen.

von ChrisB (Gast)


Lesenswert?

Das werde ich gleich mal probieren.
Hast du zufällig ICQ oder bist du sonst irgendwo im Chat? Würde mich 
gerne mal mit dir austauschen.
Kannst mir ja (falls vorhanden) einfach mal deine ICQ nummer per Mail 
schicken an: m a i l 'at' c h r i s t o p h b e c h t e l 'punkt' d e

Danke

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Hab dir ne Mail geschickt...

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.