Wir haben eine Schaltung von einem alten FPGA (JG 2009) auf ein Neueres
(JG 2016) umgestellt und mussten feststellen, dass die Signalqualität
sich verschlechtert hat.
Dies ist bereits beim Einladen der alten VHDL-Schaltung, also ohne eine
Vergrösserung oder Erweiterung derselben, der Fall. Die Stromaufnahme
des Chips ist etwas größer, als bei dem alten, kleinen, was Ich als
normal einstufen würde, wegen a) besserer PLL und b) "längere" Taktnetze
und c) mehr Schaltgeschwindigkeit
Was mir aber nicht klar ist: Warum sind die Signale (bei gleichen
Signalstandards z.B. LVCMOS33) schlechter?
"Schlechter" heißt hier konkret mehr Überschwinger, trotzdem schlechtere
Anstiege und vor allem mehr Einfluss des Nachbarsignals.
Die Verdrahtung auf dem PCB ist praktisch die gleiche. Der Chip wurde
nur raus genommen und in einer Testversion genau so verdrahtet, also mit
ähnlich vielen GND-Anbindungen über LOW-PINs (zusätzlich zu den
eigentlichen GNDs) und auch der gleichen Anzahl von Block-Kondensatoren.
Kann es sein, dass die kleineren Strukturen im FPGA dazu führen, dass
mehr Schaltungsaufwand getrieben werden muss, um die IO-Leistung
hinzubekommen und damit intern mehr Verluste entstehen?
Was z.B. auffällig ist: Beim Laden des FPGAs mit der leichen
Geschwindigkeit, dauert es 50% länger (was bei 80% mehr Logik im Chip
plausibel ist) aber während er lädt, braucht er 30% weniger Strom, als
der alte. Ist das Teil aber geladen, braucht es 60% mehr Ruhestrom, ohne
Takte. D.h. die Leckströme sind größer.
Ich möchte jetzt die konkreten FPGAs nicht bennen, es geht mir nur um
das Verständnis, weil wir eh nicht drum herum kommen zu migrieren. Ich
nehme nur erstaunt zur Kenntnis, dass der Einsatz eines neueren FPGAs
nicht zwangsläufig beser ist.
Es gibt übrigens einen Testaufbau mit der kleineren Ausführung im
gleichen Gehäuse, die in etwa die gleiche Menge Logik hat, wie der alte
- auch da kann man sehen, dass Leckströme und Betriebsströme steigen und
die Signalqualität schlechter wird.
Und die nächste Frage hinterher:
Wir haben jetzt das Problem, dass die Signale SO schlecht sind, dass wir
entweder mehr stützen, mehr blocken oder das design verändern müssen.
Die nächste Frage wäre also, wie man das machen kann:
Die Kondensatoren auf und unter der Platine sind schon packedicht
gesetzt. Es sind nicht ganz so viele, wie in den Designvorschlägen, aber
es hat beim alten immer prima gereicht.
Ich würde jetzt darauf setzen, mehr Pins zusätzlich zu grounden.
Kommentar?
Welche Manahmen gäbe es nicht? Tiefpassfilter an die Ausgänge?
Unser Problem ist die nachfolgende Baugruppe und deren Eingänge /
Taktung und Empindlichkeit. Die soll nicht angefasst werden und bleiben,
wie sie ist.
Neu und modern heißt in der Tat nicht gleich gut!
Das habe ich leider auch schon festgestellt.
Um dir bei deinem konkreten Problem weiter helfen zu können, müsste man
aber schon ein paar mehr Details wissen.
- Hast du an allen unbenutzen Pins den internen Pullup aktiviert? (->
reduziert die Stromaufnahme)
- Was für Signale sind das (Bus?) Gleichzeitiges schalten vieler Pins
kann zu nem Ground-Bounce führen (ggf Slewrate verändern, falls
einstellbar)
Ich bin kein FPGA Fachmann, habe mit sowas noch nie gearbeitet.
Grundsätzlich muss man aber bei neueren Chip-Generationen, die kleinere
Strukuren aufweisen, mit steileren Schaltflanken rechnen, welche in etwa
die beschriebenen Probleme machen können (das ist nicht nur bei FPGAs
so).
Du schreibst allerdings, die flanken wären weniger steil? Das passt
irgendwie nicht dazu.
Karl schrieb:> Wir haben eine Schaltung von einem alten FPGA (JG 2009) auf ein Neueres> (JG 2016) umgestellt und mussten feststellen, dass die Signalqualität> sich verschlechtert hat.
Das neuere FPGA hat vermutlich schnellere Treiber und die dadurch
steileren Flanken sieht man auf grenzwertigen Layout durch die
Überschwinger.
Jetzt sagst du natürlich: "Ich sagte doch flachere Flanken!"
Aber das könnte sein, dass die steile Flanke so früh reflektiert wird,
dass diese Reflektion noch in die Flanke fällt und diese abflacht.
Zeig doch mal, wie die Signale aussehen. Ich gehe bei diesen Messungen
dann davon aus, dass da mit einer Massefeder gemessen wurde.
> Tiefpassfilter an die Ausgänge?
Sieh mal, ob du die Treiberstärke im neuen FPGA ändern kannst. Und wie
sich das auswirkt...
> Unser Problem ist die nachfolgende Baugruppe und deren Eingänge /> Taktung und Empindlichkeit. Die soll nicht angefasst werden und bleiben,> wie sie ist.
Serienterminierung hast du bei diesen Signalen hoffentlich schon drin?
Beitrag "Re: Kabelart für PWM-Übertragung"Beitrag "Re: Signalproblem bei langem Kabel"
Karl schrieb:> von einem alten FPGA (JG 2009) auf ein Neueres (JG 2016) umgestellt
Ist das dieselbe Chipfamilie? Oder was neueres mit kleinerer
Strukturbreite?
Duke
> Was mir aber nicht klar ist: Warum sind die Signale (bei gleichen> Signalstandards z.B. LVCMOS33) schlechter?
Zwei Gruende:
1. Wegen hoeherer Geschwindigkeit faellt ein ungenuegendes Layout
staerker auf.
2. Wegen hoeherer Geschwindigkeit braucht er beim Schalten ein besseres
Blocking/entkopplung an der Versorgung als der alte.
Olaf
Lothar M. schrieb:> Jetzt sagst du natürlich: "Ich sagte doch flachere Flanken!"> Aber das könnte sein, dass die steile Flanke so früh reflektiert wird,> dass diese Reflektion noch in die Flanke fällt und diese abflacht.
Sowas in der Art, ja. Denn:
Olaf schrieb:> 1. Wegen hoeherer Geschwindigkeit faellt ein ungenuegendes Layout> staerker auf.>> 2. Wegen hoeherer Geschwindigkeit braucht er beim Schalten ein besseres> Blocking/entkopplung an der Versorgung als der alte.
Die Taktgeschwindigkeit ist die gleiche.
Olaf schrieb:> 1. Wegen hoeherer Geschwindigkeit faellt ein ungenuegendes Layout> staerker auf
Drücken wir es mal freundlicher aus:
Ist ein zuvor ausreichendes Layout nun nicht mehr ausreichend.
Ich glaube, wenn wir lange genug auf den Nach-Nach-...-folger eines ICs
in unserem Design warten (sofern er denn im passenden Gehäuse verfügbar
wird), können wir das mit jedem Layout erleben.
Ich denke auch, dass es die Treiber sind. Gfs hilft es, den Strom runter
zu stellen. Bei Xilinx haben einige Bausteine QUIET_IO, was abhelfen
kann. Die Thematik ist nicht zu unterschätzen. Ich habe einen Fall, wo
glitches im FPGA nicht behandelt wurden und diese in einem neueren
Baustein zu derartigen spikes geführt haben, dass nachfolgende Eingänge
gekillt wurden, weil man auf Zwischenterminierung verzichtet hatte.
> Ich würde jetzt darauf setzen, mehr Pins zusätzlich zu grounden.
Das hilft nur bedingt, weil der Treiber einen endlich geringen
Widerstand hat und nur einen schlechten GND darstellt. Er kompliziert
aber den komplexen Ausgangswiderstand des Pins und damit die
Wellenreflektion. In seltenen Fällen kann das zu schlechteren
Ergebnissen führen, als ohne-
> Welche Manahmen gäbe es nicht? Tiefpassfilter an die Ausgänge?
Eher eine richtige serielle Terminierung.