Ausgehend von dieser Diskussion Beitrag "Re: Funktionsweise von Gigabit Transceivern" hätte ich eine Frage: Welche Bandbreite bekommt man über einen normalen FPGA-Pin (nicht Transceiver)? Stimmt die dort gemachte Rechnung von z.B. 600 Mb/s = 300 MHz als DDR? Wie funktioniert der Anschluss eines SD-RAMs? Laut Spezifikation können die z.B. bis zu 1067 für die Daten (z.B. für 266 MHz Takt). Geht das über die normalen IOs oder die Transceiver?
Moin, Manni T. schrieb: > Welche Bandbreite bekommt man über einen normalen FPGA-Pin (nicht > Transceiver)? Stimmt die dort gemachte Rechnung von z.B. 600 Mb/s = 300 > MHz als DDR? Kommt halt auch arg auf FPGA an, findste nicht? Sag halt mal, welcher Typ. > Wie funktioniert der Anschluss eines SD-RAMs? Laut Spezifikation können > die z.B. bis zu 1067 für die Daten (z.B. für 266 MHz Takt). Geht das > über die normalen IOs oder die Transceiver? Das geht nicht ueber die Transceiver, kann aber ueber irgendwelche Spezial-HW im FPGA laufen (MEMPHY), so dass dann der begnadete Entwickler nicht ganz frei ist, in den IOs die fuer's Speicherinterface hergenommen werden koennen. Gruss WK
"MEMPHY" klingt für mich nach fester Hardware. Kenne ich noch vom Spartan. Ich dachte bei den moderneren FPGAs sind die IOs wieder schnell genug. SD-RAMs zur Seite gelassen: Wie kriegt man 1Gb/s über einen normalen IO? Was ich so geblättert habe, z.B. MAX10 las erster Kandidate, da kommt es eher auf 250MHz x 2.
Moin, Manni T. schrieb: > Ich dachte bei den moderneren FPGAs sind die IOs wieder schnell > genug. Tja, ich hab davon keine Ahnung, aber ich weiss, was ich tue, wenn ich Ahnung brauche: Ich lese die Datenblaetter. Und verlass' mich nicht auf irgendwelche Kasper hier aus dem Forum. Manni T. schrieb: > Wie kriegt man 1Gb/s über einen normalen IO? Beim Spartan6 ging das z.b. ueber IOSERDES2, was an normalen IO-Zellen haengt. Aber 1GBit/sec wahrscheinlich nicht bei den lahmarschigen Klassen. iirc gingen die nur bis 0.95Gbit/sec oder so. Gruss WK
Also normalerweise steht das im Datenblatt zu deinem FPGA. Hier mal für den Artix7: https://docs.xilinx.com/v/u/en-US/ds181_Artix_7_Data_Sheet Seite 15. Manni T. schrieb: > Bandbreite Was meinst du denn damit? Im Sinne von Analogbandbreite wie wenn man sich ein Spektrum anguckt? Oder im Sinne von Busbreite? Oder meinst du vielleicht doch eher Datenrate? Laut dem Dokument oben schafft der schnellere Artix7 1250 MBit/s auf einem normalen IO, wenn man DDR LVDS über den IO macht mit dem eingebauten SerDes. Manni T. schrieb: > Wie funktioniert der Anschluss eines SD-RAMs? Laut Spezifikation können > die z.B. bis zu 1067 für die Daten (z.B. für 266 MHz Takt). Geht das > über die normalen IOs oder die Transceiver? Normale IOs. Du kannst dir das doch auch ganz ohne FPGA mal zusammenklicken mit dem MIG bei Xilinx z. B. und gucken was das sagt und ob es meckert. Einfach den gewünschten FPGA auswählen, RAM Baustein wählen, Pins wählen und zack, fertig bekommst du mal eine Aussage ob das so geht. Anmerkung: DDR RAM Bausteine brauchen recht viele Pins (Adresse, Daten) man kann auch mehrere Bausteine zusammenknoten mit gemeinsamer Adresse um Pins zu sparen. Ich finde aber da den OctaSPI oder HyperRAM ganz nett, denn das sind sehr wenige Pins und man bekommt doch mit 400 MBit/Datenpin recht hohe Datenraten. Statt einem DDR Stein kann man locker zwei HyperRAMs ranhängen, mit ein wenig gemeinsam genutzten Leitungen sogar 3.
:
Bearbeitet durch User
Gustl B. schrieb: > mit dem MIG bei Xilinx z. B. und gucken was das sagt und > ob es meckert. Einfach den gewünschten FPGA auswählen, RAM Baustein > wählen, Es geht jetzt nicht um RAMs, sondern die Transmission in andere Baugruppen. Gustl B. schrieb: > Was meinst du denn damit? Im Sinne von Analogbandbreite wie wenn man > sich ein Spektrum anguckt? Oder im Sinne von Busbreite? Digitale Pin-Bandbreite.
Manni T. schrieb: > Es geht jetzt nicht um RAMs, sondern die Transmission in andere > Baugruppen. Da gilt was im Datenblatt steht. Manni T. schrieb: > Digitale Pin-Bandbreite. Schwierig. Heutzutage gibt es da schon auch Modulationen wie PAM bei PCIe 5. Da spricht man dann entweder von Bitrate wenn man wissen will wie viele Bits über den Link gehen oder von Baudrate, das gibt an wie viele Symbole das je Zeit sind. Pin ist da auch schwierig, denn oft ist das ja LVDS und dann hat man zwar eine Bitrate, aber auch zwei Pins die man braucht.
Ok, Bandbreite / Pin ist wieder etwas doppeldeutig. Stimmt. Hier geht es ohne Modulation, also 0/1 digital: Ein Bit/Pin und ein Pin/Signal. Aber zurück zu der IOs: Ich hatte das Thema SD-RAM eingebracht, weil die Bandbreite für selbige scheinbar(!) über die maximale Frequenz der (normalen) Pins hinaus geht. Ich las da etwas von den 1067 MHz, bzw die Hälfte als DDR. Die daraus resultierenden 500MHz kriege ich normalerweise in einem FPGA nicht hin. Ein MAX 10 arbeitet so ungefähr auf 200MHz, 300 wenn man sich abmüht, würde ich sagen. Dazu kam der Einwurf "MEMPHY", siehe oben, was ich so interpretierte, dass die Pins, an die die Daten eines SD-RAMs kommen, spezielle Pins sein müssten. Wenn aber die Darstellung im Datenblatt stimmt, können ja offenbar doch! alle Pins diese Geschwindigkeit. (Soweit der speed grad des Bausteins passt). Auch nach dem Datenblatt meines FPGA ist das angeblich so. Daher nochmal die Frage: Wie macht der FPGA das, dass die Pins 680MHz können und damit 1250 DDR (ich beziehe mich auf den link und die Tabelle für den ATIX bei max speed ganz links.) Stecken in den IOs auch spezielle PLLs / Serializer, wie bei den Giga-Transceivern? Davon lese ich nirgendwo.
Jetzt mal konkret: Wenn ich mich z.B. auf diese Seite beziehe: https://www.intel.com/content/www/us/en/docs/programmable/683760/21-1/high-speed-lvds-circuitry.html erkenne ich zwar eine Altera-PLL und einen Receiver/Transmitterblock, ferner lässt sich daraus ersehen, dass die Transmitter-Clock wohl 10x schneller ist, als die übertragene Clock, aber trotz 1/4-stündigem Durchklicken durch die Dokumente auf der Seite und allenmöglichen Infos zu internen und externen PLLs sowie emuliertem und echtem LVDS-Standard (?), kommt man nirgends zu einem Datenblatt, wo ausdrücklich ein Wert für die PLLs oder eine konkrete Konfiguration steht, was den Betrieb als Serial-Parallel-Wandler beschreibt. Das Blöckchen, mit dem ich diese Funktion ins Design bringe, ist ja nur ein Platzhalter für eigentliche Hardware, die ja schon existieren muss. Kann ich mir da einfach eine 1,2 GHz-PLL mit 120 MHz-Ausgang schnappen und den Serialisier-Block damit betreiben?
Manni T. schrieb: > Ein MAX 10 arbeitet so ungefähr auf 200MHz, 300 wenn man sich abmüht, > würde ich sagen. Kommt sehr auf das Design an. Ich habe hier Designs die schaffen nichtmal 100 MHz. Manni T. schrieb: > Wie macht der FPGA das, dass die Pins 680MHz können und damit 1250 DDR > (ich beziehe mich auf den link und die Tabelle für den ATIX bei max > speed ganz links.) Stecken in den IOs auch spezielle PLLs / Serializer, > wie bei den Giga-Transceivern? Davon lese ich nirgendwo. Ja da stecken spezielle IO Zellen drinnen. Manchmal mit SerDes in Hardware wie bei Xilinx, aber der Max10 hat leider keine SerDes wenn ich das richtig erinnere. Besondere PLLs haben meist nur die Transceiver oder Intel mit den hat welche bei den IO SerDes im Stratix10. Manni T. schrieb: > Kann ich mir da einfach eine 1,2 GHz-PLL mit 120 MHz-Ausgang schnappen > und den Serialisier-Block damit betreiben? Normalerweise ja. Aber du brauchst nirgens die 1.2 GHz. Du brauchst bei DDR die halbe Frequenz von der Bitrate, also meinetwegen 600 MHz und dann für den Datenpfad nochmal einen langsamen Clock. Um welchen FPGA geht es denn? Die Datenblätter in denen die konkreten Werte stehen sind sehr spezifisch für einzelne Bausteine.
https://cdrdv2-public.intel.com/666319/m10_datasheet-683794-666319.pdf Ab Seite 26 geht es um Switching. Da kommen dann auch die Tabellen mit den verschiedenen IO Standards. Jedenfalls ist der Max10 da eher lahm. Ich würde also klar einen Spartan7 nehmen. Auch weil der Max10 keine interne LVDS Terminierung kann.
Gustl B. schrieb: > welche bei den IO SerDes im Stratix10. Jetzt wo du es schreibst, es könnte der Stratix gemeint gewesen sein. Den hatte ich in nächtlicher Verwirrung mit dem Atix von der Konkurrenz vermauschelt. > Normalerweise ja. Aber du brauchst nirgens die 1.2 GHz. Du brauchst bei > DDR die halbe Frequenz von der Bitrate, also meinetwegen 600 MHz Die 600 waren die Annahme für einen möglichen Takt um 1.2 zu schaffen, weil mir das noch logisch erschien - aus der Diskussion hier und im anderen thread. So wirklich benötigen "tun" wir im Grund schon 2.4. Da müssen also mehr Leitungen oder doch die richtigen Transceiver ran. Ich klinke mich da aus dem Thema aus: am Montag darf sich das einer der Entwickler ansehen. :-) Ist aber schon mal gut, dass ich nun ein besseres Verständnis habe.
Manni T. schrieb: > So wirklich benötigen "tun" wir im Grund schon 2.4. > Da müssen also mehr Leitungen oder doch die richtigen Transceiver ran. Ja das geht mit einem normalen IO oder LVDS Paar nicht mehr.
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.