Forum: FPGA, VHDL & Co. Wo Toolchain für CPLDs/FPGAs hernehmen?


von Christian W. (clupus)


Lesenswert?

Hallo,

kurz was vorweg: Ich will jetzt keine Disskussion zum Thema "Ist es 
sinnvoll CPLDs/FPGAs in meinem Fall zu verwenden?" vom Zaun brechen.

Ich hab mit CPLD/FPGA noch keinerlei Erfahrungen. Ich wollte mal sehen, 
was ich damit machen kann und finde das auch ganz praktisch. Nur ein 
Problemchen tut sich mir auf: Ich weiß nicht, ob ich mit solch einem 
Chip überhaupt umgehen kann.

Habe ich das richtig verstanden, was die zeitliche Abfolge der 
Entwicklung des "Programms" auf dem CPLD/FPGS angeht?:
1.) Schreiben eines entsprechenden Codes in HDL (VHDL/Verilog)
2.) Simulieren
3.) Erzeugen einer Netlist, ggf simulieren
4.) Beim FPGA mappen (so heißt das doch, wenn die Macrocells verteilt 
werden,  oder?)
5.) Ergebnis ist eine Datei mit dem Bitcode für den Chip. Dieser muss 
jetzt noch auf den Chip geladen werden (beim FPGA auf den EEPROM)

Zunächst im Voraus: Ich verwende Linux auf einem 64-Bit PC.
Der Schritt 1 geht in jedem Texteditor. kein Problem.
Der Schritt 2 und 3 wird von z.B. Ikarus Verilog übernommen, ggf 
kombiniert mit div. anderen Programmen.

Welche Programme kann ich für Schritt 4 und 5 verwenden? Ich habe im 
Netz an einigen Stellen gelesen, dass man für Schritt 5 mithilfe eines 
einfachen Kabels (s. Artikel unter FPGA, CPLD & Co.) und ISE von Xilinx 
machen kann/muss. An anderer Stelle habe ich im Netz folgende Seite 
gefunden: 
http://www.fpga-faq.com/FAQ_Pages/0028_Downloading_a_Bitstream_under_Linux.htm
Dort steht, dass der Bitstream einfach nur über die entsprechenden Pins 
des LPT-Ports bitweise ausgegeben werden müssen?!?

Gibt es für Linux eine Mgl. CPLDs unter Linux 64 Bit zu programmieren?
Gibt es eine Beschreibung des JTAG-Interfaces um die Programmierung 
durchzuführen?
Bei einem FPGA muss der Bitstream einfach auf den EEPROM geschrieben 
wereden, richtig?

OK, das waren jetzt einige Fragen. Wäre schön, wenn ich mich ein 
bisschen aufklären könntet

Christian

von Falk B. (falk)


Lesenswert?

@ Christian Wolf (clupus)

>Habe ich das richtig verstanden, was die zeitliche Abfolge der
>Entwicklung des "Programms" auf dem CPLD/FPGS angeht?:

Ja.

>Welche Programme kann ich für Schritt 4 und 5 verwenden?

Die der Hersteller.

http://www.mikrocontroller.net/articles/Programmierbare_Logik

>Gibt es für Linux eine Mgl. CPLDs unter Linux 64 Bit zu programmieren?

Keine Ahnung.

>Gibt es eine Beschreibung des JTAG-Interfaces um die Programmierung
>durchzuführen?

Ja.

>Bei einem FPGA muss der Bitstream einfach auf den EEPROM geschrieben
>wereden, richtig?

Quasi.

MfG
Falk

von Christian W. (clupus)


Lesenswert?

>>Welche Programme kann ich für Schritt 4 und 5 verwenden?
>
> Die der Hersteller.
>
> http://www.mikrocontroller.net/articles/Programmierbare_Logik
>
>>Gibt es für Linux eine Mgl. CPLDs unter Linux 64 Bit zu programmieren?
>
> Keine Ahnung.

Das ist das Problem: Ich werde mal die Herstellerprogramme versuchen, 
aber ich fürchte, dass die nicht laufen werden.
Wenn hier ein Linux-User ist: Bitte mal Erfahrungen mitteilen, danke.

>>Gibt es eine Beschreibung des JTAG-Interfaces um die Programmierung
>>durchzuführen?
>
> Ja.
Verrätst du mir auch wo? ;-)

Danke
Christian

von Thomas P. (pototschnig)


Lesenswert?

> Gibt es für Linux eine Mgl. CPLDs unter Linux 64 Bit zu programmieren?
> Gibt es eine Beschreibung des JTAG-Interfaces um die Programmierung
> durchzuführen?

Jo gibt es. 64Bit Webpack von z.B. Xilinx. Impact zum Programmieren ist 
da gleich dabei. Normalerweise wird ein Kernel-Treiber benötigt, den man 
für 64Bit nicht bekommt, aber es gibt einen 64Bit Cable-Server, an den 
Impact connecten kann und der die Brücke zwischen 
parallel-Port-Programmer und Impact darstellt. Kuck mal in der 
Artikelsammlung unter 64Bit ISE oder so ...

Mfg
Thomas Pototschnig

edit
Ursprünglich hier:
http://www.mikrocontroller.net/articles/Xilinx_ISE_Linux

Eine inoffizielle gefixte Version des CableServers war in einem meiner 
Webspaces gehostet, da ist wohl was verloren gegangen ... werd ich 
korrigieren ...

edit
Okay, Link geht wieder ...
http://www.oxed.de/fpga/cblsrv-0.2-src.tar.bz2

von Jörg (Gast)


Lesenswert?

Hallo,

die kommerzielle Version der Xilinx-Entwicklungsumgebung gibt es als
32 und als 64 Bit-Version, bei den Programmern (USB/ParallelPort) kann
es Probleme geben. Bei der nichtkommerziellen Version (WebPack)
gibt's nur 32 Bit.

Gruss

Jörg

von Dietmar S (Gast)


Lesenswert?

Bei mit laeuft  Webpack92i auf einem 64 bit Rechner unter OpenSuSE 11.0. 
Einfach mit "linux32 bash" eine 32-bit Umgebung herstellen und daraus 
arbeiten. uname -a zeigt dann "Linux linux 2.6.25.11-0.1-default #1 SMP 
2008-07-13 20:48:28 +0200 i686 athlon i386 GNU/Linux". Bis zum 
Programmieren der CPLDs bin ich aber bis jetzt noch nicht gekommen, 
plane aber da einen USB-JTAG Adapter zu verwenden.

von Günter -. (guenter)


Lesenswert?

Christian Wolf wrote:
...
> 1.) Schreiben eines entsprechenden Codes in HDL (VHDL/Verilog)
> 2.) Simulieren
> 3.) Erzeugen einer Netlist, ggf simulieren
> 4.) Beim FPGA mappen (so heißt das doch, wenn die Macrocells verteilt
> werden,  oder?)
...

> Der Schritt 2 und 3 wird von z.B. Ikarus Verilog übernommen, ggf
> kombiniert mit div. anderen Programmen.

Wenn ich das richtig verstehe dann ist die Synthese auch schon 
FPGA-spezifisch. Icarus unterstützt nur die Synthese für einen alten 
Virtex-Typ und für den Spartan XL. Die Unterstützung ist auch nur in der 
stabilen Version 0.8 vorhanden und funktioniert nicht in den letzten 
Entwicklungsversion 0.9.xx. Diese sind jedoch schneller in der 
Simulation und unterstützen weitere Funktionen des Verilogstandards als 
es bei 0.8.x der Fall 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.