mikrocontroller.net

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


Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: D. I. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Michael Sauron (Gast)
Datum:

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

Michael Sauron

Autor: xyz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Sauron

Der aus Herr der Ringe?

SCNR ;)

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Iulius (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ras Funk (rasfunk)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Iulius (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Muraer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Roger Steiner (edge)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.