Hi, Hintergrund: ich brauche eine möglichst schnelle Kommunikation zwischen einem Spartan 3A DSP und einen Spartan 3AN. Für die Kommunikation steht jeweils eine komplette Bank zur Verfügung. Die beiden FPGAs sind direkt nebeneinander platziert. Frage: Was meint ihr, welchen IO-Standard sollte man am besten verwenden, um eine möglichst hohe Bandbreite zu erhalten?
Das kommt darauf an, welche Art Kommunikation du aufbauen willst (unidirektional/bidirektional, asynchron/synchron, etc). . Ist die Bandbreite symmetrisch (gleiche Datenmengen in beiden Richtungen) oder asymmetrisch? . Welche Anforderungen hast Du an die Latenz? Bei Taktraten von 400MHz empfiehlt es sich auf ein differentielles Format zu setzen. -> 200MHz DDR mit differentiellen Paaren. Allerdings benötigst Du dann doppelt soviele Leitungen wie mit halber Datenrate als single-ended. Jedoch kann bei 200MHz single-ended und schlechter Leitungsverlegung erhebliches Übersprechen auftreten. Sofern Leistung keine Rolle spielt, würde der Standard mit der höchsten Spannung wohl auch die höchste Störsicherheit versprechen (LVDS33).
Kommunikation ist bidirektional (allerdings könnte man auch die Kommunikation auf zwei unidirektionale Kanäle aufteilen). Beide FPGAs laufen mit synchroner Clock. Pro FPGA stehen ca. 110 IO/Pins zur Verfügung. Insgesamt müssen 96 Bits mit 250Mhz ausgetauscht werden. Könnte mir vorstellen, dass LVCMOS33 Probleme macht, da vielleicht schnell genug. Jetzt könnte man also vielleicht LVCMOS18 oder einen Speicherstandard wie SSTL18 einsetzen?
>Jetzt könnte man also vielleicht LVCMOS18 oder einen Speicherstandard wie SSTL18
einsetzen?
Was soll das bringen?
Die kapazitive Kopplung zwischen benachbarten Leitungen ist durch das
Layout gegeben. Damit ist das Übersprechen unabhängig von dem gewählten
Spannungspegel (da konstante kapazität).
Der SSTL18 hat aber eine im Vergleich deutlich größere
Störempfindlichkeit!!
LVCMOS33:
Unom = 3,3V
Ulow < 0,8V Uhigh > 2,0V
=> dU = 1,2V
dU/Unom = 1,2V / 3,3V = 36,4%
Die gültigen Spannungspegel liegen über 36% der Betriebsspannung
auseinander.
SSTL18:
Unom = 1,8V
Ulow = 1/2 Unom - 0,125V
Uhigh = 1/2 Unom + 0,125V
=> dU = 0,25V
dU/Unom = 0,25V / 1,8V = 13,9%
Die gültigen Spannungspegel liegen nur 14% der Betriebsspannung
auseinander.
D.h. der SSTL18 ist fast dreimal so empfindlich gegenüber eingekoppelten
Störungen wie LVCMOS33.
Hi Michael, was die Störungen angeht hast du natürlich recht. Aber eine ordentliche Abschirmung der Leitungen ist in diesem Fall kein größeres Problem. Da mache mir schon mehr Sorgen wegen Reflektionen auf den Leitungen. Bei LVCMOS33 muss der voll Hub von 3.3V umgeladen werden. Das dürfte bei höheren Frequenzen als erstes ein Problem darstellen.
Allerdings sind Reflektionen in dem Bereich noch linear. Die Reflektion hast Du und das SWR (Stehwellenverhältnis) hängt nicht von der Signalamplitude ab - schlecht abgeschlossen bleibt schlecht abgeschlossen. Was die Sendeleistung angeht steigen deine Verluste mit steigender Ausgangsspannung. Dafür ist nach meinem Verständnis des Datenblattes das Verhältnis (Uh-Ul)/Unom am größten bei LVCMOS33. Je unempfindlicher der Receiver auf Störungen reagiert, umso sicherer ist die Übertragung. EDIT: Ich habe gerade ein 16Bit DAC-Design mit dem SPartan3 an 200MHz-DDR (also effektiv 400MHz auf den Datenleitungen) und LVCMOS33 am laufen.
das klingt doch schonmal vielversprechend :-) Also für meine Anwendung erwarte ich da keine Probleme mehr. Ist die Anbindung an den DAC differentiell? Mich würde jetzt nur noch interessieren, mit welchen Standard man die maximale IO Performance aus dem Spartan rausholen kann. Wie du schon sagtest Reflektionen bzw. Impedanzsprünge an den VIAs hat der IO Standard keinen großen Einfluß. Also gefühlmäßig würde ich sagen, dass stattdesen die Eingangskapazität der Pins eine entscheidene Rolle spielt.
Die Eingangskapazität ist weitestgehend wie ein LTI-System. (sollte nicht abhängig von der Spannung sein) Der DAC will eigentlich LVDS-Signale haben, ich hatte leider Probleme dem Spartan3 mit ISE9.x einen LVDS-DDR Ausgang beizubringen. Daher habe ich 32 DDR LVCMOS Ausgänge konfiguriert (jeder zweite is negiert). Dabei übersteuere ich den LVDS Eingang des DAC völlig (wird halt warm)- Notlösung war die Treiberströme auf 2mA herunter zu drehen.
Das arme Ding :-) Das die Kapazitäten gleich bleiben ist klar. Aber du brauchst halt mehr Zeit um die umzuladen (bei gleicher Treiberleistung), wenn deine Spannung höher ist. Laut Datenblatt sind allerdings bei 3.3V auf Bank 1/3 bis zu 24mA möglich. Bei 1.8V "nur" 16mA Auf der anderen Seite kann der Spartan auf einer Bank nur eine begrenzte Zahl von IOs mit hoher Leistung treiben.
Ohje. Viel hilft viel oder was? Hat schon mal einer darüber nachgedacht, warum gerde die schnellen ICs heute eher KLEINE Spannungspegel nutzen? Aber ihr würde wohl am liebsten 400 Mbit/s mit RS232 Paegeln fahren, "ist ja störsicherer". Mann O Mann! Wenn es wirklich flott gehen soll dann was differentielles, echtes LVDS ist hier schon mal ein guter Ansatz. Das spuckt auch nicht so viel Dreck (differentielle Stromquellen). MFG Falk
Anforderung laut OP: - maximale Bandbreite Das kann man nur mit hohen Taktraten und einer hohen Nettoanzahl Datenleitungen erreichen. Bei differentiellen Signalpegeln verliert man leider die Hälfte der Leitungen (und damit Bandbreite). Asymmetrische Signale mit hohen Datenraten (ich kenne das Layout nicht) besitzen einfach eine niedrige Störfestigkeit. Da hilft es nur die Größe des Augendiagramms aufzureißen - mit Schwellenwerten (low/high) die möglichst weit auseinander liegen. Die 24mA sind nicht notwendig, ich betreibe meine 400MBit/s (DDR) mit 2mA ohne Probleme. Du hast ja pro Leitung nur zwei I/O Kapazitäten, da braucht man nicht annähernd so viel Strom. Der OP hat keine Aussagen zur Störaussendung, Verlustleistung, IO-Spannung etc getroffen. Leider hat der Spartan keine Rocket-IO oder andere sehr schnelle differentielle Ausgänge (GBit/s), daher bleibt ihm wohl nur ein paralleles Interface übrig.
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.