FPGA Einstieg unter Linux

Gast #3429325
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
Gast #3429397
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!
#3429438
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.
Gast #3429496
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
#3429528
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
Gast #3429581
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
Gast #3430491
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
Gast #3430545
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
Gast #3430586
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
Persönliche Seite #3430687
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
#3430888
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.
Gast #3432115
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
#3432133
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.
#3432293
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
#3436681
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren