Forum: FPGA, VHDL & Co. Haben Soft Cores noch eine Zukunft?


von Michael W. (Gast)


Lesenswert?

Wie ist eure Einschätzung bezüglich der Zukunft von Softcores in FPGAs?

Heute gibt es schnelle und preiswerte HardCores, die richtig effektiv 
arbeiten. Brauchen wir noch SoftCores?

von Michael F. (mifi)


Lesenswert?

Hallo Markus,

was verstehst Du unter "preiswerte" HardCores? Meinst Du damit z.B. den
CycloneIV oder Zynq mit den ARM Core's?

Nehmen wir mal an das ich nur eine Rechenleistung von einem ARM7 mit
48MHz benötige. Dann braucht man keinen CycloneIV oder Zynq mit 800MHz
oder mehr nehmen. Hier würde dann eine SoftCore CPU, z.B. NiosII 
reichen?

Wie sieht es dann noch bei kleinen Stückzahlen aus, z.B. bei 100 Stück
für das Projekt?

Viele Grüße,
Michael

: Bearbeitet durch User
von Der Gilb (Gast)


Lesenswert?

Markus W. schrieb:
> Wie ist eure Einschätzung bezüglich der Zukunft von Softcores in
> FPGAs?
>
> Heute gibt es schnelle und preiswerte HardCores, die richtig effektiv
> arbeiten. Brauchen wir noch SoftCores?


Naja Preiswert? Die Preise für den kleinsten Zynq fangen so bei 50 Euro 
an (Einzelstück Digikey)... man bekommt brauchbare Softcores aber auch 
schon in ein 10 Euro FPGA rein.
Wenn man die ganze Peripherie in einem Zynq nicht brauchen kann, aber 
stattdessen mehr normale FPGA I/Os: Auf jeden Fall.

von Hmm... (Gast)


Lesenswert?

Jain. So einfach und flexibel wie bei einem fpga mit softcore kommt 
nirgends an RICHTIG viele gpios. Man kann einfach mal 20 Pins an einen 
expansion header hängen und später nach Bedarf eine UART, eine Spi oder 
sogar USB oder Ethernet oder lvds per SW update nachträglich rein 
patchen. Das geht bei keinem Controller mal so eben.

Oder man will mal schnell in den i2s signalpfad noch ein Filter 
einbauen. Dsps sind eine Möglichkeit dafür  aber genauso gut kann man 
ein Filter auch in Logik bauen. Oft kann man auch einen kleinen clock 
per pll auf 100MHz hochziehen, vereinfacht die emv möglicherweise etwas.

Anwendungen für fpgas wird es sicher immer geben

von J. S. (engineer) Benutzerseite


Lesenswert?

Softcores haben z.B. auch da ihre Berechtigung, wo man aufgrund von 
Lieferanforderungen alte Systeme pflegen muss und die alten Controller 
irgendwann nicht mehr bekommt oder die Abkündigung absehbar ist.

Nicht wenige Firmen lösen so ihr Lieferverpflichtungsproblem mit 
universellen Plattformen. Ein SoftCore ist beliebig duplizierbar. Ob das 
immer kostengünstig ist, sei dahingestellt. Aber es funktioniert sicher.

Eine andere Anwendung ist Softwareschutz. Man kann die Funktion eines 
Controllers "branden" und den einen oder anderen X-factor einbauen, der 
es unmöglich macht, die Firmware aus dem ROM zu lesen und sie in der 
üblichen Weise zu interpretieren.

von Strubi (Gast)


Lesenswert?

Moin,

Neben mifi's Argument zur passenden Skalierung eines Rechenknechts und 
die preislichen Aspekte gibt's auch immer noch Bedarf an sehr speziellen 
Lösungen, die trotzdem noch flexibel bleiben. Fängt z.B. bei dedizierten 
DSP-Pipes an, die man komplett hart codieren, aber auch in einen 
uC-Softcore als programmierbare Einheiten einbetten kann. Da könnte man 
sogar die Frage stellen: Haben DSPs überhaupt noch eine Berechtigung?
Gewisse Nischen werden da von den üblichen Verdächtigen gar nicht 
abgedeckt bzw. sind für günstige Lösungen wieder zu komplex, wie ein 
Zynq. Dafür würde ich auf einem Softcore nicht unbedingt Linux laufen 
lassen...
Letzter Punkt für heute: Es gibt sogar Leute, die ARM-CPUs nicht trauen, 
und nur Cores einsetzen, die sie selber regress-testen können.

von Freelancer (Gast)


Lesenswert?

Strubi schrieb:
> Haben DSPs überhaupt noch eine Berechtigung?

Interessanter Ansatz. Ich würde sagen, "Ja" vor allem wegen der 
geringfügig niedrigeren Kosten von rund Faktor 5 bei gegebener 
Rechenleistung.

von Strubi (Gast)


Lesenswert?

Freelancer schrieb:
> Strubi schrieb:
>> Haben DSPs überhaupt noch eine Berechtigung?
>
> Interessanter Ansatz. Ich würde sagen, "Ja" vor allem wegen der
> geringfügig niedrigeren Kosten von rund Faktor 5 bei gegebener
> Rechenleistung.

Die Zahl kann ich so gar nicht nachvollziehen. Ist wohl Ansichtssache.. 
in min. einem konkreten Fall ist z.B.das FPGA billiger, stromsparender, 
und schneller als der entsprechende Float-fähige-DSP. Entwicklungskosten 
eingeschlossen.

von Thomas R. (Firma: abaxor engineering) (abaxor)


Lesenswert?

Michael F. schrieb:
> Hier würde dann eine SoftCore CPU, z.B. NiosII
> reichen?

Und den NiosII gibt es als Hardcore im Max10. Da hat Altera schon dran 
gedacht. Außerdem gibt es noch den SmartFusion2 von Microsemi, der hat 
einen Arm Cortex M3. Beide bekommt man schon für unter 10 €. Wenn jemand 
nicht unbedingt einen Xilinx-Baustein braucht, gibt es kaum noch Grund 
für einen Softcore. Ich gehe mal davon aus, dass Xilinx da nachziehen 
wird.

Ich sehe so richtig keine Zukunft für die Softcores und bei den Preisen 
noch weniger für DSPs.

Tom

von Fpgakuechle K. (Gast)


Lesenswert?

Markus W. schrieb:

> Heute gibt es schnelle und preiswerte HardCores, die richtig effektiv
> arbeiten. Brauchen wir noch SoftCores?

Nicht erst seit Heute. Schnelle und preiswerte uC, die ja auch nix 
anderes als Hardcores sind gibt es seit Jahrzehnten.

Für mich ist die Frage ob Hard- oder Soft-Core nur eine andere 
Ausprägung der Frage ob FPGA oder uC/DSP ideal für eine Applikation ist. 
Und diese Frage wird immer noch mit sowohl als auch beantwortet. Und 
gerade bei Signal-prozessing ist durch die parallele Hardware Strukturen 
mit vielen Filterstufen und bitoperationen schneller and latenzsicher 
gebaut als mit einem sequentiellen DSP der alles über seine wenigen 
Speicherbusse quälen muss statt Koeffiszenten lokal an der ALU/MUL zu 
halten.

MfG,

von Michael F. (mifi)


Lesenswert?

Hallo Thomas,

>Und den NiosII gibt es als Hardcore im Max10.
Bei welchen Baustein? Ich habe hier auf die Schnelle nichts finden
können.

Viele Grüße,
Michael

von Thomas R. (Firma: abaxor engineering) (abaxor)


Lesenswert?

Michael F. schrieb:
> Hallo Thomas,
>
>>Und den NiosII gibt es als Hardcore im Max10.
> Bei welchen Baustein? Ich habe hier auf die Schnelle nichts finden
> können.

Und ich habe zu schnell geschrieben:-( Mittlerweile bin ich mir nicht 
mehr so sicher

Das Bild auf

https://www.altera.com/products/fpga/max-series/max-10/features.html

zeigt u.a. auch einen 32-Bit Prozessor auf dem Chip. Alles andere ist 
wirklich auf dem Chip. Darum bin ich davon ausgegangen ein NiosII auch 
dabei ist. Ich werde mal nachfragen.

Tom

von Der Gilb (Gast)


Lesenswert?

Thomas R. schrieb:
> Darum bin ich davon ausgegangen ein NiosII auch
> dabei ist.

Ist er nicht soweit ich weiss. Das übliche Marketing halt...

von Thomas R. (Firma: abaxor engineering) (abaxor)


Lesenswert?

Der Gilb schrieb:
> Ist er nicht soweit ich weiss. Das übliche Marketing halt...

Du weißt richtig.

von FPGA-Ingenieur (Gast)


Lesenswert?

D.h. man muss ihn lizensieren? Ist das neu oder was das  schon immer so?

von Thomas R. (Firma: abaxor engineering) (abaxor)


Lesenswert?

FPGA-Ingenieur schrieb im Beitrag #4333594:
> D.h. man muss ihn lizensieren? Ist das neu oder was das schon immer so?

Stand in Quartus 14
Den NiosII gibt es in drei Versionen

NiosII/e

NiosII/s
+ instruction cache
+ branch prediction
+ hardware multiply and divide

NiosII/f
+ data cache
+ barrel shifter
+ dynamic branch prediction

nur der NiosII/e ist kostenlos in Quartus 14. Die anderen beiden 
Versionen muss man lizensieren. Das ist schon seit ein paar Jahren so.

Tom

von S. N. (higgns)


Lesenswert?

Es gibt auch Open Source Lösungen wie den LEON 3 (SPARC, GNU GPL). Ist 
halt ein bisschen mehr gefrickel als sich durch einen Wizard zu klicken 
aber genau so mächtig.

: Bearbeitet durch User
von Fpgakuechle K. (Gast)


Lesenswert?

Markus W. schrieb:

> Heute gibt es schnelle und preiswerte HardCores, die richtig effektiv
> arbeiten. Brauchen wir noch SoftCores?

Mal anders gefragt - was juckt es mich als FPGA-entwickler ob ich im 
Design einen Hard oder Soft-Core  Controller instanziere?

SDK, PCB, debugging, Synthese etc. ist nur in Details anders.

MfG,

von Thomas R. (Firma: abaxor engineering) (abaxor)


Lesenswert?

Fpga K. schrieb:
> Mal anders gefragt - was juckt es mich als FPGA-entwickler ob ich im
> Design einen Hard oder Soft-Core  Controller instanziere?

Derselbe Grund warum man Arithmetik mit DSP-Slices realisiert, BRAMs 
benutzt statt LUTs, jede Funktion die direkt im FPGA verfügbar ist, 
braucht ca. 1/10 der Fläche, die man benötigt um die gleiche Funktion 
mittels Logik zu implementieren. Bei einem Hardcore erreicht man einen 
deutlich höheren Takt bei weniger Strom als bei einem Softcore. Außerdem 
wird es innerhalb eines Hardcore keine Timingprobleme geben.

Tom

von Fpgakuechle K. (Gast)


Lesenswert?

Thomas R. schrieb:
> Fpga K. schrieb:

> braucht ca. 1/10 der Fläche, die man benötigt um die gleiche Funktion
> mittels Logik zu implementieren. Bei einem Hardcore erreicht man einen
> deutlich höheren Takt bei weniger Strom als bei einem Softcore. Außerdem
> wird es innerhalb eines Hardcore keine Timingprobleme geben.

Das war bei meinen Anwendungen nie ein problem, der Softcore taugt eh 
nur fürs Housekeeping: Konfiguration der Peripherie per I2C, auslesen 
PCB-sensoren, UART -debugschnittstelle - nichts was ein 32 bit 150 MHz 
Softcore nicht auch nebenher gebacken kriegt. Für anspruchsvolleren 
Aufgaben (Echtzeit FFT im nahen GSps Bereich) ist eine sequentielle CPU 
eh zu langsam
Dann bindet man doch lieber einen "richtigen" PC über PCIe an.

und selbst bei ca. 1500 LUT's und slices für einen microblaze hat auch 
der kleinsten Artix XC17AT mit ca 10K LUT's und 20k FF Platz für einen 
Quad-Core mit Peripherie.

Nach meiner Meinung ist wenn man einen Core integriert in den meisten 
Fällen wurscht ob Hard oder Soft-core. Ausser das der Soft-Core auf alle 
FPGA-Familien (eines Herstellers) und -projekte portierbar ist (bspw. 
FMC) und Hard-core dagen nur (geschätzt) 1% Anteil am Portfolio hat.

MfG,

von Michael W. (Gast)


Lesenswert?

In solchen Fällen haben Softcores aber auch keine nennenswerte 
Performance und man kann das, was man mit dem SC kann, auch direkt in 
FSM hinschreiben, meine ich.

von Fpgakuechle K. (Gast)


Lesenswert?

Markus W. schrieb:
> In solchen Fällen haben Softcores aber auch keine nennenswerte
> Performance und man kann das, was man mit dem SC kann, auch direkt in
> FSM hinschreiben, meine ich.

Aber für eine FSM muss  damit ene Änderung wirksam wird der gesamte FPGA 
die gesamte Toolchain durchlaufen, was bei Vivado und Go mehrere Minuten 
bis zur halben Stunde dauert.

Beim Softcore dagegen dauert es unter einer Minute den C-Code zu 
kompilieren, das fertig geroutetet Bitfile zu modifizieren und das ganze 
auf den FPGA zu laden.

MfG,

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.