Timing Probleme durch Pullups

Gast #635071
Lesenswert?
• ▲
▼
Moin,

habe ein Projekt das große Datenmenge mit einer relativ ordentlichen 
Frequenz auf einen Virtex 4 verarbeitet.

Immer wenn ich einen Pullup oder Pulldown im UCF setze bekomme ich 
timing Probleme. Wahrscheinlich weil mein Chip schon ziemlich voll ist 
(ca 70%)

Habt Ihr auch schon mal so etwas bemerkt? Wenn ja habt ihr eine Lösung 
gefunden?

Stellt ein Pullup oder Pulldown so viel Logik da, dass die Wege im 
Virtex sooo viel länger werden?
#635079
Lesenswert?
• ▲
▼
@ Jan (Gast)

>habe ein Projekt das große Datenmenge mit einer relativ ordentlichen
>Frequenz auf einen Virtex 4 verarbeitet.

ZAHLEN!

>Immer wenn ich einen Pullup oder Pulldown im UCF setze bekomme ich
>timing Probleme. Wahrscheinlich weil mein Chip schon ziemlich voll ist
>(ca 70%)

Niemals.

>Habt Ihr auch schon mal so etwas bemerkt? Wenn ja habt ihr eine Lösung
>gefunden?

Dein Problem ist ein anderes. Zu 100%.

>Stellt ein Pullup oder Pulldown so viel Logik da, dass die Wege im
>Virtex sooo viel länger werden?

Niemals. Die Pullups sind parallel in den IO-Zellen dran, da verlängert 
sich kein Timing. Ausserdem sind die so hochohmig (10k++), das 
interessiert niemanden.

MfG
Falk
Gast #635092
Lesenswert?
• ▲
▼
Hm komisch bzw. schade,

das ist nämlich die einzige Änderung die ich mache und mit habe ich 
Fehler und ohne nicht!!

Aus diesem Grund denke ich schon das das was mit den Pullup´s zu tun 
hat.

Mit Abschlüssen kann das ja wohl auch nichts zu tun haben oder?

Zu den Zahlen 200MHz bei ca 100MB/s.
#635131
Lesenswert?
• ▲
▼
@ Jan (Gast)

>das ist nämlich die einzige Änderung die ich mache und mit habe ich
>Fehler und ohne nicht!!

>Aus diesem Grund denke ich schon das das was mit den Pullup´s zu tun
>hat.

>Mit Abschlüssen kann das ja wohl auch nichts zu tun haben oder?

Kein Ahnung. Was für "Abschlüsse" hast du denn?

>Zu den Zahlen 200MHz bei ca 100MB/s.

Werd doch mal ein wenig konkreter und lass dir nicht alles aus der Nase 
ziehen.
Wie kommen die Daten in den FPGA? Busbreite, Takt etc.

MFg
Falk
Gast #635172
Lesenswert?
• ▲
▼
OK,

Abschlüsse habe ich keine! Also könnten doch Reflektionen entstehen?! 
Sonst kann ich mir keine Reim darauf machen warum warum der Pullup 
manchmal Fehler erzeugt.

Die Daten selber kommen über LVDS 8 Bit breite mit 200 MHz. zu einem 
Speicher mit 166 MHz und einer Busbreite von 32 Bit.

Allerdings kommen meine Steuersignale über normale IO´s mit 50 MHz. wenn 
ich diese nicht abschließe und ich meine steuerlogik nicht angeschlossen 
habe ziehen die Pinne sich Dreck rein und brignen meine Steuerung 
durcheinander. Um dieses zu umgehen wollte ich Pullup´s anschließen. Mit 
dem Erfolg, dass ich manchmal Fehler habe. Und genau das kann ich mir 
nicht erklären.
#635235
Lesenswert?
• ▲
▼
@ Jan (Gast)

>Die Daten selber kommen über LVDS 8 Bit breite mit 200 MHz. zu einem
>Speicher mit 166 MHz und einer Busbreite von 32 Bit.

Das ist schon mal kein Kindergeburtstag mehr. Ich gehe mal davon aus, 
dass die Platine jemand anders entworfen hat.

>Allerdings kommen meine Steuersignale über normale IO´s mit 50 MHz. wenn
>ich diese nicht abschließe und ich meine steuerlogik nicht angeschlossen
>habe ziehen die Pinne sich Dreck rein und brignen meine Steuerung
>durcheinander.

50 MHz ist auch keine Eieruhr! Da muss man auch solide arbeiten. Layout 
und ggf. Terminierung.

> Um dieses zu umgehen wollte ich Pullup´s anschließen. Mit

Vollkommen sinnlos.

>dem Erfolg, dass ich manchmal Fehler habe. Und genau das kann ich mir
>nicht erklären.

Schon mal richtig (tm) gemessen wie die Signale aussehen?

MfG
Falk
Gast #635331
Lesenswert?
• ▲
▼
Hast Du Timingprobleme im FPGA? Wenn ja, dann können die PullUps schon 
was dafür. Die verbrauchen zwar keine Logik, aber die Contraints für 
FPGAs (IOs) können anders aussehen, somit wird anders optimiert -> 
unterschiedliche Annahmen bezüglich Laufzeiten -> Timingprobleme.
Genaueres weiß ich aber leider auch nicht. Vielleicht sagen ja die 
Datenblätter was dazu.


Gruß,

Kest
Gast #636471
Lesenswert?
• ▲
▼
Hallo,

@ Frank

>> Um dieses zu umgehen wollte ich Pullup´s anschließen. Mit

>Vollkommen sinnlos.

Naja mit einem Pullup kann ich die Eingänge ja einem definierten Wert 
zuweisen. Somit fange ich mir keine Störungen ein. Darum denke ich mal 
das es nicht vollkommen Sinnlos ist.

>>dem Erfolg, dass ich manchmal Fehler habe. Und genau das kann ich mir
>>nicht erklären.

>Schon mal richtig (tm) gemessen wie die Signale aussehen?

Signale sehen toll aus! Steile Flanken keine Einbrüche oder ähnliches.

So jetzt mal ne ganz doofe Frage wie sieht eine solche Terminierung bei 
normalen IO´s denn aus?

@ Kest

Jo die Timing Probleme sind im FPGA. Ohne Pullup´s habe ich keine 
probleme allo Constrains sind eingehalten und das Programm läuft. Mit 
Pullup´s allerdings verletze ich allerdings ein Constrain und es kommt 
zu manchmal Fehlern ca. alle 10.000.000.000 Byte.

Jetzt werde ich erst mal deiner Idee Folgen und ein bißchen lesen.

Danke an euch beiden.

Wenn Ihr noch Ideen habt ich sage nicht nein
#636489
Lesenswert?
• ▲
▼
@ Jan (Gast)

>>Vollkommen sinnlos.

>Naja mit einem Pullup kann ich die Eingänge ja einem definierten Wert
>zuweisen. Somit fange ich mir keine Störungen ein. Darum denke ich mal
>das es nicht vollkommen Sinnlos ist.

Wir reden doch über Eingänge, welche von aussen angesteuert werden. Und 
nciht welche in der Luft hängen.

>Signale sehen toll aus! Steile Flanken keine Einbrüche oder ähnliches.

Wie gemessen? Mit welchem Tastkopf und Oszilloskop?

>So jetzt mal ne ganz doofe Frage wie sieht eine solche Terminierung bei
>normalen IO´s denn aus?

Kommt drauf an. Bei 3.3V LVCMOS meist nur Serienterminierung.

>zu manchmal Fehlern ca. alle 10.000.000.000 Byte.

10 Gigabyte? Hmmm. Das kann auch ein Designfehler sein.

MFg
Falk
Gast #636511
Lesenswert?
• ▲
▼
Ich habe bei Altera z.B. Erfahrung gemacht, dass obwohl alle Timings 
eingehalten werden, das Verhalten von der Temperatur abhängen kann.

Es macht eventuell Sinn, die Contstrains auf "agressive" zu trimmen, 
irgendwas ähnliches muss doch bei Xilinx auch geben. Es kann natürlich 
auch Designfehler vorliegen, wie Falk sagt, aber als erstes würde ich 
alle Timingcontraint-Verletzungen eliminieren. Vielleicht hilft da 
einfach ein FF davor zu setzen, die Werkzeuge haben dann mehr Spielraum 
in der Platzierung.

Grüße,

Kest
#636542
Lesenswert?
• ▲
▼
@ Kest (Gast)

>Ich habe bei Altera z.B. Erfahrung gemacht, dass obwohl alle Timings
>eingehalten werden, das Verhalten von der Temperatur abhängen kann.

Dann hast entweder du was falsch gemacht oder Altera ihre ICs falsch 
vermessen. Was ist wahrscheilicher . . . ? ;-)

>auch Designfehler vorliegen, wie Falk sagt, aber als erstes würde ich
>alle Timingcontraint-Verletzungen eliminieren. Vielleicht hilft da

Dazu müsste man aber auch sämtliche Takte und IOs mit Timing-Constriants 
versehen bzw. diese auch real einhalten.

@ Jan (Gast)

>Oh Oh wenn das die Temperatur ist schreie ich!

Wenn es schon bei Raumtemperatur Probleme hat, dann läuft es auf dem 
letzten Loch. Kann man aber leicht testen. Einfach in den Klimaschrank 
und hochheizen, so bis 70..85 Grad.

>mal anziehen und ihm sagen er soll es 1000 mal versuchen und hoffen.

Wenn es ein grösseres Design ist willst du sicher nicht wochenlang auf 
den 1000 Durchlauf warten.

MfG
Falk
Gast #636556
Lesenswert?
• ▲
▼
@Falk:
> Dann hast entweder du was falsch gemacht oder Altera ihre ICs falsch
> vermessen. Was ist wahrscheilicher . . . ? ;-)

Na ja, ich sag' mal so: wenn ich mit der Heißluftpistole FPGA erhitze, 
kommen die ersten Fehler. Mit dem Kältespray verschwinden diese. Die 
Setup und Holdzeiten verändern sich, das ist auch klar. Ich erwarte 
einfach, dass wenn ich in den Tools die Vorgaben mache, diese auch 
eingehalten werden. Lustig wird erst, wenn es bei 10 Boards läuft und 
bei einem zu Problemen führt.

Übrigens, Altera macht auch Fehler ;-) Die geben diese auch zu :-) 
Deshalb gibt es auch Service Packs mit neueren Timingconstrains für 
unterschiedliche Chips.

Grüße,

Kest

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