Forum: FPGA, VHDL & Co. Einstieg FPGA unter Linux


von Zero V. (Firma: Freelancer) (gnd)


Lesenswert?

Servus,

ich versuche mich gerade daran, den richtigen Einstieg in die FPGA/VHDL 
Welt zu finden.
Zur Auswahl stehen nun Lattice, Altera und Xilinx.
Für mich ist ausschlaggebend welche Entwicklungssoftware am Besten auf 
Linux läuft und für mich als Einsteiger wenig Fallstricke bietet. Was 
würdet ihr mir empfehlen?

Das iceStick Board finde ich bisher sehr interessant. Aber ich kann 
leider nicht einschätzen ob man darin ein Softcore laufen lassen kann? 
Gibt es RISC-V dafür?

Eine generelle Frage habe ich noch, wie realisiert man ein DDR 
Speicherinterface? Geht das mit jedem FPGA?

Danke an euch Gurus.

PS: ich werde natürlich erstmal kleine Brötchen backen

von moep (Gast)


Lesenswert?

Hi D.C.

ich persönlich finde, dass die Altera Software Quartus unter Linux am 
wenigsten Probleme gemacht hat. Wobei ich zugeben muss, dass ich schon 
lange nichts mehr mit Xilinx/Vivado gemacht habe. Ein gutes Board zum 
Einstieg fand ich:
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=593

Und ja, darauf kannst du auf jeden Fall einen NiosII SoftCore Prozessor 
laufen lassen :-).

Viel Spaß & Erfolg

von Markus F. (mfro)


Lesenswert?

D. C. schrieb:
> Eine generelle Frage habe ich noch, wie realisiert man ein DDR
> Speicherinterface? Geht das mit jedem FPGA?

Eine Übersicht, welche (Altera/Intel-) FPGAs welches Memory-Interface 
unterstützen, findest Du hier:

https://www.intel.com/content/www/us/en/programmable/support/support-resources/external-memory.html

Kern ist die ALTDDIO_BIDIR IP, die unterstützt sein muss, um DDR ans 
Fliegen zu bekommen. Das ist nach meiner Kenntnis bei allen momentan 
käuflichen Alteras der Fall.

Eine ähnliche Tabelle gibt's sicher auch von anderen Herstellern.

Das Thema passt übrigens nicht so recht zu "kleine Brötchen", sondern 
geht eher Richtung 2-kg Bauernbrot. Zumindest, wenn man sich das 
Memory-Interface nicht nur erzeugen lassen, sondern auch verstehen (oder 
gleich selber bauen) will ...

P.S.: ich habe alle Quartus-Versionen ab 9.1 auf Debian am laufen. Die 
frühen Versionen erfordern auf aktuellen Linux-Distributionen ein wenig 
Überredung, aber laufen tun sie alle.

: Bearbeitet durch User
von Duke Scarring (Gast)


Lesenswert?

D. C. schrieb:
> Zur Auswahl stehen nun Lattice, Altera und Xilinx.
> Für mich ist ausschlaggebend welche Entwicklungssoftware am Besten auf
> Linux läuft und für mich als Einsteiger wenig Fallstricke bietet.
Für mich war damals beim Einstieg entscheidend, das die Xilinx Software 
für Linux kostenlos war (und Altera nicht). Das ist inzwischen kein 
Argument mehr.

Lattice habe ich unter Linux noch nicht probiert. Altera und Xilinx 
funktioineren gut. Die Einrichtung des Xilinx-Programmers unter Linux 
war (ist?) kniffelig, das war bei Altera geschmeidiger.

Duke

von Neverever (Gast)


Lesenswert?

D. C. schrieb:
> Zur Auswahl stehen nun Lattice, Altera und Xilinx.
> Für mich ist ausschlaggebend welche Entwicklungssoftware am Besten auf
> Linux läuft und für mich als Einsteiger wenig Fallstricke bietet. Was
> würdet ihr mir empfehlen?


Ich habe mich für Altera/Intel entschieden und kann die anderen 
Erfahrungen nur bestätigen. Läuft problemlos und die Software ist 
brauchbar.


> Das iceStick Board finde ich bisher sehr interessant. Aber ich kann
> leider nicht einschätzen ob man darin ein Softcore laufen lassen kann?
> Gibt es RISC-V dafür?


RISC-V ist eine ISA. Eine kompatible Mikroarchitektur musst Du 
entwickeln oder entsprechend auf eine lizensierbare oder 
OpenSource-Mikroarchitektur zurückgreifen.
Generell kann man sagen, dass Du für eine (RV32E-)RISC-V 
Mikroarchitektur mit weniger als 1000 LUTs auskommen kannst, wenn Du auf 
Erweiterungen verzichtest. Nach oben hin sind natürlich keine Grenzen 
gesetzt. Du könntest auch eine Many-Core RISC-V CPU entwerfen, die jedes 
FPGA sprengt.
Daher sollte so gut wie jedes FPGA dafür geeignet sein.

Daher mein Vorschlag: Kauf Dir ein günstiges Altera CycloneIV-Board aus 
China oder von ebay. Damit kannst Du eine Menge machen. Gibt es ohne 
externes RAM für 15 Euro und mit RAM ab 25 Euro.
Der CycloneIV wird noch von der aktuellen Quartus-Version von 
Intel/Altera unterstützt, die oft verkauften CycloneII-Boards nicht.

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Lattice kann ich unter Linux für den Einstieg nicht empfehlen.

Grund ist, dass der integrierte Aldec Simulator nur in der Windows 
Variante verfügbar ist.

Xilinx läuft tadellos, Altera habe ich noch nicht getestet.

von Markus F. (mfro)


Lesenswert?

Tobias B. schrieb:
> Lattice kann ich unter Linux für den Einstieg nicht empfehlen.
>
> Grund ist, dass der integrierte Aldec Simulator nur in der Windows
> Variante verfügbar ist.
>

Das wäre für mich - ehrlich gesagt - nicht unbedingt ein Kriterium 
(vorausgesetzt, der Rest passt). Bei Altera ist zwar ModelSim-Altera 
dabei, aber dessen Integration ist so hakelig, dass ich es eigentlich 
nicht mehr benutze.

GHDL ist für mich mittlerweile die bessere und flexiblere Alternative. 
Mit ein bißchen Makefile-Bastelei drumrum läuft das hübsch rund. Bei der 
Gelegenheit habe ich auch gleich das Quartus-GUI mit entsorgt und durch 
Makefiles ersetzt, was mir mit deutlich verkürzten Synthesezeiten, der 
freien Wahl des Editors und deutlich weniger Abstürzen gedankt wurde.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Zur Ansteuerung von DRAMs gibt es von Micron viele Applikationstexte
https://www.micron.com/advanced-search

von Zero V. (Firma: Freelancer) (gnd)


Lesenswert?

Danke schon mal für die Antworten :-).

Aber gerne noch mehr Ratschläge.

von Michael W. (Gast)


Lesenswert?

Zynq, das ist das Beste zum Einsteigen und Lernen. Ein SOC-System hast 
du in 1h zusammengeklickt und am Laufen.

von Markus F. (mfro)


Lesenswert?

M. W. schrieb:
> Zynq, das ist das Beste zum Einsteigen und Lernen. Ein SOC-System hast
> du in 1h zusammengeklickt und am Laufen.

Zusammengeklickt? Ja, bestimmt.

Aber hat man dabei was gelernt? Eher nicht.

Meine Meinung: das hier 
http://searle.hostei.com/grant/Multicomp/index.html kostet dich nur 
einen Bruchteil eines Zynq-Boards und lernen kannst Du dabei ein 
Vielfaches.

von Martin S. (strubi)


Lesenswert?

Moin,

ich habe bisher alle A/L/X-Toolchains unter Linux angeschmissen, schenkt 
sich nicht so viel, allerdings ist die Konfiguration der Libraries teils 
etwas mühsam. Um das nicht immer wieder zu machen, empfiehlt sich eine 
funktionierende "Docker"-Konfig, auch um komplexe Builds anzuschmeissen.
Details dazu: Google "Dockerized FPGA toolchains".
Wenn man nicht genau die empfohlene Distro hat, funktioniert's oft nicht 
und man frickelt sich wieder am System rum, die Zeit muss man beim 
Dockern nur einmal opfern.

Die Lattice Diamond hat jahrelang Faxen gemacht, dank eines hartnäckigen 
Bugs mit Dateinamen. Ist seit v3.9 aber nicht mehr aufgetreten...
Und wenn man um den Aldec herumkommt, d.h. kein sinnlos vercryptetes 
Verilog  simulieren muss/will, ist GHDL oder sonst icarus die bessere 
Alternative.

von S. R. (svenska)


Lesenswert?

D. C. schrieb:
> Für mich ist ausschlaggebend welche Entwicklungssoftware am Besten auf
> Linux läuft und für mich als Einsteiger wenig Fallstricke bietet.

Ich habe ein ISE 14.7 (finale Version) und ein Board mit Spartan6 unter 
Linux. Die ISE läuft, der Simulator läuft (allerdings habe ich mir für 
beides selber Makefiles gebastelt), einzig das Programmieren mit Impact 
braucht ein bisschen Fummelei.

Außerdem habe ich Vivado mit einem Zynq benutzt, das lief problemlos 
unter Linux. Allerdings schiebe ich den Bitstream dort zur Laufzeit 
rein.

D. C. schrieb:
> Das iceStick Board finde ich bisher sehr interessant. Aber ich kann
> leider nicht einschätzen ob man darin ein Softcore laufen lassen kann?
> Gibt es RISC-V dafür?

Clifford Wolf (der Entwickler von Icestorm und Yosys, also der 
Opensource-Toolchain für Verilog auf Lattice-FPGAs) hat PicoRV32 (seinen 
formal verifizierten RISC V-Core) auf so einem FPGA vorgeführt.

Geht also nachweislich.

: Bearbeitet durch User
von M. Н. (Gast)


Lesenswert?

Ich habe nur Erfahrung mit Altera und Lattice in privater Nutzung.
Grundsätzlich ist es schonmal schön, dass die FPGA Hersteller ihre 
Software für Linux anbieten.

Altera:

Quartus von Altera funktioniert bei mir tadellos. Es bringt die 
verwendeten Libraries selbst mit, sodass nur wenig Abhängigkeiten zu 
deinem System bestehen. Habe Quartus unter Arch am laufen. Der Installer 
von Quartus lief bei mir bis jetzt unter allen Systemen.

Lattice:

Diamond gibt es für Linux nur als rpm File. Das musst du halt irgendwie 
installiert bekommen. Für Arch gibt es ein AUR Paket, das das richtig 
installiert. Ansonsten muss man diese Software da irgendwie 
rausfrickeln.


Die Installation finde ich bei Altera unproblematischer. Zudem 
funktioniert Quartus danach auch. Diamond hat gewisse Eigenheiten. Ich 
konnte zum Beispiel den Programmer an meinem Rechner nicht nutzen, weil 
Diamond immer abgestürzt ist, sobald der Programmer angeschlossen war. 
Nach tagelangem Suchen im Internet und disassemblieren der Diamond 
Software habe ich manuell in der Executable von Diamonds Programmer 
einige "Codesstellen" umgebastelt, sodass es funktioniert.... hat. Beim 
nächsten Update war's wieder kaputt und ich hatte keine Lust mehr das 
nochmal zu reparieren.


Falls jemand das Problem auch hat und sich zutraut dadrin rumzubasteln: 
Hier der Originalbeitrag. Hat bei mir nicht getan. Musste noch mehr 
modifizieren, aber der Kerngedanke stimmt:

https://www.eevblog.com/forum/microcontrollers/lattice-diamond-is-making-me-sad/25/

Ein Vorteil von Lattice ist, dass sie sehr Hobby-freundiche FPGAs haben. 
Wenn du mal einen FPGA selbst auf ein Board bringen willst, der nicht 
besonders groß ist, dann hat LAttice da einiges mit Single-Supply, ohne 
externes ROM etc.

Für den Anfang mit einem fertigen Board würde ich zu Altera tendieren. 
Wie es sich mit Xilinx verhält weiß ich nicht. Denke aber, dass das 
ähnlich wie Altera auch unproblematisch sein sollte. Allerdings finde 
ich die Bedienung von Vivado grausam. Bis ich den Pin Planner gefunden 
habe...

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.