Forum: FPGA, VHDL & Co. Anfängerfragen zu SoftCores


von Ulrich S. (ulrich_s)


Lesenswert?

Hallo,

dies ist mein erster Post hier in diesem Forum ... Möget ihr Nachsicht 
walten lassen ..
Ich arbeite mich mit Verilog ins Thema FPGAs ein, habe ein Spartan 3AN 
Board.
LEDs blinken lassen kann ich schon sehr gut :-)

Ich habe Fragen zu SoftCores, besonders für Ethernet und SDRAM.


Wie installiert man einen SoftCore?

Wie hoch ist die Performance Einbusse wenn man einen SoftCore verwendet? 
Nimmt man in der Regel an, dass der SoftCore schon optimal ist und man 
selbst "sowas" nicht arg viel schneller implementieren kann?

Wie gut sind die OpenCore SoftCores?



Thanks,
Ulrich

von Falk B. (falk)


Lesenswert?

@  Ulrich S. (ulrich_s)

>Wie installiert man einen SoftCore?

Er wird wie ein normales VHDL/verilog Modul eingebunden. Nix Wildes.

>Wie hoch ist die Performance Einbusse wenn man einen SoftCore verwendet?

Wieso EInbuße? Der Core hat auf der Zielarchitektur eine bestimmte 
Leistung. Die Logik, die mit ihm verbunden ist, muss das 
berücksichtigen. Logik, die vom Core unabhängig ist, läuft so schnell 
wie eh und je.

>Nimmt man in der Regel an, dass der SoftCore schon optimal ist und man
>selbst "sowas" nicht arg viel schneller implementieren kann?

Kommt drauf an, wer den Core gemacht hat und ob er für eine 
Zieltechnologie optiomiert wirde oder eher ein universeller Core ist, 
der in viele Architekturen direkt eingefügt werden kann.

>Wie gut sind die OpenCore SoftCores?

Keine Ahnung.

MfG
Falk

von franke (Gast)


Lesenswert?

Im Gegenteil, ein Softcore eines Herstellers für seinen Baustein ist 
schneller als der Code, den du produzierst.

OpenCores ist klasse, habe einige im Einsatz, sind aber natürlich nicht 
Architektur-optimiert.

Gruß

von Marco .. (marco_2011)


Lesenswert?

Mann sollte vielleicht noch erwähnen, das Soft-Cores von Herstellern 
meistens nicht so einfach zu erhalten sind.

Typische Beispiele für Soft-Cores sind Mikrocontroller wie PicoBlaze 
oder MicroBlaze welche samt ihren Programmen bei Bedarf in ein FPGA 
integriert werden können. Diese sind nach meinem letzten Wissenstands 
nach nicht frei erhältlich. Man braucht dafür eine spezielles Programm 
von Xilinx, das EDK und das ist teuer.
EDK ist eine Software-Pool, wo auch das von Xilinx verwendete ISE 
enthalten ist.


Gruß

von Uwe N. (ex-aetzer)


Lesenswert?

Marco ... schrieb:
> ... wie PicoBlaze ... oder MicroBlaze welche samt ihren Programmen bei
> Bedarf in ein FPGA integriert werden können. Diese sind nach meinem
> letzten Wissenstands nach nicht frei erhältlich.

Der PicoBlaze ist auf jeden Fall frei bei Xilinxs. Selbst der MicroBlaze 
ist seit ISE13.4 in abgespeckter Form (kein externer RAM) als freie IP 
im Core Generator zu finden.

EDIT:
Zum Schreiben der Software für MB braucht es dann aber endweder das SDK 
oder
Eclipse (afaik frei). Beim PicoBlaze reicht im Prinzip der mitgelieferte 
Assembler (KCPSM o.s.ä.) - aber Achtung: unter W7 läuft die Toolchain 
nicht mehr (Ausnahme bildet die PicoBlaze Toolchain für den Spartan 6).

Gruss Uwe

von franke (Gast)


Lesenswert?

SoftCore != SoftCoreProzessor

Ulrich_s schreibt was von Ethernet und SDRAM.

Gruß

von Uwe N. (ex-aetzer)


Lesenswert?

franke schrieb:
> Ulrich_s schreibt was von Ethernet und SDRAM.

Ja - und SDRAM/ Ethernet werden i.d.R. von einem Prozessor bedient.
Nach SoftCore-Prozessoren wurde zwar nicht direkt gefragt, aber auch 
nicht direkt ausgeschlossen.

von franke (Gast)


Lesenswert?

um ehrlich zu sein... keiner was was er will... und genug 
Klugscheißerei,
ich will hier keinen Glaubenskrieg anfangen.

SDRAM und Ethernet in FPGA werden i.d.R nicht an einem Prozessor 
genutzt, weil i.d.R viel zu langsam.

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

> SDRAM und Ethernet in FPGA werden i.d.R nicht an einem Prozessor
> genutzt, weil i.d.R viel zu langsam.

Ethernet Paktet will ich nicht in VHDL zusammenstellen. Das 
Zusammenstellen von Datenpaketen und Daten Protokolle ist gerade was für 
ein CPU.


Die Sache zum Threadanfang "wie installiert man einen Softcore" zurück.

Die CPU ist in einer Hardwarebeschreibungssprache verdrahtet.
Deinen Software-Code, den die CPU ausführt wird ist in einem RAM-Block 
hinterlegt. Wie der Softwarecode in den RAM hinein kommt hängt von der 
Toolchain ab und unterscheidet sich vom verwendeten Softcore.

von franke (Gast)


Lesenswert?

Ethernet != TCP/IP.

Der IP macht den MAC, daher kann ich einfach Daten von A nach B 
transportieren, ohne Stack.

Gruß

von Jan S. (jan_s)


Lesenswert?

franke schrieb:
> Ethernet != TCP/IP.
>
> Der IP macht den MAC, daher kann ich einfach Daten von A nach B
> transportieren, ohne Stack.

René sprach von Ethernet Frames, nicht von TCP/IP.

von Ulrich S. (ulrich_s)


Lesenswert?

Thanks für eure Antworten.

von Strubi (Gast)


Lesenswert?

Moin,

zum Thema Softcore-Einstieg kann ich die ZPU empfehlen. Es darf geunkt 
werden, dass das Teil nicht besonders performant sei, aber es eignet 
sich prima wenn:

- Geringer Resourcenverbrauch
- Hohe Taktfrequenz
- Debugging-Möglichkeit via JTAG
- Einfacher VHDL-Code und praktische Testbench

ein Thema sind. Es gibt, glaube ich, auch eine Verilog-Implementation.
Würde bisher aber nur für die "Zealot"-Implementation meine Finger ins 
Feuer legen.
Gibt hier im Forum auch ein Beispielprojekt für ein Spartan2-Evalboard, 
einfach mal nach ZPU suchen.

Grüsse,
- Strubi

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.