Forum: FPGA, VHDL & Co. Verkabelungsfrage Single-Ended


von Matthias F. (flint)


Lesenswert?

Hallo,

ich habe recht wenig Ahnung von Verkabelung und hätte darum gerne ein 
wenig Feedback für den Testaufbau, den ich mir überlegt habe. Getestet 
soll eine FPGA-Karte werden, die in einem PC im PCIe Slot steckt und von 
dem gepowert wird. Ein weiteres FPGA-Board soll ein Testdesign erhalten, 
das Stimuli für das DUT erzeugt. Da hier ein Vorgang im Minutenbereich 
durchprobiert werden soll und ich in der Simulation ungefähr das 
Verhältnis 1ms Simulationszeit pro 1h Rechenzeit habe, macht das aus 
unserer Sicht Sinn.

Die Verbindung der beiden Boards möchte ich ganz einfach single-ended 
mit Flachbandkabel oder überhaupt einfachen Strippen machen, die mit 3,3 
V single-ended arbeiten und auf Pins auf den SAM Steckerleisten auf den 
beiden Boards gehen. Es handelt sich um 3 Ausgangsleitungen vom DUT zum 
Testdesign und zwei Rückleitungen. Am kritischsten ist wahrscheinlich 
der 60MHz Takt, der vom DUT ans Testdesign geht und dort, über eine PLL 
geführt, die Taktung des Testdesigns übernehmen soll.

Inzwischen habe ich mir überlegt, dass ich wahrscheinlich die 6 
GND-Verbindungen der beiden Steckerleisten auch verbinden sollte 
(Stichwort Rückströme). Wenn ichs zusammenbringen vmtl diese 
GND-Verbindungen im Flachbandkabel zwischen die Signalleitungen.

Macht das Sinn? Kann man noch mehr machen?

Danke und lg
Matthias

von Thomas R. (Firma: abaxor engineering) (abaxor)


Lesenswert?

Hallo,

ATA/ATAPI verwendet ab Version 5 80 polige Kabel, jede zweite Leitung 
ist eine Masseleitung. Und das bei 33 MHz. Du hast den doppelten Takt. 
Dann gibt es noch Abschlusswiderstände. Die Kabellänge ist auch 
begrenzt. Daran solltest du dich orientieren.



Tom

von Matthias F. (flint)


Lesenswert?

Danke für die Antwort, nachdem ich ein wenig gegoogelt habe, habe ich 
das Gefühl, es könnte funktionieren oder auch nicht. Das mit den 
GND-Leitungen zwischen den anderen Leitungen ist wohl jedenfalls ein 
Muss, bei der Signalanordnung kann ich auch schauen dass ich zwischen 
die drei Signale mit vielen Flanken noch die beiden mit relativ wenigen 
Flanken setzen kann.

Auf den FPGAs die Slew Rate auf Slow, evtl auch die Drive Strength 
runter.

Die nicht vorhandenen Terminierungen machen mir noch Sorgen, evtl könnte 
ich da für den Fall, dass es nicht funktioniert noch aufs DCI Feature 
zurückgreifen, indem ich Strippen mit geeignetem Widerstand dazwischen 
von den VRP/VRN Pins, die auch auf den SAM Steckerleisten sind zu den 
3,3V und GND verbinde und dann DCI aktiviere ... aber das kommt mir 
irgendwie ziemlich gebastelt vor. Aber wenn es sein muss ...

von Schrotty (Gast)


Lesenswert?

Dein FPGA hat doch sicher LVDS-Pins. Waurm muss es denn unbedingt 
single-ended sein? Wenn du eh zwischen jedem Signal eine Masse 
spendieren würdest, dann kannst doch gleich ein LVDS-Pärchen daraus 
machen.

von Matthias F. (flint)


Lesenswert?

Ich habe auf dem Testboard leider nur eine 3,3 V Bank zur Verfügung, auf 
die ich halbwegs leicht hinkomme. Beim DUT Board könnte man die I/O Bank 
auf 2,5 V umstellen, beim Testboard geht das leider nicht.

Ich bin noch dazu leider draufgekommen, dass ich mich verschaut habe und 
beim Testboard werde ich auch das DCI nicht mit dem von mir genannten 
"Hack" benutzen können.

Im schlimmsten Fall könnte ich wahrscheinlich auch noch dieses 
Testdesign einfach ins eigentliche Test-FPGA dazugeben und die externen 
Signale eben intern routen. Platz genug wäre in dem DUT FPGA. Wenn ich 
so darüber nachdenke vielleicht eh die bessere Wahl ... jetzt habe ich 
aber eh noch 2, 3 Tage Implementierung des Testdesigns vor mir.

lg
Matthias

von Matthias F. (Gast)


Lesenswert?

Update: Ich will die Signale, wenn es geht, noch immer auf das zweite 
Board führen. Aus unserer Elektronikabteilung habe ich ein Cat 5e 
Ethernet Kabel bekommen, damit kann ich 5 Signalleitungen und 3 GND 
führen. Ich habe die 3 höherfrequenten mit den verdrillten Paaren auf 
GND geführt, die beiden anderen niederfrequenten sind in einem Paar (es 
hat typischerweise nur eines der beiden eine Flanke, darum hoffe ich, 
dass das jeweils andere das Übersprechen packt). An die beiden Signale, 
die nicht DCI können, habe ich einen 100 Ohm als source termination 
gelötet.

Lage ist, dass 4 MHz sehr ordentlich ausschauen, bei 30 MHz Taktsignal 
bekomme ich aber nur mehr einen Spannungshub von 1V peak-to-peak mit 
Mittelwert bei ca 1.7V, es schaut also so aus, würden die Reflexionen 
alles überdecken. Die 3.3V bei 4 Mhz haben auch eine grauenhaft 
schlechte rise time. Aber andererseits habe ich noch keine Last dran. 
Ich will jetzt die Ausgangssignale vom Testdesign wieder in dieses 
zurückschleifen und damit eine LED ansteuern, damit bekomme ich evtl ein 
Gefühl, wie schlecht das ganze ist, wenn es auf einen CMOS 
Eingangspuffer trifft.

Alles sehr spannend, gottseidank bin ich in einer Firmensituation, wo 
ich solche Spielereien machen kann.

lg
Mathias

von Matthias F. (flint)


Lesenswert?

Hmm, irgendwie komme ich da nicht mehr weiter. Bei höheren Frequenzen 
kriege ich die Dämpfung des Taktsignals nicht weg, anscheinend können 
die FPGA Ausgangstreiber schon nicht so schnell schalten, wie ich es 
gerne hätte oder bräuchte. Evtl wären eigene externe Treiberbausteine 
ein Weg, oder ich muss es doch in den FPGA zum DUT Design dazupacken. :(

lg
Matthias

von Schrotty (Gast)


Lesenswert?

So eine Leitung hat ja auch ne gewisse Kapazität. Und wenn die 
Treiberleistung deines Ausgansports nicht ausreichend ist, die Kapazität 
schnell genug umzuladen, dann "verwischt" es dir eben das Signal.

Daher Treiberleistung hochdrehen.

von Matthias F. (flint)


Lesenswert?

Ich habe die Treiberleistung auf die maximalen 24 mA gestellt und SLEW = 
FAST. Das hat aber nichts gebracht.

Anscheinend haben die Leiterbahnen auf dem Board vom FPGA bis zur 
Stiftleiste einfach eine Grenzfrequenz von gerade mal ein paar MHz (bei 
4 MHz passt die Spannnung, bei 32 hab ich -10 dB Abfall). Insofern habe 
ich ja auch noch das Problem, dass selbst wenn das DUT einen 60 MHz Takt 
schön liefern kann und der auf der Stiftleiste für mich schön ausschaut 
ist das was der FPGA dann sieht wohl nicht mehr als Takteingang 
geeignet.

Die Taktfrequenz runterstellen macht auch keinen Sinn, weil ich dann im 
DUT Design so viel ändern muss, dass ich wahrscheinlich erst einen 
Fehler mache.

lg
Matthias

von Schrotty (Gast)


Lesenswert?

>Anscheinend haben die Leiterbahnen auf dem Board vom FPGA bis zur
>Stiftleiste einfach eine Grenzfrequenz von gerade mal ein paar MHz

Du hast von deinem FPGA bis zur Stiftleiste (an der nichts angeschlossen 
ist) eine Dämpfung von 10dB auf dem Signal bei 32 MHz???

Das kann ich ja kaum glauben. 32 MHz kann man über ein paar cm 
Leiterbahn ohne Probleme übertragen, solange man das Signal natürlich 
nicht belastet.

Oder hast du bei der Messung bereits das Flachbandkabel angeschlossen?

Wie lange ist das überhaupt?

von Matthias F. (flint)


Lesenswert?

Ich habe verschiedene Messungen durchgeführt, am Anfang habe ich mal nur 
das Oszi an einen Pin gehängt, auf dem ich den 31.25 MHz Takt ausgegeben 
habe, GND Verbindung war bei allen Messungen auf einem GND-Pin auf 
dieser Stiftleiste. Da habe ich schon die erwähnte Dämpfung gehabt, 
dachte aber noch, dass das Reflexionen sind. Dann habe ich diverse 
Kombinationen ausprobiert, über einen Widerstand (ich kann ja die DCI 
Terminierung nicht nutzen), mit Kabel dran (das jetzt übrigens kein 
Flachbandkabel sondern ein Ethernetkabel Cat5e mit Länge ca 50 cm ist) 
und mit selbstgelöteten Steckern und über das Kabel rückgeschliffen in 
einen FPGA-Eingang auf dem Testboard, damit nicht einfach alles nur 
reflektiert wird (da konnte ich wenigstens eine deutliche Verbesserung 
der rise time beobachten). Immer sind die Spannungen, die rauskommen, im 
selben Bereich, daher mache ich entweder bei der Messung etwas falsch 
(aber ich wüsste nicht was) oder das Problem liegt wirklich schon auf 
der Platine.

lg
Matthias

von Schrotty (Gast)


Lesenswert?

Das klingt alles sehr merkwürdig..
Also heisst es nun, schrittweise vorgehen.

1. Hängen die Stiftleisten direkt an deinen PFGA-Pins oder ist an dem 
Netz noch was anderes angeschlossen (Widerstand, Kondensator, 
Induktivität,....)

2. Sind die FPGA-Pins richtig konfiguriert und passt auch die 
Versorgungsspannung der Bank?

3. Kann es sein, dass du falsch misst? Stichwort: Aliasing beim DSO

4. Sehen die Flanken an anderen FPGA-Pins genauso verkorkst aus?

5. Bandbreitenbegrenzung im DSO ausgeschaltet?

6. Tastkopfteiler richtig eingestellt?

7. Wieviel pf hat dein Tastkopf?

8. Welche Bandbreite hat dein Oszi? (Es gibt immer noch Krücken, die nur 
20 MHz können)

9. Nochmal, wenn sichergestellt ist, dass alles oben geklärt ist, an der 
Stiftleiste messen OHNE irgendwelche angeschlossenenen Kabel.

10. Kannst du von dieser Messung eine Aufnahme machen und die mal 
posten?

von Matthias F. (flint)


Lesenswert?

Danke Schrotty, es war doch ein Messfehler, ich habe einfach nicht 
darauf geachtet, dass ich den Tastkopf bei 10x Teilung betreibe sondern 
habe ihn bei 1x Teilung betrieben, wo er nur 6 MHz Bandbreite hat. Ein 
dummer Fehler, möge er mir eine Lehre sein.

lg
Matthias

von Schrotty (Gast)


Lesenswert?

Kein Problem, Matthias :-)

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.