Forum: FPGA, VHDL & Co. CPU mit 2 Kernen


von Michael (Gast)


Lesenswert?

Hi @all

Ich möchte aus dem VHDL-Projekt das Konfigurationsfile für den FPGA 
erzeugen. Dies dauert immer sehr lange ca 4 Minuten. Dies möchte ich 
beschleunigen. Daher wird ein neues PC-System gekauft. Momentan denke 
ich an einen Core2 Duo von Intel. Hat vielleicht schon jemand eine CPU 
mit 2 Kernen? Werden diese gleichzeitig von ISE ausgelastet, wenn das 
Konfigurationsfile erzeugt wird?.

Grüsse

Michael

von ron (Gast)


Lesenswert?

"Dies dauert immer sehr lange ca 4 Minuten"

4 Minuten = langsam???

bin froh wenn mein FPGA Programming file in 2-3h fertig ist, und das auf 
nem 2.5 Ghz P4

von Michael (Gast)


Lesenswert?

Wie will man da denn noch etwas testen. P4 mit 2,5GHz ist ja auch nicht 
schnell. Ich rede von einem Core2 Duo. Der sollte viel schneller sein.

von Benedikt W. (Gast)


Lesenswert?

warum sollte ein core duo schneller sein ?
normaler weise bekommt jede cpu einen teil der arbeit den sie berechnen 
soll, dazu müssen die daten synchronisiert werden.
aber beim "compilieren" wird eigentlich nur eine cpu ausgelastet.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Wenn ISE für das was da solange dauert mehrere parallele 
Prozesse/Threads verwendet, dann hilft ein zweiter Core. Ansonsten eher 
nicht.

von Fabian S. (rosepeter)


Lesenswert?

> aber beim "compilieren" wird eigentlich nur eine cpu ausgelastet.

Also ich weiß ja nicht, wie du größere Sachen baust, aber für make gibt 
es eine schöne Kommandozeilen-Option -j <Anzahl paralleler Procs>, als 
Daumenregel sollte man hier die Anzahl der verfügbaren Cores * 3 
angeben, und dann fetzt das ganz schön!

Wenn es darum geht Netzlisten für FPGAs etc. zu bauen, sieht die Sache 
natürlich etwas anders aus, schließlich ist die ja irgendwann mal 
"global", da nützen viele Prozesse freilich wenig. Aber vielleicht haben 
die Tool-Hersteller ja ihre Hausaufgaben gemacht und das 
Synthese-Werkzeug in parallelisierbare Teile aufgesplittet, dann dürfte 
man von mehreren Cores auch hier profitieren.

Ciao, Fabian

von T.M. (Gast)


Lesenswert?

Beim Place & Route, was den Löwenanteil ausmacht, kann man angeben, dass 
mehrere Kerne (falls vorhanden) genutzt werden sollen. Wenn du mit 4 
Minuten die Zeit von der Synthese bis zum fertigen Bitfile meinst, ist 
das aber eh ein Witz. Bei jedem etwas größeren Design dauert es um 
einiges länger. Wir Implementieren hier auf einem Linux-System mit 2 
Opterons und 4GB RAM drauf und benötigen mindestens genauso viel.


T.M.

von Michael (Gast)


Lesenswert?

Ich finde 4 Minuten trotzdem langsam. Gerade wenn man den Fehler 
eingrenzen möchte schalte ich systematisch Teile ab. Jedesmal muss ich 
dann 4 Minuten warten, um dann das Ergebnis anzuschauen. Diese Zeit 
kommt mir sehr lange vor. Und ich gehe mit einem schlechten Gefühl nach 
Hause wenn ich so langsam voran komme. Wenn das nur 20 Sekunden dauern 
würde, dann würde ich schneller voran kommen.

Ich denke mal das man nicht mehr als 1GByte RAM benötigt. Ich finde die 
CPU wird immer belastet. Ich denke mal das jedes mal irgendwelche 
Bibliotheken neu compaliert werden.

Mit meinem Programm habe ich ca 15% eines Spartan3 mit 400k Systemgates 
ausgelastet. Deshalb denke ich das mein Projekt auch nicht mehr so klein 
ist. Der Core2 Duo besitzt eine neue Architektur. Der kann jetzt viel 
mehr Befehle mit einem Takt ausführen.

Wo kann man die Einstellung vornehmen? (das beim Place and Route mehrere 
CPU Kerne verwendet werden sollen?)

Ach ja im November kommen schon 4 Kerne raus.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Wenn dein P4 HyperThreading kann und es aktiviert ist, dann könnte diese 
Einstellung auch da schon helfen.

von FPGAküchle (Gast)


Lesenswert?

andreas:
"Wenn dein P4 HyperThreading kann und es aktiviert ist, dann könnte 
diese
Einstellung auch da schon helfen."

Nach meiner Erfahrung: negativ. Laut Taskmanager ist eine Hälfte der CPU 
beschäftigt während Synthese etc.. Volle Auslastung erreiche ich z.B 
durch eine parallel laufende Simulation...



4 min für ca 50 000 Gates ist nicht besonders schnell (ich geh mal von 
einem 1,5 Jahren alten PC aus). Da kannst du mit den richtigen 
Einstellungen und Designbeschreibungen einigen rausholen. Schalte mal 
die Optimierung vom Place und route auf "std". Das dürfte einiges an 
Rechenzeit bringen. Falls dein timing dann nicht mehr stimmt platziere 
dann die kritischen stellen (DCM,BUFG,MULT18) per Hand und halte es im 
*.ucf per LOCATE constraint fest. Ebenso bringt die Optimierung bei der 
Synthese nicht immer den gewünschten Erfolg, sondern frisst nur Zeit.

von SiO2 (Gast)


Lesenswert?

Es ist leider so, das die Synthese etwas lahmt. selbst wenn ich nur nen 
blinklicht Synthetisiere, dauert es vielleicht 15 sec.

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.