Hallo miteinander, ich bin auf der Suche nach Informationen zur I/O-Geschwindigkeit eines Xilinx Spartan 6 LX für single-ended Pins. Laut Spartan 6 Family Overview ist die I/O-Geschwindigkeit bei differential I/O 1080 Mbit/s. Leider finde ich aber keinerlei Angabe für single-ended I/O (vorzugsweise LVCMOS). Hat jemand diesbezüglich vielleicht Informationen oder Erfahrungswerte? ------------------------- Hintergrund meiner Frage: Ich möchte als Projekt eine Datenwandlerkarte für mein Pandaboard mit 12 bit - 1GS/s erstellen, bin mir im Moment jedoch nicht sicher ob ich 4 x 250 MS/s ADC pipelined oder 2 x 500 MS/s ADCs pipelined nehmen soll/kann. Als Basis würde ich ein fertiges FPGA-Modul nutzen: http://shop.trenz-electronic.de/catalog/product_info.php?cPath=1_65_143&products_id=897 Und nun zum eigentlichen Problem: Ein 500 MS/s ADC würde mindestens 12 (+ DR, CS) lvds paare, also ca. 28 Pins differential Pins benötigen, allerdings stehen nur 52 differential Pins auf dem Modul zur Verfügung. Deshalb meine Frage zu den single-ended Pins, da ich so vielleicht noch etwas mit LVCMOS drehen könnte. Andernfalls müsste ich auf ein größeres FPGA-Modul mit Virtex 4 umsteigen, welches rund doppelt so teuer wäre oder zwangsweise auf 8-Bit Auflösung runter :( ------------------------- Ich bin für alle Informationen sehr dankbar und würde mich freuen, wenn ihr mir dabei weiterhelfen könntet. Viele Grüße, Michael
Die 500MHz ADC besitzen so viel ich weiß nur LVDS Leitungen. Die kann man nicht mit CMOS betreiben. Ich habe 2x400MHz 14 Bit Wandler von TI benutzt. Jedeoch verwende ich einen Virtex 5 FPGA da ich den Spartan 6 für zu langsam halte. Bei den 500MHz Wandlern von TI werden die Daten per LVDS übertragen. Zudem wird DDR als Übertragungsvariante benutzt. Demnach beträgt die Frequenz im FPGA anschließend 500MHz durch 2 macht 250MHz. Dies halte ich schon für mehr als sprotlich bei einem Spartan 6. Ich weiß das oftmals der Kostendruck sehr hoch ist und der Unterschied zwischen eine Spartan 6 und einen Virtex 5 ca. 200€ beträgt. Dafür geht es jedoch sehr schnell auf einem Virtex 5 und das auch sehr zuverlässig. Zudem ist es meistens auch so das die Daten in Richtung PC übertragen werden und dann und der Spartan 6 oft zu langsam. 4x 250MHz Wandler würde ich jetzt nicht empfhelen, da man immer einen Offset Gain ausgleich machen muss. Dies ist bei 2 Wandlern sicherlich noch machbar bei 4 Wandlern wid das alles wieder sehr ungenau, da auch Temperatureffekte eine sehr große Rolle spielen. Inzwischen stellt Atmel und National Semiconductor bereits auch sehr gute Wandler her die schneller als 500MHz arbeiten
500 MS/s ginge schon noch single ended, aber nicht in LVCMOS. Siehe z.B. DDR2 Interface (geht bis 533). Es gibt aber einen weiteren Grund warum schnelle ADC's LVDS benutzen, und das ist die sehr viel geringere Störabstrahlung der LVDS Ausgänge. Schau dir nochmal das Blockschaltbild deines Trenzboards an: http://www.trenz-electronic.de/uploads/pics/TE0600.diagram_01.png Es sind 52 LVDS IO/s ( = 104 Pins), mehr als genug.
Hallo miteinander, und erstmal vielen Dank für die hilfreichen Informationen. Gibt es denn kostengünstige Virtex 5 Module? Hat jemand eventuell Links zu Anbietern oder Onlineshops? Vorzugsweise mit der freien Webpack ISE noch programmierbar. Bisher habe ich nur ein entsprechendes Virtex 4 Modul gefunden, welches noch bezahlbar wäre: http://wiki.simple-solutions.de/Products/FPGA_Modules/Zefant-nano/Zefant-nano_%28Virtex_4%29 Allerdings ist der Virtex 4 doch schon etwas in die Jahre gekommen oder täusche ich mich da? @Johann: Was mich an deiner Antwort nachdenklich macht ist, wenn ein Spartan 6 für so etwas "zu langsam" ist, warum verpasst man so einem FPGA dann die Möglichkeit 1080Mbit per diff.-Pin. zu übertragen? Ist das denn dann nicht Augenwischerei? @Lattice-User: Da sah ich den Wald vor lauter Bäumen nicht :) Danke. Viele Grüße, Michael
Wenn man mal einige Designs auf einem FPGA gemacht hat und dann die Timings untersucht wird man ganz schnell feststellen das die maximalen Geschwindigkeiten nur mit sehr viel Aufwand zu erreichen sind. Und dies wird natürlich sehr viel schwerer um so komplexer das Design wird. Ein Autohersteller gibt auch an das die neue E-Klasse sensationelll wenig verbraucht in der Innensatadt. Wenn jedoch zahlreiche Fachzeitschriften dies prüfen dann erreicht man so gut wie nie die Herstellerangaben. Es hängt natürlich auch davon ab wie viele Geräte man später davon bauen möchte. Wenn es 100k sind da lohnt es sich schon 1 Jahr arbeit reinzustecken damit die Kosten später so gering wie möglich sind. Oft ist es aber so das man so schnell wie möglich am Markt sein muss damit man auch so viele Geräte wie möglich verkauft bevor der Mitbewerber sein Produkt vorstellt. Dann kommt es daruf an das die Entwickungsgeschwindigkeit so kurz wie möglich ist. An deiner Stelle würde ich erst einmal mit einem Virtex 5 anfangen. Wenn dann das Programm fertig ist und auch sehr zuverlässig funktioniert kann man das gleiche Programm auf einen Spartan 6 testen. Dies geht ja auch ohne Hardware. Du must im ISE nur den FPGA von Virtex 5 auf Spartan 6 ändern und einmal das ganze routen. Dann wirst Du sicherlich sehr viele Timing Errors erhalten. Wenn Du die dann alle beseitigen kannst, kannst Du auf deinen Board den Virtex 5 durch einen Spartan 6 ersetzen. Mit ein wenig googeln wirdst Du sehr schnell Virtex 5 Boards finden die 2 oder sogar mehr 500MHz Wandler drauf haben. Ich habe für ein Virtex 5 Demoboard mit 2 400MHz Wandlern so ca. 2200€ bezahlt. Da war dann allerdings schon ein Virtex 5 SX drauf der alleine bereits 1600€ kostet. Falls Du kein Board findest kann ich Dir ja dann einen Link schicken :-) Aber ich denke ein wenig arbeiten muss man für sein Geld ja auch noch und so lernt man gleich die Hersteller der ADCs besser kennen :-) Wenn Du einige Boards gefunden hast kannst Du Dich ja noch mal melden. Es äre auch noch ganz schön wenn Du mal posten könntest wie Du die Daten in Richtung PC übertragen willst.
@ Michael Du hast ja fast genau den gleich Namen wie ich das ist ja wirlich ein Zufall.
@Johann: Um das ganze etwas zu verdeutlichen: Ich will auf Basis des Pandaboards ein DSO erstellen mit 2 x 500Msps Kanälen bzw. bei Verwendung nur eines Kanals 1 Gsps (pipelined), dazu einen Signalgenerator und ein 16 bit Logic Analyzer. Im Moment ist eine Übertragung der Daten an den PC überhaupt nicht vorgesehen, da die gesamte Software (GUI-Client und Daten-/Auswertungsserver) auf dem Pandaboard laufen soll. Der FPGA wird dabei direkt an den GPMC-Bus des Omap4 angeschlossen. Später wäre eine Portierung des GUI-Clients auf ein Android-Tablet oder PC durchaus möglich, allerdings werden dann nur die notwenigen Daten für den aktuellen Bildbereich per USB oder Wlan übertragen und nicht mehr. Da das ganze Projekt dennoch rentabel, als Student sitzt das Geld nicht gerade locker, und eventuell auch nachbaubar bleiben soll, muss ich mir eventeull überlegen die Bandbreite auf 2 x 250Msps zu reduzieren. Gruß, Michael
Es ist aber schon klar das die Datenrate bei 1Gigasample bei ca. 2 Gigabyte pro Sekunde liegt. Du must dafür sorgen das Du ein Board mit einem sehr großen DDR2 oder DDR3 Speicher verwendest, da Du die Daten nicht besonders schnell in Deinen ARM9 bekommst. Außerdem ist der analoge Teil der vor den AD-Wandlern sitzt bei den Frequenzen nicht mehr ganz so einfach. Dies muss sehr gut geroutet werden um dies gegen äußere Störungen zu schützen. Ansonsten hast Du Spikes ohne Ende auf Deinem Signal. Für unser Board haben wir ca. so viel bezahlt wie für einen Kleinwagen und nur durch gute Planung hat auch gleich der 1. Prototype funktioniert.
@Johann: Nochmals Danke für dein reges Interesse an meinem Thema :) Ich weiß wie sich mein Vorhaben liest :) und ich habe das nicht grundlos im Eingangspost weggelassen ;) Aus diesem Grund bin ich auch auf der Suche nach einem fertigen OEM-Modul, um mich dem Analogteil zu widmen. Falls ich kein entsprechendes (und bezahlbares) Modul für meine Wunschkonfiguration finden sollte, was ja anscheinend der Fall ist, dann muss ich eben an der Bandbreite Abstriche machen. Deshalb frage ich einfach anders: Welche maximale ADC-Samplingrate könnte denn ein Spartan 6 deiner Meinung nach real verarbeiten bei 10 Bit Auflösung? Beim Spartan 6 könnte es sich dabei bsp. um das Trendzmodul handeln, damit die Umgebungsvariablen wie RAM usw. feststehen: 2 × 16-bit-wide 1 Gb (128 MB) DDR3 SDRAM Viele Grüße, Michael
Man sollte sich erst einmal gedanken machen wie lange ich Signale gigitalisieren möchte. Denn 128MByte zwischenspeicherist nicht wirklich viel. Es gibt inzwischen DDR2 oder DDR3 Module für den Spartan 6 die kaum etwas kosten und super funktionieren. Es gibt im ISE ein Memory IP-Core. Bei diesem Memory IP-Core kann man aus sehr vielen RAM-Module auswählen. Das schöne dabei ist man muss sich keine Gedanken mehr über die Timings und den Refresh machen da dies nun der Memory Controller macht. Außerdem ist dies alles getestet so das Du da keine Zeit verlierst. Am besten ist es wenn Du ein Memory auswählst mit mindestens 32Bit Datenbusbreite. Dadurch kann man die Frequenzen dann noch kontrollieren. Bei einem Spartan 3 würde ich erst einmal mit den 125MHz Wandlern anfangen. Davon dann 2 Stück verbauen. Aber wie bereits gesagt ein fertiges Board mit 2 AD-Wandler zu finden ist nicht besonders leicht. Die meisten haben halt nur einen Wandler verbaut. Ich habe es mit einem Demoboard probiert, allerdings war dort leider überhaupt kein DDR Speicher drauf und die Datenübertragung erfolte über eine RS232 mit maximal 3 MBIT
Hallo Johann, da hast du mich leider falsch verstanden oder ich habe mich nicht deutlich genug ausgedrückt: Ich suche kein fertiges Board mit AD-Wandlern darauf. Ich suche ein fertiges FPGA-Modul, welches ich adhoc auf meine eigene AD-Wandlerplatine (mit ADCs usw.) stecken kann und fähig ist den Datenstrom zu verarbeiten. Die Digitalisierung sollte durchgehend sein, wobei nicht alle Daten übertragen werden, sondern nur die für die Anzeige aktuellsten Daten und das ca. alle 50ms. Als Beispiel ein FullHD Monitor: 1920 px 10 Bit 5 Bildschirmseiten * (1s/50ms) = ca. 2 Mb/s + evtl 1 Mb/s Overhead. Die Digitalisierung wird nur gestoppt, wenn eine Datenaufzeichnung stattfindet und der Speicher daraus folgend voll ist und komplett übertragen werden muss. Da viele low-cost DSOs nur mit 1 Mpts Speicher arbeiten, sollten 128 MByte für mein DSO-Projekt doch hoffentlich ausreichend sein? Gruß, Michael
Johann schrieb: > Es gibt inzwischen DDR2 oder DDR3 Module für den Spartan 6 die > kaum etwas kosten und super funktionieren. > Hm, der(die) MCBs (Spartan6 MIG) im Spartan6 kann aber nur maximal 16Bit breite Rams ansprechen. Damit ist die Aussage: > Am besten ist es wenn Du ein Memory auswählst mit mindestens 32Bit > Datenbusbreite. Dadurch kann man die Frequenzen dann noch kontrollieren. etwas unverstaendlich?
Michael R. schrieb: > Die Digitalisierung sollte durchgehend sein, wobei nicht alle Daten > übertragen werden, sondern nur die für die Anzeige aktuellsten Daten und > das ca. alle 50ms. Hm, und wie kommst du vom Datenstrom mit 1GS/s auf diene paar Pixel? Willst du nach dem Trigger nur die 1920 Pixel zwischenspeichern und weiter transportieren? Das wäre dann ja nur ein winziger Ausschnitt... Die meiste Intelligenz eines Speicher-Oszis steckt im Algoritmus, aus dem Sample-Speicher die Daten für die Anzeige zu berechnen. Da darf kein Spike verloren gehen, auch wenn es noch so komprimiert ist. Abtastrate am ADC gleich reduzieren ist auch Mist, dann bekommst du schnelle Trigger nicht mit. Nicht umsonst haben gute Speicher-Oszis massenhaft Sampling-Speicher, der die Kisten so teuer macht. Und am (integrierten) PC wird dann aus dem gesamten Sample-Speicher, der nach dem Trigger gefüllt wurde, die Anzeige berechnet. Und das frisst jede Menge CPU Zeit. Ich weiß nicht, wie du das in Hardware machen willst....gerade ein Maxima-Sucher braucht ja mindestens einen Komparator, und selbst bei Pipelining hast du da mehrere Logik-Ebeben zwischen 2 FF, da wirds ganz schnell Brühe mit 500 MHz (mehr schafft der S6 intern sowieso nicht). Der BlockRam geht sogar nur bis 250MHz, und in den müsstest du die Samples auf jeden Fall erst einlaufen lassen, bevor die auf den externen RAM können.
@Michael R. Lass dich durch die Schwarzseher hier nicht von dem Projekt abhalten. Das macht sicher viel Spass und hat ein hohes Lernpotential. Der Spartan6 hat übrigens eine sehr leistungsfähige IO Logik und kann aus deiner 500 MHz Datenrate intern komfortable 125 MHz mit vierfacher Datenbreite machen. Ich glaube das beantwortet auch deine Frage wie man auf 1080 Mbit/s kommt. Auch wegschreiben auf das DRAM sollte bei dem Trenzboard kein Problem sein (2 unabhängige 16 bit breite DDR3 Speicher) , aber im ersten Schritt kann man sich aufs Blockram bechränken, damit sind beim LX45 auch schon > 100k Samples möglich. Probleme die ich sehe: 1. Analoge Eingangsbeschaltung, Störsicherheit. 2. Auch bei LVDS ist das Layout bei 500 MHz Datenrate nicht trivial (Length matching, Impedanz) (aber immer noch einfacher als mehrere parallele ADC's zu matchen) 3. Das Gegenstück der Connectoren für das Trenzboard sind vermutlich auch nicht ganz billig (einzeln) 4. Falls du das Ethernetinterface auf dem Trenzboard zur Datenübertragung nutzen willst, wirst du um einen Softcore nicht herumkommen. Schau dir sicherheitshalber schon mal an wieviel Resourcen der verbraucht. Ansonsten schau mal ob du auch mit SPI die Verbindung zum Pandaboard herstellen kannst. Dürfte etwas schneller als RS232 sein.
Speicher kann man bei einem Oszi nicht genug haben. Viele Hersteller von DAQ-Boards verwenden ganz normalen Notebookspeicher den man in jedem Laden kaufen kann. Man muss auf seiner Platine halt nur den passenden Steckverbinder implementieren. Um noch mal auf die Bandbreite bei den I/Os zurückzukommen. Man muss da kleingedruckte im Datenblatt lesen. Die Datenrate hängt stark davon ab welchen Übertragungsstandard man verwendet. Bei LVCMOS 3,3V wird nie so schnell sein wie LVCMOS 1,8V oder weniger, da einfach die Flankensteilheit begrenzt ist. Deshalb sollte man mal ins Datenblatt schauen und dann kann man nachlesen wie schnell es wirklich alles geht.
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.