Forum: FPGA, VHDL & Co. Dedizierter Xilinx Synthese Server


von Oliver P. (Firma: UAS Merseburg) (olipunk)


Lesenswert?

Hallo

Hier kurz meine Frage: Wir haben bei uns noch einen Server mit mächtig 
Bums stehen, der momentan nicht wirklich ausgelastet ist. Weiterhin 
gehen unsere lokalen PCs in die Knie, wenn ein komplexes Design 
synthetisiert wird. Die Idee war nun, die Synthese auf dem Server 
ausführen zu lassen und dabei den (die) Client(s) zu entlasten.

Gibt es eine Xilinx-seitige Möglichkeit, das xst dort laufen zu lassen 
und automatisiert mit den entsprechenden Clients (ISE, EDK) zu 
verbinden? Das XST UG 
(http://www.xilinx.com/support/documentation/sw_manuals/xilinx12_3/xst.pdf) 
lässt sich darüber nicht aus.

Kann man hart in die Xilinx TCL Scripte rein halten, um das im ISE bzw. 
EDK "embedded" zu realisieren? (Wahrscheinlich ja, aber hat dies schon 
mal jemand gemacht?

Was (denke ich) auf jeden Fall geht: man biegt das lokale xst auf eine 
eigene Applikation um, die dann einen eigene Server-Applikation ruft, 
die wiederum das xst auf dem Server startet und dann das Ergebnis per 
Callback mitteilt. Hat das schon mal jemand gemacht?

Wenn alle 3 Fragen "nein" wären, würden wir das eventuell mal aus 
akademischen Interesse in Angriff nehmen. Also würdet ihr das als 
grundsätzlich sinnvoll erachten? Oder wäre das komplett verschwendete 
Zeit.

Danke für Eure Anregungen.

von madler (Gast)


Lesenswert?

Grundsätzlich sinnvoll ist das sicherlich, zB bei Cadence Virtuoso geht 
das meines Wissens auch.

Eventuell könntet ihr ja auch über eine Remote-Verbindung direkt auf dem 
Server arbeiten, ev. in einer VM? (Nur weil das eine einfache Lösung 
wär)

von Oliver P. (Firma: UAS Merseburg) (olipunk)


Lesenswert?

madler schrieb:
> Eventuell könntet ihr ja auch über eine Remote-Verbindung direkt auf dem
> Server arbeiten, ev. in einer VM? (Nur weil das eine einfache Lösung
> wär)

Ja, das wäre sicherlich eine Lösung. Aber eigentlich möchte ich, dass 
der Client-Benutzer (Student X) auf dem Server keinen Account besitzt. 
Daher wäre RDP nicht so toll. Vielmehr soll das "unter der Haube" 
ablaufen.

von Christian R. (supachris)


Lesenswert?

Eine Möglichkeit wäre eventuell auch ein TeamCity Server, der dann nach 
einem Commit der Quellcodes den Build anstößt. Die komplette Xilinx 
Sache lässt sich ja per batch steuern.

von zachso (Gast)


Lesenswert?

hallo!

also ersteinmal: ich faende das sehr interessant und sinnvoll, denkt 
aber daran dass ihr dann mindestens eine lizenz mehr braucht. kein 
problem wenn die steine die man benutzt von webpack unterstuetzt werden, 
kann aber falls nicht sehr teuer werden.

ich wuerde es wohl so machen:
1) auf jedem clienten einen ftp/http-server installiern, in den wird 
automatisch ein verzeichnis freigegeben, zu erreichen unter <ip>/~user 
(genau, so wie lighttpd)
2) auf dem buildserver ein php/python/whatever script installiern, der 
student geht dann im browser auf <serverip>, gibt seinen usernamen ein, 
zeigt dem server ueber das webinterface das verzeichnis das er 
"importiern" soll. das wird dann an den xst weitergegeben.

das ist jetzt keine anleitung, ich bin auch einer der immernoch 
rumclickt in der gui, aber so koennte ich mir das am besten vorstellen. 
auch vorstellbar ist der weg wie du ihn schon beschrieben hast, also xst 
durch ein script zu ersetzen. da braeuchte man dann wahrscheinlich ne 
art selbstgebastelten buildserver, der muesste dann die ganzen dateien 
annehmen. vorteil dabei waere dann natuerlich dass man die ganze 
konfiguration des xst schon mitbekommt (aber vorsicht, 
sicherheitstechnisch ist das recht riskant).

ich bin gespannt ob noch andere ideen kommen

zachso

von Oliver P. (Firma: UAS Merseburg) (olipunk)


Lesenswert?

Christian R. schrieb:
> Eine Möglichkeit wäre eventuell auch ein TeamCity Server, der dann nach
> einem Commit der Quellcodes den Build anstößt. Die komplette Xilinx
> Sache lässt sich ja per batch steuern.

Also so was wie ein SVN Hook (TeamCity kannte ich bis dato nicht, jedoch 
ist es für diese Uhrzeit nicht akzeptabel, die Website von jetbrains zu 
lesen ;-)). Wäre auch eine Variante, jedoch muss nicht jeder "Erguss" 
comitted werden. Also ideal wäre es, andere Collaboration-Tools außen 
vor zu lassen.

Danke bis dato für die Hinweise und Tipps.

von Oliver P. (Firma: UAS Merseburg) (olipunk)


Lesenswert?

@zachso
Danke für die Anregung. Wegens den Lizenzen habe ich keine 
Bauchschmerzen: wir arbeitem im akademischen Bereich mit XUP floating 
LICs; und exotische Kerne nehmen wir in der Regel nicht.

Ehrlich gesagt ist für mich das Schreiben eines "Build-Clients" bzw. 
eines "Build-Servers" einfacher, als ein Web-Interface mit 
nachgeschalteter Funktionalität aufzusetzen. Zumal ich den 
"herkömmlichen" Studenten nicht mit noch mehr "fiesem" Workflow 
überlasten will ;-)). Also im Idealfall ein Click auf den GUI Button 
(Generate Bit File), und der Rest läuft autark und (hoffentlich) 
schneller.

von zachso (Gast)


Lesenswert?

Ich waere sehr interessiert an was auch immer ihr da baut, wuerde mich 
freuen wenn du deine erfehrungen und vllt. Sogar ein wenig code hier 
posten koenntest wenn du fertig bist :)

von Christian R. (supachris)


Lesenswert?

Beim Server musst du aber schauen, ob sich das lohnt. Wenn der Prozessor 
schnell genug ist und jede Menge schneller RAM zur Verfügung steht, 
bringts etwas. Allerdings nutzt Xilinx immer nur einen Prozessorkern, da 
bringt eine Quadcore Kiste überhaupt nix. Nur wie kommen die ganzen 
Files auf den Server, wenn du nur eine kleine GUI hast mit einem 
"Bitfile" Button? Du musst ja auf dem Syntheseserver alle Quellcodes, 
Cores, Projektdateien liegen haben...

von Duke Scarring (Gast)


Lesenswert?

Oliver Punk schrieb:
> Gibt es eine Xilinx-seitige Möglichkeit, das xst dort laufen zu lassen
> und automatisiert mit den entsprechenden Clients (ISE, EDK) zu
> verbinden?

Für den kompletten Design-Flow ist mir nichts bekannt. Für Place&Route 
kannst Du eine Art "Server-Farm" nutzen (siehe devref.pdf). Das ist aber 
nur sinnvoll, wenn das Timing knapp verfehlt wird.

Was aber sehr gut geht: Server mit Linux, globaler Filezugriff und 
xst+Konsorten per Makefile oder ggf. per TCL-Skript aufrufen. Für 
GUI-Zugriffe kann rdesktop, nomachine oder vnc verwendet werden.

Wenn man mehr Synthesen startet als man Prozessoren hat, kann man auch 
richtig dicke Maschinen in die Knie zwingen :-) (BTDT)

Duke

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.