Hi Leute, wie sachnell sind zur Zeit die FPGAs? Ich brauche für das
anstehende Projekt ein FPGA welches in der Lage ist, Daten parallel mit
6OO-65O MHz auszugeben. Sind solche Geschwindigkeiten überhaupt möglich?
Auf der Xilinx Seite habe ich was von 400-500 MHz gelesen.
Deine Betrachtung ist nicht sinnvoll. Du bekommst so ohne Weiteres kein
FPGA hinsynthetisiert, welches mit einem internen Systemtakt von 600MHz
arbeiten kann und selbst die theoretischen 400MHz lassen sich nur über
DDR-Strukturen fahren, wobei nichts über die Datenfrequenz gesagt ist.
Diese hat nichts mit den angegebenen 400-500 MHz maximaler
Systemfrequenz zu tun. Oft liegen die Systemfreuqenzen im FPGA eher bei
100 bis maximal 200MHz. Die faktische benötigten Datenfrequenzen von
Vielfachen davon lassen sich nur durch Parallelisierung von Bussen und
Verarbeitungsstrukturen erzeugen. Etwas anderes sind die
Transceiverelemente: Die arbeiten im GHz-Bereich, müssen aber auch
wieder gemaess obigem Schema passend angebunden werden.
Mir geht es darum, dass man die erzeugten Daten vom FPGA z.B. als 16-Bit
breites Signal in einer bestimmten Frequenz bereit stellen kann. Die
erforderliche Geschwindigkeit liegt bei ca. 600-650 MHz.
Ich denke, die gibt's, sind aber nicht bezahlbar. Die Altera Stratix GX
und GX2 familie haben serielle Links mit 3.125 GBit. Alternativ koennte
man ein grosses mit vielen Pins nehmen und externe Serialisierer, ein
MC100EP446 parallel zu serial converter (schieberegister) macht 3.2GHz,
da waere noch was uebrig.
Z
@Archie
>Mir geht es darum, dass man die erzeugten Daten vom FPGA z.B. als 16-Bit>breites Signal in einer bestimmten Frequenz bereit stellen kann. Die>erforderliche Geschwindigkeit liegt bei ca. 600-650 MHz.
Diese Angabe ist wenig brauchbar. Ein Signal mit 650 Mbit/s (1 Leitung)
zu erzeugen und zu empfangen ist mit den gängigen FPGAs kein Thema. Ein
10Gbit Ethernet MAC ist auch kein wirkliches Problem, der läuft mit 156
MHz und 64 Bit Datenbreite. Wie bereits gesagt, reale Taktraten für
Logik im FPGA liegen so bei 200..300 MHz. Einfache
Parallel-Seriell-Umsetzer gehen auch schneller, die speziellen
Tranceiver bis 6 Gbit/s.
MfG
Falk
>Ein Signal mit 650 Mbit/s (1 Leitung) zu erzeugen und zu empfangen>ist mit den gängigen FPGAs kein Thema.
Die dafür nötigen Leitungsverbindungen zwischen den FPGAs (board signal
integrity) sind allerdings ein großes Thema. Und ganz so einfach ist die
Weiterverarbeitung innerhalb des FPGA auch wieder nicht.
Aber mal eine andere Frage: Du bist nicht zufällig an einem jener neuen
Projekte dran, für die vor Kurzem (wieder mal) von etlichen
Dienstleistungsanbietern Experten im FPGA-design gesucht wurden?
(Stichwort 600MHz Design in der Automotivebranche)?
Da wurden Experten gesucht. Experten kommen nicht hier fragen. Ganz
nebenbei kann man 600MHz am Ausgang wollen und keine Daten im
herkoemlichen Sinn uebertragen. Ich haette auch so ein Projekt, da
muesste ich fuer Experimente Pulsmuster mit 1ns oder weniger Aufloesung
erzeugen . Da gibt's nur einen Sender und keinen Empfaenger.
Z
@Rolf
>>Ein Signal mit 650 Mbit/s (1 Leitung) zu erzeugen und zu empfangen>>ist mit den gängigen FPGAs kein Thema.>Die dafür nötigen Leitungsverbindungen zwischen den FPGAs (board signal>integrity) sind allerdings ein großes Thema. Und ganz so einfach ist die>Weiterverarbeitung innerhalb des FPGA auch wieder nicht.
Naja, dass das keine 0815 Hobybastlernivau mehr ist sollte klar sein.
Aber es ist auch nicht unbedingt mehr State of the art.
>Aber mal eine andere Frage: Du bist nicht zufällig an einem jener neuen>Projekte dran, für die vor Kurzem (wieder mal) von etlichen>Dienstleistungsanbietern Experten im FPGA-design gesucht wurden?>(Stichwort 600MHz Design in der Automotivebranche)?
Nö. Aber ich hab mal mit an nem Board gearbeitet, das 10G Ethernet
verarbeitet hat (Wahlweise 8x1G oder 1x10G). Da gab einige Leitungen mit
~1Gbit/s, ein paar mit 3.1 Gbit/s und sogar 10Gbit/s (die waren aber nur
kurz, ~30mm).
MfG
Falk
Nein, ich bin nicht aus der Automotivebranche, sondern ein frischer
Absolvent (dementsprechend auch keine Experte). Habe leider nur 1 Sem
Erfahrung in VHDL Programmierung ( das war mal ein Spartan-I, soweit ich
weiß). Und die FPGA Hardware ist für mich auch noch ziemlich fremd, da
ich mehr mit µC's gearbeitet habe. Für das anstehende Projekt, kann ich
leider keinen µC nehmen, da wie oben beschrieben ist, mit hohen
Datenraten gearbeitet wird.
>Und die FPGA Hardware ist für mich auch noch ziemlich fremd, da>ich mehr mit µC's gearbeitet habe
Na da bin ich mal gespannt, was da für ein FPGA-Programm rauskommt.
"Na da bin ich mal gespannt, was da für ein FPGA-Programm rauskommt."
Ja evtl. wird er keine optimale Lösung finden, evtl. neu designedn
müssen, evtl. in 10 Jahren die Hände über dem Kopf zusammenschlagen, was
weiß ich. Das nennt sich Lernprozess glaube ich.
Aber da gibts ja das INternet, dort sind sogenannte Foren, wo ältere
Hasen, sogenannte Experten gerne Neuen helfen und ihr Wissen an sie
weitergeben, ohne sich irgendwie profilieren zu müssen.
Ich suche so ein Forum unter Hochdruck und werde dir, Archie, bescheid
geben wenn ich mal eins finde. Oder hast du einen Tip, Herr Jürgen?
@icke
>Ich suche so ein Forum unter Hochdruck und werde dir, Archie, bescheid>geben wenn ich mal eins finde. Oder hast du einen Tip, Herr Jürgen?
Newsgroup comp.arch.fpga
MfG
Falk
Ich habe nichts dagegen, wenn Junghasen, wie Du es nennst, Lernen und
dazu gfs auch das Netz benutzen. Die Kritik geht in eine andere
Richtung:
Ich muss mich immer wieder über die Vorgehensweise gewisser Firmen
wundern, gerade einen Anfänger an ein 600MHz-Projekt dranzustellen, der
dazu noch seinen Erfahrungsschwerpunkt auf Softwareentwicklung hat. Wir
wissen alle, wie ein intuiver Ansatz eines FPGAs aussieht, der von einem
Softwareentwickler erdacht wurde. Softwerker denken in Prozessen und
Schleifen - um aber zu einem effizienten FPGA-design zu gelangen sind
massenhafte Erfahrungen im Digitaldesign nötig. Bei solchen
Hi-Speed-Geschichten kommen noch trickreiche timing-Aspekte hinzu.
Ja. Ein 600MHz design ist nicht trivial. Die Firma wird genau Einen
haben, der das machen sollte, den Archie. Der macht den anderen Rest
auch noch. Ein aelterer Spezialist war moeglicherweise zu teuer und/oder
zu spezialisiert.
Z.
Für mich ist es am Anfang wichtig zu wissen, ob das ganze realisierbar
ist, und mit welchen Mitteln. Der Rest ist eine "Nebensache", da ich
lernwillig und fähig bin. Zudem bin ich nicht nur ein Softwaremensch.
Habe an ähnlichen Projekten mitgearbeitet (keine FPGAs sondern
ECL-Bausteine), doch nur für die PDH E3-Schnittstelle(34 Mbits) und da
gab es schon bereits genug Timingprobleme, das alles ist mir bekannt.
Man erwartet von mir sicherlich nicht, dass ich mit der Sache in 2
Wochen fertig werde. Und was zu tun ist, habe ich oben beschrieben. Ich
muss gewisse Daten (Ergebnisse der Polynomrechnung) vom FPGA berechnen
lassen und diese als ein paralleles 16-Bit breites Signal, einem
Multiplexer (bereits vorhanden) zur Verfügung stellen. Die
Bereitstellung der Signale soll mit einer Rate von 650 MHz stattfinden.
Was ich wissen wollte ist, ob ich mit Hilfe von VHDL erzeugten Daten
gleichzeitig als 16-Bit breites Signal über die RockeIO-Schnittstelle
nach Außen zur Verfügung stellen kann und ob das realisierbar wäre.
@Archie
>Habe an ähnlichen Projekten mitgearbeitet (keine FPGAs sondern>ECL-Bausteine), doch nur für die PDH E3-Schnittstelle(34 Mbits) und da>gab es schon bereits genug Timingprobleme, das alles ist mir bekannt.
;-) Wenn man schon für lumpige 34 Mbit/s mit ECL arbeiten muss, sollte
man das mit den 650 MHz nochmal durchdenken.
>muss gewisse Daten (Ergebnisse der Polynomrechnung) vom FPGA berechnen>lassen und diese als ein paralleles 16-Bit breites Signal, einem>Multiplexer (bereits vorhanden) zur Verfügung stellen. Die>Bereitstellung der Signale soll mit einer Rate von 650 MHz stattfinden.
Also du willst 650 Mwords a 16 Bit pro Sekunde berechnen und ausgeben?
Das Ausgeben geht relativ problemlos, das Berechnen ist ohne MASSIVE
Parallisierung nicht machbar. Vor allem da man mit max. 300MHz Taktrate
rechnen sollte.
>Was ich wissen wollte ist, ob ich mit Hilfe von VHDL erzeugten Daten>gleichzeitig als 16-Bit breites Signal über die RockeIO-Schnittstelle>nach Außen zur Verfügung stellen kann und ob das realisierbar wäre.
1.) Die Datenausgabe ist kein wirkliches Problem, das können selbst
"alte" Virtex (ohne PRO, 4 oder 5).
2.) Die Rocket-IOs sind etwas spezieller, die muss man erstmal jeweils
als einzelnen Kanal betrachten. Die können gar nicht langsamer als 622
Mbit/s. Will man mehrere parallel verwenden heisst das dort Channel
Bonding und braucht etwas Logik.
MfG
Falk
Mit der RocketIO sicher nicht, das ist nämlich ein Serializer, der kennt
nur einen Ausgang nicht 16.
Den Weg den ich mir vorstellen könnte habe ich schon einmal angedeutet.
Interner Clock 300 MHz.
Die Berechnung der Ausgangswerte ist verdoppelt und berechnet getrennt
gerade Werte und ungerade Werte.
An Ausgang schaltet ein Dual Data Rate FF bei aufsteigender Taktflanke
das Ergebnis eine Ergebnis und bei fallender Flanke das andere Ergebnis
an den Pin.
Dürfte aber trotzden hart an der Grenze der Realisierbarkeit liegen,
wenn man sich die ganzen Maximalfrequenzen in den Datenblättern von
Virtex-4 ansieht.
Klaus
Das heisst dass unterhalb 18 Kelvin nur noch HEMT FET arbeiten, da im
Germanium und Silizium keine Ladungstraeger und Loecher mehr vorhanden
sind. Die Firma hat einen beeindruchenden Stab an leitenden
Angestellten, aber kein einziges Datenblatt. Es scheint zur Zeit darum
zu gehen, Kohle zu organisieren. Ob's jemals was wird ist eine andere
Sache.
Über das erste Silizium (90nm) steht da noch, es hätte
Versorgungsspannungen von 0.2-3.9V überstanden - während es arbeitete.
Der Temperaturbereich soll zwischen -196°C und +130°C gelegen haben.
Gegen hohe Strahlungswerte ist das Ding natürlich auch noch immun. Und
es soll nur einen Bruchteil der Strombedarfs bisheriger FPGA haben.
Klingt alles irgendwie nach Science Fiction.
Abgesehen davon: bei 2 GHz Takt noch ein brauchbares internes Routing
hinzubekommen stelle ich mir sehr spannend vor ;).