Forum: FPGA, VHDL & Co. 2 Spartans verbinden, welcher IO Standard


von Harald (Gast)


Lesenswert?

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?

von Michael O. (mischu)


Lesenswert?

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).

von Harald (Gast)


Lesenswert?

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?

von Michael O. (mischu)


Lesenswert?

>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.

von Harald (Gast)


Lesenswert?

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.

von Michael O. (mischu)


Lesenswert?

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.

von Harald (Gast)


Lesenswert?

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.

von Michael O. (mischu)


Lesenswert?

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.

von Harald (Gast)


Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

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

von Michael O. (mischu)


Lesenswert?

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
Noch kein Account? Hier anmelden.