Forum: FPGA, VHDL & Co. DE0-Nano SD-IP(Opencore) Wishbone


von Blueberry (Gast)


Lesenswert?

Hallo miteinander,

ich bin noch relativ neu in der FPGA Welt und versuche mich gerade in 
der Verwendung von SD-Karten mit dem DE0-Nano-Board von Terasic:
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=593&PartNo=1

Ein erstes NIOSIIe ist bereits 
aufgesetzt(Taster,LEDs,UART,SPI,SDRAM,Flash).

Die SD-Karte wird momentan über SPI angebunden. Zusätzlich verwende ich 
das PetitFAT von Elm Chan. Das funktioniert auch alles soweit.

Nun möchte ich allerdings etwas mehr "Bums" und würde dazu gerne den SD 
Core von Opencores verwenden, da er den 4-Bit Modus verwendet und 
wahrscheinlich nicht soviel Laufzeit des NIOS frisst (da in HW):
http://opencores.org/project,sdcard_mass_storage_controller

Leider überfordert mich das gerade etwas :-)

Gibt es irgendein Dokument (oder einen willigen Leser) das/der mir 
erklärt wie ich die Verilog-Files einbinden muss, wie ich den Wishbone 
des Cores mit dem Avalon des FPGA verbinde?

Vllt. hat das auch schon jemand mal gemacht und ich könnte da etwas 
abspicken?
Oder hat jemand nen Link wo ich mir etwas anlesen kann?

Grüße und danke für eure Unterstützung.
Blue

von Marius W. (mw1987)


Lesenswert?

1. Für die Konvertierung von Wishbone <-> Avalon steht hier was: 
http://en.wikipedia.org/wiki/Wishbone_%28computer_bus%29

2. Verilog-Files kannst du ganz einfach in dein Quartus-Projekt 
hinzufügen. Du musst dir dann nur eine passende Component-Deklaration 
schreiben, damit du das Modul in VHDL nutzen kannst.

MfG
Marius

von Blueberry (Gast)


Lesenswert?

Marius Wensing schrieb:
> 1. Für die Konvertierung von Wishbone <-> Avalon steht hier was:
> http://en.wikipedia.org/wiki/Wishbone_%28computer_bus%29

Ah, super...sowas hatte ich schon gesucht. Scheint also eine einfache 
"Umverdrahtung" zu werden.

Marius Wensing schrieb:
> 2. Verilog-Files kannst du ganz einfach in dein Quartus-Projekt
> hinzufügen. Du musst dir dann nur eine passende Component-Deklaration
> schreiben, damit du das Modul in VHDL nutzen kannst.

Ich importiere Sie mir also ins Projekt, bastle mir irgendwie ein 
Schematic draus, erstelle in Qsys/SOPC eine Avalon-Master und verknödle 
das dann in meinem Schematic?
Sehe ich das richtig?
(Zusätzlich natürlich noch die Pins im Pinplaner nach außen führen).

Grüße und Danke für die schnelle Hilfe.
Blue

von Marius W. (mw1987)


Lesenswert?

Bastel dir einfach ein "Verdrahtungs"-Modul, das die Wishbone<->Avalon 
Verbindung übernimmt. Das Modul baust du dann mit allen Submodulen in 
Qsys als neue Komponente ein.

MfG
Marius

EDIT: Schematic brauchst du dafür nicht. Lass dir einfach vom Quartus ne 
Component-Instantiation draus basteln. Geht unter File - Create / Update 
- Create VHDL Component Declaration Files for Current File.

von Blueberry (Gast)


Lesenswert?

Ok, super...danke.
Werde ich gleich morgen mal probieren.


Grüße
Blue

von Kest (Gast)


Lesenswert?

DE0 nano hat doch gar keinen SD-Kartenslot? :-o

Davon mal abgesehen: bei alteraforum.com in den Untiefen von 
University-IPs gibt es irgendwo einen fertigen SD-Controller (von 
Opensource aber mit AVALON-Bus). Dazu gab es auch Sourcen und Beispiele. 
Einfacher habe ich noch nie SD-Karte in Betrieb genommen.

Kest

von Blueberry (Gast)


Lesenswert?

Kest schrieb:
> DE0 nano hat doch gar keinen SD-Kartenslot? :-o

Es hat aber sehr viele freie IOs ;-)

Kest schrieb:
> Davon mal abgesehen: bei alteraforum.com in den Untiefen von
> University-IPs gibt es irgendwo einen fertigen SD-Controller (von
> Opensource aber mit AVALON-Bus). Dazu gab es auch Sourcen und Beispiele.
> Einfacher habe ich noch nie SD-Karte in Betrieb genommen.

Danke für den Tipp. Muss ich mir dann unbedingt mal anschauen [1].
Wobei ich den Opencore trotzdem noch weiterverfolgen möchte.
Wenn mans einmal gemacht hat, stehen einem halt ziemlich viele 
kostenlose IP-Cores zu verfügung.

Wenn ich was zum laufen bekommen habe melde ich mich wieder...oder wenn 
ich vor Verzweiflung nicht mehr weiter komme.

Grüße
Blue

[1]: 
ftp://ftp.altera.com/up/pub/University_Program_IP_Cores/90/altera_up_ava 
lon_sd_card_interface.zip

von Blueberry (Gast)


Lesenswert?

Kann mir doch nochmal jemand weiterhelfen?

Ich hab mal in die Avalon Spec[1] reingeschaut, werde aber nicht so 
richtig schlau.

Was für ein Avalon Interface muss ich denn im Qsys einfügen.
Ich brauche ja für den SD Core von Opencores einen Wishbone Master und 
einen Wishbone Slave und den kann ich dann durch das richtige verbinden 
mit dem Avalon zusammen tüdeln.
Auf S.15 ist auch ein Blockschaltbild wo sie Custom-Logic verbinden, was 
ja bei mir mit dem SD Core der Fall sein dürfte.

Nur welchen Avalon-Master/Slave muss ich im Qsys nehmen?

Bridges-->Mermory Mapped --> Avalon-MM Tristate Bridge ?
Qsys Interconnect --> Memory-Mapped --> Avalon-MM Slave Agent/Translator 
?

Vllt. eine dumme Frage, aber für mich als Anfänger nicht so richtig zu 
durchschauen.


Grüße
Blue

[1]: www.altera.com/literature/manual/mnl_avalon_spec.pdf

von Marius W. (mw1987)


Lesenswert?

Du musst dir in Qsys eine neue Komponente erstellen, die ein 
Avalon-Slave-Interface zur Verfügung stellt. Dann kannst du die wie alle 
anderen Komponenten an deinen NIOS anbinden.

Gruß
Marius

von Blueberry (Gast)


Lesenswert?

Marius Wensing schrieb:
> Du musst dir in Qsys eine neue Komponente erstellen, die ein
> Avalon-Slave-Interface zur Verfügung stellt. Dann kannst du die wie alle
> anderen Komponenten an deinen NIOS anbinden.
>
> Gruß
> Marius

Danke Marius. Werde es morgen probieren.
Ich dachte es würde evtl. ein fertiges Modul geben.

Grüße
Blue

von Reinhard H. (Firma: PRIVAT) (pdp11gy)


Lesenswert?

Hallo,
hier ist aktuell eine tolle Lösung vorhanden:
http://www.mikrocontroller.net/topic/goto_post/2958297

von Blueberry (Gast)


Lesenswert?

Reinhard Heuberger schrieb:
> Hallo,
> hier ist aktuell eine tolle Lösung vorhanden:
> http://www.mikrocontroller.net/topic/goto_post/2958297

Ja, wie gesagt über SPI war das auch alles gar kein Problem...habe ich 
ja auch schon selber gemacht. Nur mit dem 4-Bit Modus über den 
Opencore-Controller war ich nicht weitergekommen ;-)

von Michael F. (mifi)


Lesenswert?

Hallo Blueberry,

bist Du bei der 4Bit Version schon weiter gekommen?

Viele Grüße,
Michael

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.