Forum: Mikrocontroller und Digitale Elektronik Kann man den FPGA des Parallella umprogrammieren?


von Geron (Gast)


Lesenswert?

Insbesondere in VHDL oder Verilog um diese Hardwarebeschreibungssprachen 
etwas besser zu lernen und mit ihnen zu üben?

Und falls das geht, gibt es dafür entsprechende I/O an dem Rechner, die 
man vom FPGA aus direkt nutzen kann?

Um diesen Rechner geht es mir:
https://www.parallella.org/



Normale FPGA Testboards haben leider den Nachteil, das sie zum einen 
sehr viel Geld kosten und dann halt auch wirklich nur FPGA Testboards 
sind.
Diesen Rechner könnte ich dagegen noch als paraleller Supercomputer oder 
schlichtweg als einfachen Rechner dank seiner ARM CPU und HDMI und USB 
Anschlusses einsetzen, aber sinn macht das halt nur, wenn man auch mit 
dem FPGA herumspielen kann, ansonsten gibt es nämlich ohne FPGA bessere 
Alternativen.

von ui (Gast)


Lesenswert?

Klar kann man das damit machen. Für 99$ gibts aber noch jede Menge 
andere Boards, die das gleiche können. Inkl. ARM.

So wie du dich ausdrückst, würde ich aber behaupten, dass du von dem 
gesamten Zeugs noch überhaupt keine Ahnung zu haben. Da kann man auch 
mit irgendeinem billigen Spartan6 anfangen, die kosten dann auch <50€.

von Geron (Gast)


Lesenswert?

ui schrieb:
> Klar kann man das damit machen. Für 99$ gibts aber noch jede Menge
> andere Boards, die das gleiche können. Inkl. ARM.

Welches wäre denn die günstigste Lösung?
Die HDMI + USB Version würde übrigens ca. 150 € kosten.
99 $ kostet nur die Version ohne HDMI + USB.



> So wie du dich ausdrückst, würde ich aber behaupten, dass du von dem
> gesamten Zeugs noch überhaupt keine Ahnung zu haben. Da kann man auch
> mit irgendeinem billigen Spartan6 anfangen, die kosten dann auch <50€.

Ich habe schon in einer der Hardwarebeschreibungssprachen auf einem 
Xilinx Spartan 3E Testboard programmiert, allerdings waren das nur ein 
paar Stunden, also zu wenig um das wirklich zu vertiefen.
Ich fand das Konzept aber hochinteressant, insbesondere war da alles in 
realer Echtzeit parallelisierbar, also alles konnte auf einmal berechnet 
werden, während ein normaler Computer mit nur einem Kern das halt alles 
nacheinander macht.

Ganz simples Beispiel was ich mir gerade so aus der Luft greife:
Wenn man bspw. 1000 Eingänge hätte und an denen ein statisches Signal 
z.b. 0 oder 1 anliegt, dass man resetten kann und nun wollte man alle 
Signale addieren, dann würde man bei einer normalen CPU wahrscheinlich 
eine Schleife verwenden und die Eingänge einfach der Reihe nach 
addieren.
Mit einem FPGA aber könnte man alle Eingänge paarweise addieren.
Also je zwei Eingänge und deren Ergebnis addiert man noch einmal in so 
ner Art Kaskade, und deren Ergebnisse noch einmal usw. dann hat man 
praktisch eine Addition aller 1000 Eingänge auf einmal.

Und DAS, das fand ich schon sehr interessant. Da kann man an 
Problemloslösungen ganz anders herangehen.
Eine normale CPU kann so etwas in der Form nicht, zumindest nur in sehr 
begrenztem Rahmen, wenn ich jetzt mal an die SIMD Einheiten denke.

von ui (Gast)


Lesenswert?

Geron schrieb:
> ui schrieb:
>
> Ganz simples Beispiel was ich mir gerade so aus der Luft greife:
> Wenn man bspw. 1000 Eingänge hätte und an denen ein statisches Signal
> z.b. 0 oder 1 anliegt, dass man resetten kann und nun wollte man alle
> Signale addieren, dann würde man bei einer normalen CPU wahrscheinlich
> eine Schleife verwenden und die Eingänge einfach der Reihe nach
> addieren.
> Mit einem FPGA aber könnte man alle Eingänge paarweise addieren.
> Also je zwei Eingänge und deren Ergebnis addiert man noch einmal in so
> ner Art Kaskade, und deren Ergebnisse noch einmal usw. dann hat man
> praktisch eine Addition aller 1000 Eingänge auf einmal.
>
> Und DAS, das fand ich schon sehr interessant. Da kann man an
> Problemloslösungen ganz anders herangehen.
> Eine normale CPU kann so etwas in der Form nicht, zumindest nur in sehr
> begrenztem Rahmen, wenn ich jetzt mal an die SIMD Einheiten denke.

Ja aber für sowas braucht man keine exotische CPU. Und braucht man bei 
sowas wirklich HDMI?
Für 150 Tacken finde ich das ganz gut. Viel wichtiger für den Einstieg 
(IMHO) ist aber die Entwicklungsumgebung. Danach würde ich als 
Einsteiger eher die Auswahl treffen. Und ich werde mit Vivado einfach 
nicht warm.
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=205&No=941
Das wäre eine evtl. Alternative.

von Geron (Gast)


Lesenswert?

ui schrieb:
>
> Und braucht man bei
> sowas wirklich HDMI?

Naja, kommt drauf an ob man die HDMI Signale direkt in den FPGA speisen 
kann, wenn ja, dann wäre das schon sehr interessant. Da könnte man viel 
mit anstellen.
Wenn der HDMI Anschluss nur direkt am ARM hängt, dann ist das natürlich 
nicht so toll, dann hätte man lediglich die Möglichkeit einer 
Bildausgabe und damit weitere Anwendungsfälle für die man das Stück HW 
nutzen könnte.


> Für 150 Tacken finde ich das ganz gut. Viel wichtiger für den Einstieg
> (IMHO) ist aber die Entwicklungsumgebung. Danach würde ich als
> Einsteiger eher die Auswahl treffen. Und ich werde mit Vivado einfach
> nicht warm.

Gibt es keine Open Source VHDL/Verliog Compiler?
Wenn ja, dann würde ja ein brauchbarer Editor + dieser Compiler genügen.

Denn was hat man davon eine spezielle IDE zu lernen, wenn man dann 
später mit der IDE eines ganz anderen FPGA Herstellers arbeiten muss?



> http://www.terasic.com.tw/cgi-bin/page/archive.pl?...
> Das wäre eine evtl. Alternative.

Sieht interessant aus, kostet allerdings genauso viel.

Wobei mir gerade einfällt, viele I/O Anschlüsse wären natürlich nett, 
damit man vom FPGA auch wirklich etwas hat.
Denn schnelles semi-paralleles rechnen kann man auch auf einer GPU 
machen.

von ui (Gast)


Lesenswert?

Geron schrieb:
> Naja, kommt drauf an ob man die HDMI Signale direkt in den FPGA speisen
> kann, wenn ja, dann wäre das schon sehr interessant. Da könnte man viel
> mit anstellen.
> Wenn der HDMI Anschluss nur direkt am ARM hängt, dann ist das natürlich
> nicht so toll, dann hätte man lediglich die Möglichkeit einer
> Bildausgabe und damit weitere Anwendungsfälle für die man das Stück HW
> nutzen könnte.

HDMI = Bildausgabe (in 99.9% der Fälle). Für sowas ist ein extra ASIC 
mit auf dem Board, oder die CPU unterstützt das Nativ. Das macht keiner 
aufm FPGA (außer man entwickelt HDMI ASICs).

Geron schrieb:
> Gibt es keine Open Source VHDL/Verliog Compiler?
> Wenn ja, dann würde ja ein brauchbarer Editor + dieser Compiler genügen.
>
> Denn was hat man davon eine spezielle IDE zu lernen, wenn man dann
> später mit der IDE eines ganz anderen FPGA Herstellers arbeiten muss?

Ja. Aber nur zum simulieren. Damit bringst du noch gar nichts auf ein 
FPGA, da brauchst du die IDE vom Hersteller. Für kleinere Chips ist 
diese i.d.R. kostenfrei (Cylcone V, Zynqs).


Ich bleib dabei. Du bist ein absoluter Anfänger. Bevor du dir ein Stück 
Hardware kaufst, beschäftige dich erstmal mit VHDL. VHDL programmieren 
und simulieren (modelsim oder ghdl) kannst du auch ohne physikalisches 
Board.
Mach erstmal im Simulator irgendwelche Beispiele, kauf dir ein 
Einsteiger Buch oder such dir im Internet Tutorials. Ansonsten vergeht 
die Freude sehr schnell. Wenn man in VHDL viel zu Fuß (also selber 
programmieren) will, dann steckt man schon für einfachere Dinge (UART, 
I2C) ein haufen Zeit rein.
Wenn man Berechnungen parallelisieren will (z.B. Matrixmultiplikation 
oder was auch immer man parallelisieren will) dann ist der Algorithmus 
dahinter wichtiger als das Board oder die Programmiersprache.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Der HDMI Ausgang des ZYNQ wird meistens vom Linux auf dem integrierten 
ARM angesprochen und die "Grafikkarte" kommt als fertiger IPCore von 
Xilinx.

Trotzdem ist ein ZYNQ nichts für Anfänger, mach da erstmal auf dem 
Spartan3 Board weiter.

von Fitzebutze (Gast)


Lesenswert?

ui schrieb:
> HDMI = Bildausgabe (in 99.9% der Fälle). Für sowas ist ein extra ASIC
> mit auf dem Board, oder die CPU unterstützt das Nativ. Das macht keiner
> aufm FPGA (außer man entwickelt HDMI ASICs).

Das machen viele auf dem FPGA. Lattice ECP3 bzw. 5 ist für sowas 
prädestiniert. Zugegeben, nix für den Massenmarkt, obwohl das Geschäft 
mit den HDCP-Decodern bei den Chinesen nicht marginal ist.

Ansonsten: Evalboards gibt es schon ab 30 USD auf Ebay und div. 
chinesischen Versandhäusern.

von S. R. (svenska)


Lesenswert?

Ja, man kann den FPGA des Parallella umprogrammieren, und wenn man sich 
geschickt anstellt, bleibt dabei sogar die Funktion des Epiphany-Chips 
erhalten.

Wenn ich mich recht entsinne, geht der HDMI-Ausgang direkt in den FPGA 
(da ist nur ein PHY zwischen), und dort wird in manchen Images dann ein 
Framebuffer für Linux bereitgestellt.

Der Zynq ist ansonsten schon ein recht spießiges Biest. Ich habe da gut 
einen Monat reingesteckt, bis ich ein (reproduzier- und versionierbares) 
Setup hatte, mit dem ich stinknormalen VHDL-Code vom Linux (via AXI) aus 
ansprechen konnte.

Für mittelprächtige Sachen ist das Parallella gut, für den Einstieg 
möchtest du ein "richtiges" Devboard (mit LEDs und Schaltern) haben.

Achso, und ohne Vivado geht garnix. Es gibt keine Open-Source Toolchain, 
wo man vorne Code reinwirft und hinten ein Bitstream rausfällt. Vivado 
zu scripten macht auch nur peripher Spaß.

Nachtrag: Wenn du dich auf Xilinx einschießen möchtest, dann würde ich 
nicht mehr mit alten Spartan3/Spartan6 anfangen wollen, weil die nur von 
ISE unterstützt werden. Sämtliche Neuentwicklungen (ab 7. Generation) 
sind nur mit Vivado nutzbar. Ich vermute, dass das bei Altera nicht 
anders ist.

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.