mikrocontroller.net

Forum: FPGA, VHDL & Co. Timing Probleme durch Pullups


Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Halt bei den LVDS Leitungen habe ich natürlich Abschlüsse

DIFF_TERM = TRUE

Aber nur da

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh entschuldigung ich meinte natürlich @Falk

das kommt davon wenn man immer so hektisch ist!

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh Oh wenn das die Temperatur ist schreie ich!

das mit den FF werde ich mal versuchen. Naja und die Constrains einfach 
mal anziehen und ihm sagen er soll es 1000 mal versuchen und hoffen.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.