Hallo, ich habe hier 4 ADC mit 16 Bit und je 1MSample Datenrate. Die Daten sollen durch einen FPGA verarbeitet werden. Filtern, Mischen, teilweise FFT. Ist des sinnvoll die Daten im FPGA seriell zwischen den einzelnen Einheiten zu übertragen? Jeder Kanal nacheinander auf einem 16 Bit Bus (AXI Stream) oder ist es im FPGA effektiver einen massiv parallelen Bus mit 72 Bit zu nutzen. FPGA (Spartan 6) MfG Klaus
Klaus schrieb: > ich habe hier 4 ADC mit 16 Bit und je 1MSample Datenrate. Die Daten > sollen durch einen FPGA verarbeitet werden. Filtern, Mischen, teilweise > FFT. > FPGA (Spartan 6) PCB oder Kabel? Taktfrequenz auf dem Parallelbus? Länge? Zu erwartende Problem sind Übersprechen und zeitlicher Signalversatz zwischen den Einzelleitungen (skew). Bei einem Msample sollte das aber beherrschbar sein. Bei der dimensionierung der Stütz-C an den FPGA-Pins spielt die Anzahl gleichzeitig schaltender Ausgänge eine Rolle. Aber 1 MHz sollte kein Problem sein. Zum Vergleich: der alte PCI 1,0 von 1991 läuft mit 33MHz und 32 parallenen Daten/Adresse. MfG,
Fpga Kuechle schrieb: > PCB oder Kabel? Taktfrequenz auf dem Parallelbus? Länge? Im FPGA ein Kabel ziehen???
mar IO schrieb: > Fpga Kuechle schrieb: >> PCB oder Kabel? Taktfrequenz auf dem Parallelbus? Länge? > > Im FPGA ein Kabel ziehen??? Nein, zwischen FPGA-(Board) und ADC-(board) MfG,
Klaus schrieb: > Filtern, Mischen, teilweise > FFT. > > Ist des sinnvoll die Daten im FPGA seriell zwischen den einzelnen > Einheiten zu übertragen? Wenn du deine 4 ADC-Daten sauber in deine 'Einheiten' nacheinander fuettern kannst, dann brauchst du auch nur ca. 1/4 der Logik im FPGA. Wenn du viel Platz hast kannst du natuerlich auch alles 4x einbauen und brauchst keine Synchronisierung. Probier's doch einfach aus, ist doch nur ein bisschen umverdrahten und instantiieren im top-level...
Fpga Kuechle schrieb: > mar IO schrieb: >> Fpga Kuechle schrieb: >>> PCB oder Kabel? Taktfrequenz auf dem Parallelbus? Länge? >> >> Im FPGA ein Kabel ziehen??? > > Nein, zwischen FPGA-(Board) und ADC-(board) > > MfG, Habe ich etwas anders verstanden.
Klaus schrieb: > einen massiv parallelen Bus mit 72 Bit Naja, wenn jede Graka schon den Speicher extern mit 128 Bit anbindet, dann sind 72 Bit aka 4*16 Bit noch nicht massiv... Und natürlich ist es in erster Näherung einfacher und schneller, wenn einfach alles 4x da ist. Denn dann musst du nur 1x enwickeln und 3x instantiieren. Erst dann, wenn dir dann nach 3,5 Einheiten der Platz ausgeht, musst du dir Gedanken um ein Zeitmultiplexverfahren machen...
Der FX3 hat einen 16 bzw. 32bit breiten Datenbus. >> ergo das geht gut
Peter schrieb: > Der FX3 hat einen 16 bzw. 32bit breiten Datenbus. >> ergo das geht gut Im Deutschaufsatz wäre das ein klares "Thema verfehlt!"
Ich hatte mal ein Spartan3 Projekt mit 6 RAM-Bänken à 16bit Daten + 24Bit Adressen + Steuerleitungen. Alles parallel. Machte in Summe über 256 Leitungen und lief einwandfrei mit 66MHz. Wichtig dabei war: 1. Zusammengehörende Signale (z.B. alle Bits eines Datenbus) in den gleichen IOB packen, sonst wird das Laufzeitverhalten im FPGA suboptimal. 2. Leiterbahnlängen gleich lang halten.
> 1. Zusammengehörende Signale (z.B. alle Bits eines Datenbus) in den > ,gleichen IOB packen In einem IOB passt nur ein bit, gemeint ist wohl eher gleiche io_Bank. Xilinx empfiehlt einen lauf ohne Location constraint, da sich der placer dann die pins schon optimal raussucht. danach das PCB designen. MfG
@ Bronco (Gast) >1. Zusammengehörende Signale (z.B. alle Bits eines Datenbus) in den >gleichen IOB packen, sonst wird das Laufzeitverhalten im FPGA >suboptimal. Da es sowieso getaktet ist kann man problemlos FlipFlips in den IOBs nutzen, sowohl rein als auch raus, was das Timing total relaxt. >2. Leiterbahnlängen gleich lang halten. Naja, man kann alles übertreiben. Jaja, PCI schriebt das vor, +/-2,5mm für die Taktleitung auf der Backplane. Aber bei dem Thema wird gern übertrieben. Zum Vergleich 10mm Leitung haben ca. 50ps Laufzeit. 66MHz sind 15 ns Periodenauder, da ist der Faktor 300 dazwischen.
Falk Brunner schrieb: > Naja, man kann alles übertreiben. Jaja, PCI schriebt das vor, +/-2,5mm > für die Taktleitung auf der Backplane. Aber bei dem Thema wird gern > übertrieben. Klassisches PCI ist ja im Vergleich zu aktuellen schnellen ADCs oder DDR*-Ram langsam. Und zum Anderen, lieber beim Layouten aus Vorsicht übertreiben als dann mehrere Wochen vergeuden weil der Prototyp nicht oder nur manchmal läuft, oder noch schlimmer in der Serie manche Produktionslose einfach nicht gehen oder wesentlich häufiger Probleme haben.
@ Christoph Z. (christophz) >Und zum Anderen, lieber beim Layouten aus Vorsicht übertreiben NEIN! Reseven sind schön und gut, Übertreibung nur selten. Hab ich live erlebt, wie die Leute sich ohne Grund nur wegen ein paar Zahlen, die SICHTBAR falsch und vollkommen übertrieben waren, in die Hosen gemacht und ANDEREN Leuten haufenweise Arbeit gemacht haben! NEIN DANKE! >als dann >mehrere Wochen vergeuden weil der Prototyp nicht oder nur manchmal >läuft, oder noch schlimmer in der Serie manche Produktionslose einfach >nicht gehen oder wesentlich häufiger Probleme haben. Dafür gibt es eine Inbetriebnahme und Typprüfung, wo sowas gemessen und bewertet wird!
Falk Brunner schrieb: > Reseven sind schön und gut, Übertreibung nur selten Reserven bedeuted: Man weiss recht gut was man tut und baut sich noch etwas Luft ein (==Angstfaktor). Uebertreibung bedeuted in aller Regel: Ich spezifiziere einfach mal das Maximum; sollen sich andere damit rumschlagen... Falk hat recht. Reserven kann einen Board Respin bedeuten, aber dann weisst du auch warum und wieso. Uebertreibung kann bedeuten: Es funktioniert, aber ich weiss nicht warum
Falk Brunner schrieb: > Dafür gibt es eine Inbetriebnahme und Typprüfung, wo sowas gemessen und > bewertet wird! Ach wär das schön, wenn das bei uns hier alle so ernst nehmen würden. berndl schrieb: > Reserven bedeuted: Man weiss recht gut was man tut und baut sich noch > etwas Luft ein (==Angstfaktor). Uebertreibung bedeuted in aller Regel: > Ich spezifiziere einfach mal das Maximum; sollen sich andere damit > rumschlagen... Würde ich glatt unterschreiben! Mir ging es eher um die Art Leute, die meint alle anderen machen das viel zu Kompliziert und dann selber ohne das nötige Wissen zu erarbeiten dann einen Schnellschuss produzieren. Ausbaden dürfen das Nachher die Leute von der Produktion und vom Support...
Christoph Z. schrieb: > berndl schrieb: >> Reserven bedeuted: Man weiss recht gut was man tut und baut sich noch >> etwas Luft ein (==Angstfaktor). Uebertreibung bedeuted in aller Regel: >> Ich spezifiziere einfach mal das Maximum; sollen sich andere damit >> rumschlagen... Nunja hier (Spartan-6) hat man durch die IO-delay elemente einige reserven im FPGA mit denen man PCB-Längenunterschiede ausgleichen kann. Also Nix mit zwangsläufig nötigen PCB-Respin. http://www.xilinx.com/support/documentation/user_guides/ug381.pdf S.70 So ist das halt mit den Angstfaktor: Vor lauter panik schätzt man seine Freiheitsgrade geringer ein und eröffnet auf neuen Teilgebieten Materialschlachten nur weil man sich dort ein wenig besser auskennt. MfG,
Falk Brunner schrieb: > Da es sowieso getaktet ist kann man problemlos FlipFlips in den IOBs > nutzen, sowohl rein als auch raus, was das Timing total relaxt. Oh ja, das sollte man tunlichst machen (heisst beim Spartan glaub ich "Pack IOB"). Das war auch eine Lektion, die ich auf die ganz harte Tour lernen mußte ;)
KennIch schrieb: > Nunja hier (Spartan-6) hat man durch die IO-delay elemente einige > reserven im FPGA mit denen man PCB-Längenunterschiede ausgleichen kann. > Also Nix mit zwangsläufig nötigen PCB-Respin. naja, es geht ja nicht nur um z.B. Laufzeiten externer Signale. Es geht auch um so sachen wie z.B. Spannungsversorgung (Leistung und Sequence beim einschalten), DeCaps, Pads fuer Signale von denen man nicht so genau weiss ob man sie jetzt braucht. Evtl. einen Absatz in den gefuehlt tausenden von Seiten Dokumentation uebersehen und dein Board tut halt nicht. Und dann faengt der Aerger richtig an... Und einfach funktionierende Eval-Board Schaltungen zu uebernehmen ist halt sehr oft ueber's Ziel hinaus geschossen und damit teuer.
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.