SSO-limits wie behandeln

Gast #3767144
Lesenswert?

Ich baue mit einem FPGA der praktisch alle IO-Pins permanent schaltet 
und bin auf die limitierte Zahl der gleichzeitig schaltenden Ausgänge 
gestoßen. Werden diese überschritten. ist laut Datenblatt mit erhöhtem 
jitter zu rechnen. Wieviel, darüber lässt man sich nicht aus.

Wie handhabe ich das nun?

Wird das bei der Simulation berücksichtigt, oder muss ich das im Kopf 
hinzuaddieren? Wie geht man da vor?
#3767261
Lesenswert?

Ich kenne mich da null aus aber kann man dann höher takten und dann 
nicht gleichzeitig sondern versetzt schalten? Also falls du noch nicht 
am Taktlimit bist. Wenn du den Takt verdoppeln könntest dann könntest du 
versetzt schalten und die Bits für doppelt so viele Takte gesetzt 
lassen.
Gast #3767336
Lesenswert?

Markus W. schrieb:
> Wie handhabe ich das nun?
Messen?

> Wird das bei der Simulation berücksichtigt,
Das kann ich mir nicht vorstellen.

> oder muss ich das im Kopf
> hinzuaddieren? Wie geht man da vor?
Wieviel Jitter erlaubt denn Deine Anwendung?
Wieviele Pins willst Du denn gleichzeitig schalten?
Und warum?

Hans
Gast #3767701
Lesenswert?

die Frage ist auch, wie werden diese gleichzeitig geschaltet.

1) Alle Pins von 0 auf 1, 1 auf 0.

2) Oder 50% der Pins von 0 auf 1, gleichzeitig die anderen 50% von 1 auf 
0?

Fall 1) ist sehr kritisch und hier muss auch dein Spannungsregler und 
vor allem deine Kapazitäten richtig an Ort und Stelle sein!

Fall 2) ist nicht so kritisch, da sich nach dem Schalten der Strom in 
der Summe mittelt.

Wie mein Vorredner schon fragte ist auch erstmal die Frage, was deine 
Rahmenbedingungen sind. Ist der erhöhte Jitter (5% oder 10% mehr) für 
dich wirklich von Interesse? Mir würde da eher Sorgen machen, dass die 
Spannungen zu sehr einbrechen ...

Es ist alles eine Frage des Designs.
Gast #3767882
Lesenswert?

Also hier die elektrischen Fakten:

- Es handelt sich um einen Spartan 6 FPGA.
- Es werden 8 parallele Wandler gesteuert, insgesamt 8x16 Datenleitungen
- Frequenz 125 MHz SDR
- Auslastung 100% = immer an
- Toggle Rate der Leitungen unbekannt, je nach Daten halt
- Die Ausgänge sind über alle 4 Banken verteilt; 2 Ausgänge pro Bank

Was mache ich gegen GND bounce? Mehr blocken?
#3767981
Lesenswert?

> Was mache ich gegen GND bounce? Mehr blocken?

Extern hilft da nichts, das Problem ist ja, dass beim Wechsel von 1 auf 
0 der interne GND ein deutliches Potential über dem echten GND bekommt 
und damit High-Pegel evtl. nicht mehr als solche erkannt werden.

Falls möglich, kannst du evtl. die Treiberstärke oder Slewrate ändern. 
Da gibts AFAIR auch irgendwo Tabellen, wo die Auswirkungen dazu drin 
stehen. Es ist auch möglich, unbenutzte IOs als Output mit fester 0 zu 
definieren und extern an GND zu hängen. Das gibt dann so einen halben 
GND-Pin mehr... Leider hat man oft keine IOs mehr übrig :/
Gast #3768004
Lesenswert?

Georg A. schrieb:
> Extern hilft da nichts, das Problem ist ja, dass beim Wechsel von 1 auf
> 0 der interne GND ein deutliches Potential über dem echten GND bekommt

Also eher ein statisches Problem, dass sich gar nicht durch jitter 
allein ausdrücken wird? Na prima! Zu meinem Erschrecken habe ich nun 
nämlich feststellen müssen, dass ich laut Tabelle nur ein Drittel der 
Ausgänge hätte bedienen dürfen. Ich werde also was tun müssen, fürchte 
ich.

Georg A. schrieb:
> Es ist auch möglich, unbenutzte IOs als Output mit fester 0 zu
> definieren und extern an GND zu hängen.
Das leuchtet mir ein, leider habe ich wenige IOs frei. Ich habe den 
kleinsten FPGA genommen. Das werde ich frühestens im redesign ändern 
können.

Momentan bleibt mir nur die Treiberleistung. Was stellt man denn da 
minimal ein? Ich treibe hochohmige Dateneingänge von den Wandlern über 
sagen wir durchschnittlich maximal 10cm Länge, eher weniger.
#3768092
Lesenswert?

> Also eher ein statisches Problem, dass sich gar nicht durch jitter
> allein ausdrücken wird? Na prima!

Es ist schon dynamisch *), die Induktivität zwischen internem und 
externem GND begrenzt beim schnellen "Entladen" der IO-Signale halt den 
möglichen Strom und sorgt damit für die interne Potentialanhebung. 
Jitter ist dann nur die sanfte Vorwarnung vor interner/externer 
Fehlfunktion wegen falscher Pegelerkennung. Mit Einführung der BGAs (vs. 
PQFP) ist das Problem zwar eigentlich kleiner geworden, leider sind es 
aber auch jetzt wieder mehr Pins, die man schneller schalten kann/muss 
;)
Gast #3768122
Lesenswert?

Aber "Quite IO" ist doch sicher viel zu langsam? Im Xilinx Forum wurde 
das mal thematisiert und darauf hingewiesen, dass es z.B. für LEDs sei. 
Bisher habe ich das auch nur dafür genutzt. Was anderes wäre das 
Stromlimit. Aber auch da bin ich nicht sicher, was ich einstellen kann.

Bisher habe ich immer mit 5mA-10mA und "Fast" getrieben. Wäre die Frage, 
wie ich das berechnen kann. Eine RC-Kurve klappt schon mal nicht:

Kapazitive Belastung 20 pF
Spannung zum Schalten 3V
Ladung auf der Leitung 60pC
Treiber 6mA
Dauer für Ladungsänderung = 10 ns

Was stimmt hier nicht?
Gast #3768165
Lesenswert?

Simulieren wäre sicher mal interessant, aber eigentlich würde ich es 
gerne abschätzen.

Irgendwie reicht es aber heute nacht nicht mehr mit dem Denken. Momentan 
kriege ich nicht mal die Lade-Entlade-Theorie mit der Realität zusammen. 
Bei den oben angenommenen Verhältnissen kann ich normal ohne Probleme 
100 MHz Signale treiben und der Pegel ist in deutlich kürzerer Zeit 
eingeschwungen, als 10ns. Eher ein Zehntel davon. Vielleicht überschätze 
ich aber auch die Leitungskapazität.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren