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
> 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
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?
Mein Derzeitiges Projekt hat bisher 912 Slices und 1240 Luts und braucht zur synthese etwa anderthalb Minuten incl. Place & Route Michael Sauron
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
> 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.
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.
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 ;-)
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.
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.
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
@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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.