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


von Mr Bean (Gast)


Lesenswert?

Hallo

Ich habe nun schon sehr viel mit AtMega und SiLabs 8051 µControllern 
gemacht (programmiert in C). Ich würde mich nun gerne in die Thematik 
FPGA einarbeiten. Könnt ihr mir ein paar Tipps geben, wie ich das am 
besten unter Linux (Ubuntu 12.04) hin bekomme? Welche Tools der beiden 
großen Hersteller Xilinx bzw. Altera sind unter Linux besser zu 
verwenden!?
Was habt ihr für Erfahrungen gemacht bei der FPGA Entwicklung unter 
Linux?

Gruß
Bean

von Erfahrungstier (Gast)


Lesenswert?

Mr Bean schrieb:
> Hallo
>
> Ich habe nun schon sehr viel mit AtMega und SiLabs 8051 µControllern
> gemacht (programmiert in C). Ich würde mich nun gerne in die Thematik
> FPGA einarbeiten. Könnt ihr mir ein paar Tipps geben, wie ich das am
> besten unter Linux (Ubuntu 12.04) hin bekomme? Welche Tools der beiden
> großen Hersteller Xilinx bzw. Altera sind unter Linux besser zu
> verwenden!?
> Was habt ihr für Erfahrungen gemacht bei der FPGA Entwicklung unter
> Linux?
>
> Gruß
> Bean

Sowohl ISE als auch Quartus funktioniert wunderbar!

von Mr Bean (Gast)


Lesenswert?

Hallo

Danke für die Antwort. Funktioniert beides auch unter 64Bit? Habe nun 
etwas gelesen und einen Beitrag gefunden wo von Problemen mit 64Bit 
System die Rede war. Allerdings ist der Beitrag schon etwas älter.

Was haltet ihr von dem Board zu Einstieg:
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=593#section

Gruß

Bean

von Sönke P. (snke_p)


Lesenswert?

Erfahrungstier schrieb:
> Sowohl ISE als auch Quartus funktioniert wunderbar!

Ja, funktionieren beide gut, auch unter 64bit.

Allerdings haben sich sowohl die ISE-, als auch die Quartus-Leute wenig 
Mühe bei der Zusammenstellung eines ordentlichen Pakets gegeben. Vor 
allem hinsichtlich Libraries/Abhängigkeiten und unnützerweise mehrfach 
vorhandenen Files. Da kann man aber ganz gut selber nacharbeiten (z.B. 
ein paar Libs raussschmeissen, so dass Libs der Linux-Distri verwendet 
werden).

Bei ISE nervt unter Linux, dass ein paar Sachen (z.B. Pin Planner) durch 
ein Wine-ähnliches, aber uraltes Emulationslayer Linux-"kompatibel" 
gemacht wurde. Da wäre man ggf. mit der Windows-Software+Wine besser 
gefahren.
Quartus erscheint da runder, mehr aus einem Guss.

Jetzt wo ich etwas mehr in die Sache einzutauchen beginne, habe ich aber 
den Eindruck, dass ISE grundsätzlich mehr Infos darbietet, bzw. 
Eingriffsmöglichkeiten bietet (nicht, dass ich schon so weit wäre, das 
auch auszunutzen...).

Bei beiden ist mir noch nicht klar, wie ich die Abläufe auch "headless" 
à la Makefile schreiben, make... hinbekomme.

Schade ist, dass zumindest die freie VHDL-Welt nicht so gut vertreten 
ist. GHDL scheint nicht sonderlich aktiv. Hingegen scheint für die 
"Verilogger" Icarus Verilog recht gut zu sein und aktiv entwickelt zu 
werden.

Zum Board:
Das DE0nano habe ich auch, aber nur, weil ich es recht günstig erstehen 
konnte. Sonst hätte ich mir eher eine FPGA-Karte von MESA geholt, die 
sind auch fit für "echte" Anwendungen.
Ein Board mit vielen Features ist m.E. nur für den ersten 
Motivationsschub gut, damit man was "echtes" sehen kann. Danach wird man 
mehr und mehr in die Simulation eintachen.

von Mr Bean (Gast)


Lesenswert?

Hallo

Vielen Dank für die Antwort. Ich denke ich werde mein Glück mal mit 
Altera und dem DE0-Nano probieren. Mal schauen wie weit ich komme...
Muss ich unter Linux_64Bit für die Altera WebEdition noch irgendwelche 
32Bit Libs installieren?

Gruß

Bean

von Michael R. (dj_motionx)


Lesenswert?

Hallo !
Kann auch nur berichten, dass die Altera-tools problemlos auf 64-bit 
Linux laufen. ALso habe auch keine 32-bit libs o.ä. nachinstalliert 
sondern ist wirklich out-of-the-box gelaufen. Zur Verwendung meines 
USB-Blasters hab ich mir folgendes kleines Startskript mit 
Codeschnippseln aus dem www geschrieben:
1
#!/bin/bash
2
echo CONFIG QUARTUS 2 LICENSE
3
export LM_LICENSE_FILE=XXXXXXXXXXXXXX
4
echo [DONE]
5
6
echo SETUP JTAG USB BLASTER 
7
lsusb
8
sudo killall jtagd
9
sudo chmod 755 /sys/kernel/debug/usb/devices
10
sudo chmod 755 /sys/kernel/debug/usb
11
sudo chmod 755 /sys/kernel/debug
12
sudo mount --bind /dev/bus /proc/bus
13
sudo ln -s /sys/kernel/debug/usb/devices /proc/bus/usb/devices
14
sudo ./jtagd
15
sudo ./jtagconfig
16
sudo killall jtagd
17
sudo ./jtagd --user-start
18
echo [DONE]
19
20
echo WILL START QUARTUS NOW !
21
./quartus

von Mr Bean (Gast)


Lesenswert?

Super, danke für das Skript. Aber das bringt mich zur nächsten Frage:
Wenn ich mir das DE0-Nano Board von terasic.com hole, brauch ich dann 
noch einen USB JTAG Adapter, um den FPGA zu programmieren? So wie ich 
das sehe ist da ein USB "Bootloader" drauf. Funktioniert das dann auch 
unter Linux? Wie ist das genau, ich kann ja nicht direkt den FPGA 
beschreiben, sondern muss ein Bitfile in ein Speicherbaustein laden. Das 
funktioniert ja auch bei dem DE0-Nano Board so oder? Nur halt über einen 
USB-Bootloader oder?

Danke

Gruß
Bean

von G. L. (lele)


Lesenswert?

m.W. ist da bereits ein USB-Blaster mit aufm Board (in einem CPLD oder 
so).
Zumindest wird unter Win als USB-Blaster installiert, kannst also den 
FPGA direkt beschreiben.

von Michael R. (dj_motionx)


Lesenswert?

G. L. schrieb:
> da bereits ein USB-Blaster mit aufm Board

Der Treiber funktioniert auch mit Devboards welche den USB-Blaster schon 
am Board verbaut haben. Einfach direkt per USB verbinden und los gehts 
...

von Mr Bean (Gast)


Lesenswert?

Super, danke für die Antworten!
Dann mal schauen wie mir heute Abend die Installation der Quartus II Web 
Edition gelingt.

Gruß
Bean

von dito (Gast)


Lesenswert?

Verwende auch Quartus 13.0 64 Bit unter Ubuntu 13.10 und hatte noch nie 
Probleme.

von Mr Bean (Gast)


Lesenswert?

Hallo

Also ich versuche gerade Quartus bei mir zu installieren.
Zuerst musste ich die erste Zeile des Skripts setup.sh in #!/bin/bash 
ändern. Dann hat das Setup gestartet. Allerdings bekomme ich folgende 
Fehlermeldung:
"You must have the 32-bit compatibility libraries installed for the 
Quartus II installer and software to operate properly."
Das Setup startet aber und ich kann es theoretisch auch fortsetzen. 
Allerdings will ich zuerst versuchen die entsprechenden Libs zu 
installieren. Könnt ihr mir sagen welche 32Bit-Libs ich hier noch 
installieren muss? System ist wie gesagt Ubuntu 12.04 64Bit.

Gruß
Bean

von Mr Bean (Gast)


Lesenswert?

Also

Bin auf meiner Suche auf diese Altera Seite gestoßen:
http://www.altera.com/support/kdb/solutions/rd06142012_65.html
Hier wird für diesen Fall ein geändertes ./setup.sh Skript angegeben. 
Wenn ich dieses Ausführe tut sich aber leider gar nichts.
Wie installiere ich die Software denn richtig?

Danke

Gruß
Bean

von Christoph S. (mixer) Benutzerseite


Lesenswert?

Sönke Peters schrieb:
> Schade ist, dass zumindest die freie VHDL-Welt nicht so gut vertreten
> ist. GHDL scheint nicht sonderlich aktiv.

Aber fuer n Einstieg reichts allemal. Es wird ja eh zuerst simuliert und 
dann erst auf dem FPGA getestet und zumindest mir gefaellt ghdl + 
gtkwave wesentlich besser wie z.B. das Modelsim von Quartus.

Gruss

: Bearbeitet durch User
von Christoph S. (mixer) Benutzerseite


Lesenswert?

Zu deinen Installationsproblemen:

http://www.hs-augsburg.de/~beckmanf/dokuwiki/doku.php?id=quartus_on_64bit_linux

Ich meine ich habs mit der Anleitung installiert.

von Mr Bean (Gast)


Lesenswert?

Hallo Christoph

Danke für die Anleitung. Funktioniert bei mir trotzdem nicht. Ich 
bekomme beim Aufruf von setup.sh die Ausgabe
"./setup.sh: 35: ./setup.sh: glibc: not found"
Wenn ich dann mit apt-get versuche die 32Bit Version der Lib zu 
installieren bekomme ich:
"libc6:i386 ist schon die neueste Version."

Irgendwie eine Sackgasse...
Manchmal kann ich Linux irgendwie nicht leiden.

Gruß
Bean

von Mr Bean (Gast)


Lesenswert?

Hallo

Was muss ich denn bei Ubuntu umstellen, damit ich die ganzen 32Bit Libs 
nach installieren kann!? Bei apt-get bekomme ich immer:

E: Paket lib32-expat kann nicht gefunden werden
E: Paket lib32-fontconfig kann nicht gefunden werden
E: Paket lib32-freetype2 kann nicht gefunden werden
E: Paket lib32-glibc kann nicht gefunden werden
E: Paket lib32-gtk2 kann nicht gefunden werden
E: Paket lib32-libcanberra kann nicht gefunden werden
E: Paket lib32-libpng kann nicht gefunden werden
E: Paket lib32-libpng12 kann nicht gefunden werden
E: Paket lib32-libice kann nicht gefunden werden
E: Paket lib32-libsm kann nicht gefunden werden
E: Paket lib32-util-linux kann nicht gefunden werden
E: Paket lib32-ncurses kann nicht gefunden werden
E: Paket lib32-zlib kann nicht gefunden werden
E: Paket lib32-libx11 kann nicht gefunden werden
E: Paket lib32-libxau kann nicht gefunden werden
E: Paket lib32-libxdmcp kann nicht gefunden werden
E: Paket lib32-libxext kann nicht gefunden werden
E: Paket lib32-libxft kann nicht gefunden werden
E: Paket lib32-libxrender kann nicht gefunden werden
E: Paket lib32-libxt kann nicht gefunden werden
E: Paket lib32-libxtst kann nicht gefunden werden

Gruß

Bean

von Stephan K. (nightowl)


Lesenswert?

Hat jemand dieses Ding?

http://www.ebay.de/itm/261240585986?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649

Ich würde mich auch gerne ein wenig mit dem Thema FPGA beschäftigen, und 
ich finde das sieht ganz nett aus.

Ansonsten würde ich wohl auch zum DE0-nano oder DE0 greifen.

von Christoph S. (mixer) Benutzerseite


Lesenswert?

Mr Bean schrieb:
> Ich
> bekomme beim Aufruf von setup.sh die Ausgabe
> "./setup.sh: 35: ./setup.sh: glibc: not found"
> Wenn ich dann mit apt-get versuche die 32Bit Version der Lib zu
> installieren bekomme ich:
> "libc6:i386 ist schon die neueste Version."

Na dann sollte das ja passen. Der Fehler liegt wohl, wie ueblich, wo 
anders...

Mr Bean schrieb:
> Was muss ich denn bei Ubuntu umstellen, damit ich die ganzen 32Bit Libs
> nach installieren kann!?

Fuer so etwas kann ich dir das ubuntuusers.de Wiki empfehlen.

Meine Installation ist zwar schon knapp ein Jahr alt aber ich kann mich 
nicht an irgendwelche groesseren Probleme der Art erinnern. Hab leider 
z.Zt. keinen Zugriff auf meinen normalen PC sonnst wuerd ich das ganze 
nochmal in ner neuen VM ausprobieren.

Von den lib32 Paketen sind bei mir nur folgende installiert:
1
christoph@nebuchadnezzar:~$ dpkg -l | grep lib32
2
ii  lib32asound2                           1.0.25-1ubuntu10.2                                  shared library for ALSA applications (32 bit)
3
ii  lib32gcc1                              1:4.6.3-1ubuntu5                                    GCC support library (32 bit Version)
4
ii  lib32ncurses5                          5.9-4                                               shared libraries for terminal handling (32-bit)
5
ii  lib32stdc++6                           4.6.3-1ubuntu5                                      GNU Standard C++ Library v3 (32 bit Version)
6
ii  lib32tinfo5                            5.9-4                                               shared low-level terminfo library for terminal handling (32-bit)
7
ii  lib32z1                                1:1.2.3.4.dfsg-3ubuntu4                             compression library - 32 bit runtime

Gruss

von Christoph Z. (christophz)


Lesenswert?

Mr Bean schrieb:
> "libc6:i386 ist schon die neueste Version."

Mr Bean schrieb:
> Was muss ich denn bei Ubuntu umstellen, damit ich die ganzen 32Bit Libs
> nach installieren kann!? Bei apt-get bekomme ich immer:
>
> E: Paket lib32-expat kann nicht gefunden werden

Du siehst hier den unterschied in den Packetnamen?

Da hat sich in den letzten Jahren stark was getan, wie die Debian 
basierten Distributionen mit 32bit kompatibilität umgehen. Das ganze 
heisst jetz "multiarch support". Das obige Beispiel der libc6:i386 ist 
so ein Multiarch Paket.

Also müsste das neu ungefähr expat:i386 heissen.

von Mr Bean (Gast)


Lesenswert?

Hallo Christoph

Also "apt-get install expat:i386" hat gut funktioniert.
Bei "apt-get install fontconfig:i386" wollte apt-get allerdings die 
bereits installierte Version von fontconfig deinstallieren. Das habe ich 
erstmal verneint. Wie kann ich beide Libs paralell installieren? Also 
64Bit und 32Bit!?

Gruß
Bean

von Björn B. (elmo)


Lesenswert?

Stephan K. schrieb:
> Hat jemand dieses Ding?
>
> 
http://www.ebay.de/itm/261240585986?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649
>
> Ich würde mich auch gerne ein wenig mit dem Thema FPGA beschäftigen, und
> ich finde das sieht ganz nett aus.
>
> Ansonsten würde ich wohl auch zum DE0-nano oder DE0 greifen.

Ist zwar etwas Offtopic aber:
Ja ich besitze so eins. Für den Einstieg kann ich aber nur dringend zum 
DE0-Nano raten da die Dokumentation bei dem Ebay Board (das heisst 
übrigens Baixun ASK2CB) quasi nicht vorhanden ist. Ausserdem sind die 
Terasic Boards verbreiteter wodurch man auch mehr Projekte dazu findet.

Und vielleicht auch nicht ganz unwichtig: der Cyclone II wird in der 
aktuellsten Quartus Version garnicht mehr unterstützt.

Gruß
Björn

Edit: das DE0 Nano bekommt man für ca 78 Euro bei Digikey.

: Bearbeitet durch User
von Mr Bean (Gast)


Lesenswert?

Nabend

Ja, ich hab mir auch das DE-Nano Board bestellt. Jetzt sollte ich nur 
noch die Quartus Software unter Linux installiert bekommen... :-(

Gruß
Bean

von Stephan K. (nightowl)


Lesenswert?

@Björn

Danke für die Info.


>Ist zwar etwas Offtopic aber:
Ja, am Anfang hatte ich das Gefühl, daß Hardware noch ein Thema war.

Die Toolchain unter Linux finde ich aber durchaus auch wichtig.
Werde das bei Gelegenheit mal mit der "Web Edition Software" testen.

Wenn Du mit 64 und 32-bit auf einem System rummachen willst, führt an 
Multiarch wohl kein Weg vorbei.

Ich finde diese Erklärung ganz gut.
https://help.ubuntu.com/community/MultiArch

Gruß Stephan

von Stephan K. (nightowl)


Lesenswert?

Also bei mir ließ sich die Quartus Web Edition ohne Fehlermeldungen auf 
einem 64-Bit Linux Mint 14 installieren.

Allerdings hab ich nicht setup.sh sondern direkt 
QuartusSetupWeb-13.1.0.162
ausgeführt.

Ich weiß nicht ob das eine Rolle spielt, da dies eine 64 bit Version der 
Software ist, aber ich hatte aus anderen Gründen schon Multiarch mit 
ia32 Unterstützung installiert.

Gruß Stephan

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.