Forum: FPGA, VHDL & Co. Spartan 3e unter Linux?


von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Hi Forum,

ich bin in Zwischenzeit mal so weit, dass ich mich mit FPGAs 
einschiessen will. Ich habe mir jetzt das Sparten 3e Starter Kit 
bestellt (dieses hier: 
http://www.xilinx.com/products/devkits/HW-SPAR3E-SK-US-G.htm). Eine 
Forumsuche und auch Google konnte mir nicht befriedigend beantworten, 
was ich obligatorischerweise wissen will, naemlich ob es eine 
entsprechende Toolchain fuer Linux gibt. Ist das "ISE" (was auch immer 
das sein soll, eine IDE?) bereits eine komplette Toolchain? Waere Euch 
dankbar wenn Ihr mir ein paar Hinweise geben koenntet. Und bevor jetzt 
das Gemaule losgeht von wegen "zu bloed zum googeln", ich hab in 
Zwischenzeit 100 Beitraege beantwortet, die wesentlich schlechter waren. 
Also Ruhe! ;)

Michael

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

ISE/WebPack ist das was du brauchst, und das gibt's für Linux.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Ah very well... Jackpot :D

von Christian (Gast)


Lesenswert?

Um dir dein Projekt zu vereinfachen:
http://www.nabble.com/Problem-with-FlexLM-licensing-td12940902.html

So bekommst du auch Modelsim unter wine ans laufen...

von Günter -. (guenter)


Lesenswert?

Für die Simulation gibt es einige OpenSource Simulatoren die unter Linux 
laufen. Je nachdem was für eine HDL du benutzen möchtest gibt es hier 
eine Liste von Simulatoren und GTKWave ist gut sich Signale anzusehen:

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

Wenn du mit openSUSE arbeitest, dann sind viele der Tools als RPM 
verfügbar von:

http://software.opensuse.org/search

Für Icarus Verilog muss du 'verilog' als Suchbegriff angeben.


Gruß,

Günter

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Ich muss mir noch ansehen, was mir besser liegt. Die 
Entwicklungsumgebung habe ich jetzt installiert, aber nicht den "cable 
driver", wozu wird der benoetigt? Hab leider mein Board noch nicht 
deswegen lese ich jetzt erstmal ein bisschen der beigefuegten Doku.

Gruss,
Michael

von Rick Dangerus (Gast)


Lesenswert?

Spar Dir den Cable Driver. Macht nur unnötigen Aufwand:
Nutze die WinDriver-Emulation (geht auch unter 32bit):
Xilinx ISE Linux: Impact und 64Bit Linux mit WinDriver-Emulation 
bzw.:
http://www.rmdir.de/~michael/xilinx/

Rick

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

So... mein StarterKit ist heute angekommen. Aber immo steht mir noch ein 
grosses Fragezeichen auf der Stirn. Ich werde erstmal das ca. 
180-seitige Einfuehrungshandbuch lesen, das mit dabei war. Der 
Zusammenhang der Komponenten (u.a. dem cable driver) ist mir auch noch 
nicht klar. Ich gehe jetzt mal davon aus, dass die Programmierung dann 
direkt per USB funktioniert, oder?

von Michael G. (linuxgeek) Benutzerseite


Angehängte Dateien:

Lesenswert?

;)

von Günter -. (guenter)


Lesenswert?

Rick Dangerus wrote:
> Spar Dir den Cable Driver. Macht nur unnötigen Aufwand:
> Nutze die WinDriver-Emulation (geht auch unter 32bit):
> Xilinx ISE Linux: Impact und 64Bit Linux mit WinDriver-Emulation
> bzw.:
> http://www.rmdir.de/~michael/xilinx/

@Rick

Ich hab die Emulation noch nicht ausprobiert, aber hab schon einige 
Probleme mit dem Juno Treiber gehabt. Speziell unter Linux hab ich das 
Problem, dass Impact manchmal abstürzt und dann der Cable Driver gelockt 
wird. Beim nächsten Start kann Impact dann nie auf das JTAG-Kabel 
zugreifen.

Kennst du denn irgendwo eine Beschreibung, wie man den Treiber wieder 
los bekommt?

@ Michael

Wenn du noch offen für die ein oder andere HDL bist und dich für 
Prozessoren interessierst, ist vielleicht das Buch "Digital Design and 
Computer Architecture" von Harris & Harris interessant für dich:

http://www.amazon.com/Digital-Design-Computer-Architecture-Harris/dp/0123704979/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1204364268&sr=8-1

In Deutschland u.a. erhältlich von Bookzilla:

http://bookzilla.de/shop/action/productDetails/6071324/david_harris_sarah_harris_digital_design_and_computer_architecture_0123704979.html?aUrl=90006951

Das Buch ist zwar in Englisch, aber hat einen Interessanten Ansatz. Zum 
einen erklärt es VHDL und Verilog Seite-an-Seite anhand von 
synthesierbaren Konstrukten. Führt dann in die MIPS32 Architektur ein 
und zeigt danach Anhand  der Implementierung von jeweils einem Befehl 
aus den verschiedenen Befehlsgruppen, wie ein Prozessor entwickelt wird. 
Als Anhang ist der MIPS32 Befehlssatz gegeben und der Leser kann danach 
die restlichen Befehle selber implementieren.

Was mir noch an dem Buch gefällt ist der lockere Schreibstil.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Hi Guenther,

ja ich bin sozusagen jungfraeulich in der Hinsicht. Danke fuer den 
Buchtip, sieht gut aus, Englisch ist generell kein Problem fuer mich, 
haette ich beide Ausgaben wuerde ich wahrscheinlich eher zur Englischen 
greifen -- Uebersetzungsfalle. Aber ich werde erstmal etwas kleiner 
Anfangen, bevor ich einen Mikroprozessor entwickel *gg

Ich nehme an, der "cable driver" dient dazu, das device, welches das 
StarterKit erzeugt, ansteuern zu koennen. Ich habe jetzt mal den 
Emulationstreiber wie beschrieben installiert, vielleicht funktioniert 
das ja dann. Muss mich allerdings auch noch in ISE einarbeiten das is ja 
nicht gerade ein Leichtgewicht ;)

Mal ne andere Frage: Wie heisst die Buchse bzw. ein passender Stecker 
fuer den Anschluss recht am starter kit? Ich nehme ja mal an dass ich 
dort Zugriff auf die I/O-s bekomme wenn ich eigene Schaltungen 
anschliessen will?

Michael

von Rick Dangerus (Gast)


Lesenswert?

@Günter ..
Ja, der Jungo-Treiber/WinDriver...
...meide Ihn, wenn es geht. Bei jedem Kernel-Update fängt der Spass von 
vorne  an, etc. pp.

Google mal nach "reset cable driver" Da sollte sich was finden lassen.

Rick

von Stefan Salewski (Gast)


Lesenswert?

Michael G. (linuxgeek) schrieb am 01.03.2008 um 11:10 Uhr:

>Ich werde erstmal das ca. 180-seitige Einfuehrungshandbuch lesen,

Meinst Du "Introduction to Programmable Logic" by Karen Parnell and Nick 
Mehta, April 2004?

Wenn es das ist: Vergiss es, das liefern sie nur mit um günstig ihr 
Altpapier zu entsorgen.

>Der Zusammenhang der Komponenten (u.a. dem cable driver)

Ich mag mich täuschen, aber "cable driver" ist doch für das 3E board 
nicht relevant, weil da alles über USB geht. Soweit ich das verstanden 
hatte ist "cable driver" für separate Programmer bzw. das alte 
Starterkit3, das auch mit einem separaten Progreammer für die Parallele 
Schnittstelle ausgeliefert wird.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Hmm...... theoretisch braucht man keinen Zusaetzlichen Treiber, aber ich 
weiss ja nicht, wie die das eingebunden haben. Es wird schon ein 
USB-Device erkannt, aber ohne Treiber wird es mit dem Zugriff evt. etwas 
schwierig. Naja ich les jetzt erstmal ne Einfuehrung in VHDL, bevor ich 
loslege, sonst macht das keinen grossen Sinn ;)

Aus dem Handbuch zum StarterKit:
"When the USB cable driver is successfully installed and the board is 
correctly connected to the PC, a green LED lights up, indicating a good 
connection."

Man braucht ihn wohl doch :/

von Stefan Salewski (Gast)


Lesenswert?

>Naja ich les jetzt erstmal ne Einfuehrung in VHDL, bevor ich
>loslege, sonst macht das keinen grossen Sinn ;)

Du weißt schon, dass es ein ca. 30 seitiges Tutorial von Xilinx gibt?
Damit kann man bereits nach kurzer Zeit eine LED blinken lassen und hat 
sein erstes Erfolgserlebnis.

Ich hatte diese Tutorial anfangs übersehen und war mit dem oben 
genannten Büchlein (ca. 180 Seiten) gestartet und entsprechend 
enttäuscht.

von Stefan Salewski (Gast)


Lesenswert?

>Aus dem Handbuch zum StarterKit:
>"When the USB cable driver is successfully installed and the board is
>correctly connected to the PC, a green LED lights up, indicating a good
>connection."

>Man braucht ihn wohl doch :/

Ah ja, UG230 "Spartan-3E Starter Kit Board User Guide", Seite 28 unten.

Hatte ich überlesen.

Ich nutze derzeit die Xilinx Sachen nur unter Windows (ist auch so gut 
wie die einzige Windows-Anwendung, die ich verwende). Eigentlich würde 
ich es auch gerne unter Gentoo-Linux installieren, aber so ganz wohl ist 
mir dabei nicht. Und für irgend was muss Windows XP ja auch gut sein...

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Immo bin ich von der ganzen Komplexitaet noch recht erschlagen...
Braucht man fuer die Prozessorkerne eigentlich zwingend das 
(kostenpflichtige) EDK oder kann man zumindest den PicoBlaze auch mit 
dem ISE Webpack verwenden?

Das Quickstart-Tutorial habe ich schon ausgegraben... aber ich meine das 
bringt nich soviel wenn man alles schoen nachmacht und dabei die Haelfte 
nichts versteht.

Michael

von joerg (Gast)


Lesenswert?

Michael, Hallo,

den PicoBlaze gibt es als Quelltext von der Xilinx Website, dafür 
benötigst du kein EDK. Passende Assembler gibt es mehrere im Internet -- 
teilweise auch als freie software mit Quelltext.

Du musst auch nicht unbedingt den MicroBlaze nehmen, wenn du was 
dickeres willst -- unter FGPA Soft Core gibt es eine unvollständige 
Liste weiterer (auch kostenloser) CPUs. Der Microblaze ist leibevoll auf 
Xilinx-FPGAs optimiert und daher auf der Plattform etwas 
schneller/kleiner. Dafür hängst du dann aber auch erstmal bei Xilinx 
fest....


   joerg

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Ja ich hab nur nicht gefunden wo man den Source herunterladen koennte. 
Unter "user resources" auf der Page finde ich nur Dokumentation und 
AppNotes. Den Artikel habe ich auch schon gefunden und bin auf 
opencores.org gestossen, gibt es ja ne ganze Menge nette Cores dort.

von joerg (Gast)


Lesenswert?

Nachdem du dich mit deinem Useraccount angemeldet hast, darfst du nach:

http://www.xilinx.com/ipcenter/processor_central/picoblaze/member/

Eventuell hast du ja mal lust auszuprobieren, um wie viel diese Version
hier grösser/langsamer ist:

http://bleyer.org/pacoblaze/


  joerg

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Thanks... wieder ein Stueck vorwaerts gehuepft ;) Ihr spart mir einiges 
an Nerven.

von Simon (Gast)


Lesenswert?

Dieser Link hat mir sehr gut geholfen den Cable Driver unter Linux 
(Ubuntu) zum Laufen zu bringen. Es handelt sich dabei nicht um den 
Original Treiber von Xilinx sonderen einen anderen, der besser 
funktioniert.
Es kann natürlich sein, dass du ein Parallel-Kabel hast, dann brauchst 
du den Treiber natürlich nicht.

https://wiki.kip.uni-heidelberg.de/KIPwiki/index.php/EDV:Xilinx-USB-Treiber

Die Beschreibungen auf dieser Homepage waren auch nützlich:

http://stefan.endrullis.de/de/xilinx_ise_8.2_ubuntu.html

Außerdem das offizielle Ubuntu wiki (suche nach xilinx, hab den link 
grad nicht da)

Bei mir funktionieren nachdem ich diese Beschreibungen befolgt habe alle 
Teile der Ise mit Spartan3 sowie Virtex2p. Ab und zu kommt es allerdings 
zu Abstürzen der Ise, also besser einen externen Editor verwenden.

von Strubi (Gast)


Lesenswert?

Hallo,

kleine Anmerkung zum leidigen Thema mit der JTAG-Programmierung unter 
Linux: Es gibt einige praktische Tools wie:

- Xilprg (standalone-Programmierung der Spartan 3s)
- xcs3prog (aehnliches tool)
- cablesrv (Programmierung via ISE Impact und 'remote'-Verbindung)

Einfach mal danach googeln.

Es gibt uebrigens auch einen "hack", der ein Digilent X-Board zu einem 
USB-JTAG-Adapter macht, der mit dem obigen cablesrv auch funktioniert. 
Das eruebrigt die Installation graesslicher Jungo-Treiber oder anderer 
dauernd inkompatibler proprietaerer Module. Bei Interesse einfach Mail 
an hackfin@section5.ch.

gruss,

- Strubi

von Michael E. (rince)


Lesenswert?

Michael G. wrote:
> Mal ne andere Frage: Wie heisst die Buchse bzw. ein passender Stecker
> fuer den Anschluss recht am starter kit? Ich nehme ja mal an dass ich
> dort Zugriff auf die I/O-s bekomme wenn ich eigene Schaltungen
> anschliessen will?


Das ist ein Hirose FX2 Stecker. Dazu passend gibt es ein Zusatzboard von 
Digilent:

http://digilentinc.com/Products/Detail.cfm?Prod=FX2BB&Nav1=Products&Nav2=Accessory

Ich hab mir das vor zwei Wochen gekauft und bin zufrieden. Unter dem 
Link findet man auch das Datenblatt wo alles erklärt wird. Das 
Breadboard selbst ist an nichts angeschlossen und muss zuerst auf das 
Board geklebt werden. Ueber Buchsenleisten kann man dann die einzelnen 
Signale und die Spannungsversorgung mit der eigenen Schaltung verbinden.

Ich hab meines hier gekauft (ich wohne in Frankreich):

http://www.lextronic.fr/P1885-platine-de-prototypage-fx2bb.html

Grüsse,

Michael E.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Michael E. wrote:
> Michael G. wrote:
>> Mal ne andere Frage: Wie heisst die Buchse bzw. ein passender Stecker
>> fuer den Anschluss recht am starter kit? Ich nehme ja mal an dass ich
>> dort Zugriff auf die I/O-s bekomme wenn ich eigene Schaltungen
>> anschliessen will?
>
>
> Das ist ein Hirose FX2 Stecker. Dazu passend gibt es ein Zusatzboard von
> Digilent:
>
> 
http://digilentinc.com/Products/Detail.cfm?Prod=FX2BB&Nav1=Products&Nav2=Accessory

Ist ganz nett, aber ich hab's nich so mit Breadboards, das is ne 
teilweise recht sinnlose Frickelei, ausserdem bei gewissen Frequenzen 
ist ein fliegender Aufbau auch nicht eben das wahre ;) Da mach ich mir 
lieber gleich ne Platine. Ich dachte an einen Adapter, der mir aus dem 
FX2 Pinleisten macht, an die ich normale Flachbandkabel oder auch 
weitere Platinen anschliessen kann. Haetten's eigentlich gleich so 
machen koennen, und selbst nen 1.27mm-Pitch waere da freundlicher 
gewesen als dieser Monsterstecker.

Mal ne andere Frage: Wie schnell ist so ein Spartan 3E eigentlich? Also 
welche Frequenzen macht der mit? So wie ich das verstanden habe sind da 
mehr als 50MHz machbar, oder? Das duerfte dann auch fuer den Systemtakt 
gelten, oder?

Hab immo soviel um die Ohren... werd wohl bis zum WE warten muessen um 
mal richtig loszulegen. Den cabledriver (windrv) konnte ich bereits 
erfolgreich
compilieren, das wird also hoffentlich kein Blocker.

Danke fuer Eure Beteiligung.


Gruss,
Michael

von Mike (Gast)


Lesenswert?

@Michael G.

FX2:

Es gibt auch eine Variante für Schneid-/Klemmtechnik:

http://shop.trenz-electronic.de/catalog/product_info.php?cPath=1_47&products_id=137

An der kannst du dann dein Kabel direkt anschliessen. Falls du nur eine 
kleine Anzahl an I/O's (maximal 4) brauchst, dann könntest du aber auch 
einen der 6-poligen Pfostenstecker verwenden.

Geschwindigkeit:

Bei einfacher Logik (z.B. Zähler) kommst du problemlos auf 150 MHz. 
Durch fiese Tricks (z.B: mit Phasenverschiebungen) geht unter bestimmten 
Umständen auch noch deutlich mehr. Bei einer einfachen CPU wirst du wohl 
nicht mehr als 50 MHz erreichen. Wenn sie komplizierter ist eher 
weniger. Takt ist aber nicht alles ;).

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Mike wrote:
> @Michael G.
>
> FX2:
>
> Es gibt auch eine Variante für Schneid-/Klemmtechnik:
>
> 
http://shop.trenz-electronic.de/catalog/product_info.php?cPath=1_47&products_id=137

Hab ich schon gesehen ;) Da brauch ich aber wahrscheinlich ein dichtes 
Flachbandkabel. Ich denke ich mach mir einfach nen Adapter mit der 
Printversion.

> An der kannst du dann dein Kabel direkt anschliessen. Falls du nur eine
> kleine Anzahl an I/O's (maximal 4) brauchst, dann könntest du aber auch
> einen der 6-poligen Pfostenstecker verwenden.

Yaps... immerhin etwas, auch wenn diese Steckbuchsen auch nicht eben so 
der Hit sind (=


> Geschwindigkeit:
>
> Bei einfacher Logik (z.B. Zähler) kommst du problemlos auf 150 MHz.

Coole Sache, da geht was ;)

> Durch fiese Tricks (z.B: mit Phasenverschiebungen) geht unter bestimmten
> Umständen auch noch deutlich mehr. Bei einer einfachen CPU wirst du wohl
> nicht mehr als 50 MHz erreichen. Wenn sie komplizierter ist eher
> weniger. Takt ist aber nicht alles ;).

Da hast Du wohl recht. Schonmal gut zu wissen, thx. Bin schon ziemlich 
begeistert von den FPGAs, leider noch etwas erschlagen durch die 
Komplexitaet immo. Ich bin froh dass ich Semesterferien habe und Zeit 
fuer die interessanten Dinge habe... muss aber leider 4 Tage Vollzeit 
arbeiten wegen Praktikum.

Michael

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.