Forum: FPGA, VHDL & Co. Signalqualität beim FPGA verbessern


von Karl (Gast)


Lesenswert?

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.

von Karl (Gast)


Lesenswert?

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.

von Schlumpf (Gast)


Lesenswert?

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)

von M.A. S. (mse2)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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"

von Duke Scarring (Gast)


Lesenswert?

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

von Olaf (Gast)


Lesenswert?

> 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

von Karl (Gast)


Lesenswert?

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.

von Duke Scarring (Gast)


Lesenswert?

Karl schrieb:
> Die Taktgeschwindigkeit ist die gleiche.
Aber die Flankensteilheit nicht. Und die verursacht das Klingeln...

von M.A. S. (mse2)


Lesenswert?

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.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

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.

von Klakx (Gast)


Lesenswert?

Treiberstärke runter. Die neuen FPGAs sind schon besser,  und flinker.

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.