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?
@ 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
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.
@ 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
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.
Halt bei den LVDS Leitungen habe ich natürlich Abschlüsse DIFF_TERM = TRUE Aber nur da
@ 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
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
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
Oh entschuldigung ich meinte natürlich @Falk das kommt davon wenn man immer so hektisch ist!
@ 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
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
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.
@ 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
@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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.