Forum: FPGA, VHDL & Co. Große FPGA-Projekte (Viele Slices)


von Chris (Gast)


Lesenswert?

Hallo zusammen,

da ich noch nichts wirklich Größeres (mehr als Xlinx 100 Slices) 
entwickelt habe, würde mich mal interessieren was das Größte (gemessen 
an Slices) war was ihr (hobbymäßig) realisiert habt und wie lange da die 
Synthese + Place&Route dauert.
Da ich aus der Softwareecke komme musste ich mich schon ein bisschen 
daran gewöhnen, dass die Berechnungen für ein winziges FPGA-Projekt hier 
fast länger dauern als die Kompilierung eines recht umfangreichen 
Softwareprojekts...


Ciao,
Chris

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> war was ihr (hobbymäßig) realisiert habt und wie lange da die
> Synthese + Place&Route dauert.
Das 400k Spartan3 FPGA zu 99% voll (= ca. 2500 Slices). Dabei war der 
P&R-Prozess war schon schwer am Rödeln (optimieren). Turn-Around-Zeiten 
von ca. 10-15 min   :-o

von D. I. (Gast)


Lesenswert?

Lothar Miller schrieb:
>> war was ihr (hobbymäßig) realisiert habt und wie lange da die
>> Synthese + Place&Route dauert.
> Das 400k Spartan3 FPGA zu 99% voll (= ca. 2500 Slices). Dabei war der
> P&R-Prozess war schon schwer am Rödeln (optimieren). Turn-Around-Zeiten
> von ca. 10-15 min   :-o

Und was hast du da gebaut?

von Michael Sauron (Gast)


Lesenswert?

Mein Derzeitiges Projekt hat bisher 912 Slices und 1240 Luts und braucht 
zur synthese etwa anderthalb Minuten incl. Place & Route

Michael Sauron

von xyz (Gast)


Lesenswert?

> Sauron

Der aus Herr der Ringe?

SCNR ;)

von Duke Scarring (Gast)


Lesenswert?

Ich hab hier was mit 50624 LUTS und 26267 FlipFlops. Das dauert knapp 3 
Stunden bis zum Bitfile. (Ist aber auch nicht hobbymäßig.)

Duke

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Und was hast du da gebaut?
Ursprünglich war das ein Kamera-Interface, das die Daten kommend von 
einem S5D0127 erst mal decodiert hat, und dann in einen Speicher 
geschrieben hat. Über ein Businterface konnte dein AVR dann in einen 
anderen Speicherbereich ein Overlay abbilden, sodass über (oder 
transparent) das Kamerabild ein Menü abgebildet werden kann. Zur 
Reduzierung der Buslast kann das FPGA dann einfachere Funktionen selber 
berechnen (wie z.B. Linien malen oder ein Fenster mit Rahmen zeichnen).

Zusätzlich sind darin einige SPI-Master, quasi eine 
Monster-State-Machine, die aus dem DPRAM schrittweise frei 
konfigurierbare SPI Übertragungen abgearbeitet hat.

Und weil ich gerade so am Basteln war und ich einfach wissen wollte, 
wann das FPGA denn nun voll sein wird, noch ein paar andere Dinge, die 
einfach so angefallen sind:
Drehgeber (Encoder-)Interface,
Bitstrom-Decoder für Microsonic Ultraschallsensoren,
Schnelle Eingänge (eine Art Mini LA im BRAM, Pegelwechsel + Zeitstempel)
Schrittmotor-Ansteuerung (nur lineare Rampe und nicht unterbrechbar)
Ein universelles PWM-Modul ...

Ziemlich viel Platz brauchte das Debugging:
Das lief über einen PCI-Kern als Schnittstelle zum PC
(das war mehr eine Spielerei, heute verwende ich einen LA ;-)


Meine Beobachtung:
Wenn das FPGA mal zu 99% voll ist, dann bleibt es auch so voll :-o
Nur die Rechenzeit für P&R steigt signifikant an.

von Iulius (Gast)


Lesenswert?

Im Rahmen des Studiums, ein Cyclone 2 mit ~18000 Logikelementen voll 
belegt.

Waren viele Projekte, insbezüglich was Parallelismus auf der untersten 
Ebene angeht. Zum Beispiel ein Sortieralgorithmus (batcher) der direkt 
die Ergebnisse einer Phase an die nächste überträgt.


Wartezeit lag da so bei 6-7 Minuten komplett mit allem.

Warscheinlich so schnell weil es tausendfach die gleichen Elemente 
waren.

von Ras F. (rasfunk)


Lesenswert?

Iulius schrieb:
> Im Rahmen des Studiums, ein Cyclone 2 mit ~18000 Logikelementen voll
> belegt.
> (...)
> Warscheinlich so schnell weil es tausendfach die gleichen Elemente
> waren.

Ich arbeite sowohl mit Xilinx als auch mit Altera Tools, und ich habe 
den Eindruck, dass Altera deutlich schneller synthetisiert. Soweit ich 
weiß, können die Altera-Tools die Last auf mehrere Prozesoren verteilen, 
die Xilinx-Tools aber nicht.

Bin auf der Arbeit mit einem Cyclone III und 22K LEs dabei.

Um den FPGA vollzukriegen reicht es doch oftmals einen Softcore + 
Speicher + Bus zusammenzuklicken.

Notfalls noch eine FPU mit rein ;-)

von Iulius (Gast)


Lesenswert?

Das Multicore Feature gibts aber nur bei der kostenpflichtigen Quartus 
Version.

Bei meiner einfachen Web Edition ist es jedenfalls ausgegraut, ich 
kann/konnte nur einen Kern nutzen.

von Muraer (Gast)


Lesenswert?

Im Studium hatten wir letztes Semester einen FPGA-Kurs.
Der Kursleiter war im Chipdesign tätig und erzählte uns, dass die 
Synthese eines ASIC (MIMO-Wlan-Systeme) auf einem 
8-Doppelkernprozessor-Server im Schnitt ca. 16h dauert.

von Roger S. (edge)


Lesenswert?

Derzeitig groesstes Projekt:

Device : EP2S30F484C5
Logic utilization : 89 %
    Combinational ALUTs : 17,879 / 27,104 ( 66 % )
    Dedicated logic registers : 17,607 / 27,104 ( 65 % )
Total registers : 17810
Total block memory bits : 793,564 / 1,369,728 ( 58 % )
DSP block 9-bit elements : 30 / 128 ( 23 % )

Design besteht im Wesentlichen aus
NIOS II, DDR2 Controller, Ethernet MAC, Motion Controller,
Zeilenbild Auswertung von Triangulationssensoren,
USB2 Device Endpoint.

Dauer Synthese und P&R knapp Zwoelf Minuten auf einem 2.8GHz Core2Quad,
ein aelterer 3GHz P4 Rechner braucht dafuer 45 Minuten.

Das Multicore Feature bringt hier, mit Quartus 8.1,
keinen nennenswerten Geschwindigkeitsvorteil.


Cheers, Roger

von Michael (Gast)


Lesenswert?

@Lothar
Deine Beobachtungen kann ich bestätigen.
Zunächst scheint das XST die Logik und die FFs getrennt in die Slices zu 
legen, jedenfalls kann man die verwendeten %-Angaben von FFs und LUTs 
addieren und kommt in etwa auf den Wert der Auslastung.

Je voller das Design wird, desto mehr LUTs müssen mit den FFs in einem 
gemeinsamen Slice untergebracht werden.
(Teilweise hat mein Design im Synthesize Nutzung von 130% 
rausgeschmissen und hat trotzdem zuende übersetzt.)

Wenn das design kurz davor ist, dass nichts mehr geht, nehmen die Werte 
"Unrelated Logic" stark zu.

von Christian R. (supachris)


Lesenswert?

Ein Projekt mit dem Virtex 4 LX40, das allen Blockram belegt 
(FIFO-Cores) und nur etwa 10% der Slices braucht auf meinem aktuellen 
Core 2 Duo mit 4GB RAM und 3GHz immernoch etwa 15 Minuten für den 
kompletten Durchlauf bis zum Bitfile. Ist mit ISE 11 schon besser 
geworden. Vorher konnte ich in Ruhe Kaffee kochen und trinken gehen.

von Kest (Gast)


Lesenswert?

Cyclone 3c40, ca 25 kLE braucht in einer virtuellen Maschine mit 2 GByte 
RAM ca. 25 Minuten zum fitten (4 Cores, 8 GByte RAM)... und das mit 
incremental compilation.
Das Beste ist -- ist incremental compilation an, funktioniert parallel 
compilation nicht :-o (Ein Bug... äh... Feature von Altera ;-))

Grüße,
Kest

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.