Hallo allerseits. Ich habe eine FPGA-Platine WaveShare CoreEP4CE10 (http://www.amazon.com/WaveShare-CoreEP4CE10-EP4CE10F17C8N-Development-Interface/dp/B00KM70BCI). Das Board funktioniert eigentlich ganz gut, da läuft gerade ein einfaches (VHDL-)Programm. Nun wollte ich wissen wie die Laufzeitverzögerungen bei mir sind und bin ein bisschen durcheinander. Der Quartus TimeQuest sagt mir: "Propagation delays für Schaltsignale (rising-to-rising oder falling-to-falling Flanken) um 8 ns". Wenn ich es aber mit einem Oszi (Genauigkeit max. +-2ns) messe, bekomme ich die Verzögerung 29 ns. Meine Fragen an Kenner: 1. Warum so ein großer Unterschied? 2. Kann man überhaupt die Zahlen aus dem TimeQuest ernsthaft wahrnehmen? Die entstehen doch nicht aus den Messungen, sondern nur analytisch, oder? Sorry wenn die Fragen naiv klingen, habe wenig Erfahrung. Danke im Voraus, wenn jemand da weiterhelfen kann.
Jetzt hast du schon so ein schönes Oszi mit großem Schirm, und stellst es so ein, dass man die Flanken mit der Lupe suchen muss... Guck mal, ob es Optimierungseinstellungen gibt, die evtl. auf "möglichst wenig Gatter" statt "Speed" eingestellt sind. Und wie sieht denn dein VHDL Programm aus? Du wirst vermutlich ein Signal A mit einer Clock CLK sampeln, und an Ausgang B ausgeben. Dazwischen liegt natürlich bis zu 1 Clock-Zyklus.
Joe F. schrieb: > Jetzt hast du schon so ein schönes Oszi mit großem Schirm, ;) nur gelegentlich, durch Gutmutigkeit des Besitzers. > und stellst > es so ein, dass man die Flanken mit der Lupe suchen muss... Auf dem Bildschirm sah's gut aus :). Damals, wo ich den Zugang zu dem Oszi hatte. > Guck mal, ob es Optimierungseinstellungen gibt, die evtl. auf "möglichst > wenig Gatter" statt "Speed" eingestellt sind. naja, es ging nach meinem Verständnis um etwas anderes. meine eigentliche Frage ist "warum trotz dem, dass mir das Synthesetool 8ns Laufzeitverzögerung zeigt, ist es bei Oszi 29ns". Mich wundert nicht die Größe des Versatzes, sondern diese Unterschiede. und natürlich die zweite Frage: "kann man den Werten aus dem TimeQuest vertrauen?". > Und wie sieht denn dein VHDL Programm aus? > Du wirst vermutlich ein Signal A mit einer Clock CLK sampeln, und an > Ausgang B ausgeben. eigentlich ist es ein ungetaktetes Tri-State-Buffer: a_aus <= a_in when b_in = '1' else 'z';
Auf Deinem Oszibild fehlt mir irgendwie klar und deutlich die Zeitangabe (typisch Tektronix, könnte ich jetzt sagen). Außerdem schaut es so aus, als ob die Anstiegszeit gemessen wird. Versuch die Aufnahme nochmal ohne Zoom, dafür mit richtig guter Zeitauflösung, so dass beide Flanken gerade noch so auf den Schirm passen. Die 'Messungen' werden fast immer auf den Bildschirmdaten gerechnet. Wenn da die Zeitauflösung schlecht ist, weil gezoomt (=interpoliert) wird, kann die Messung nicht überzeugen. IL schrieb: > meine eigentliche Frage ist "warum trotz dem, dass mir das Synthesetool > 8ns Laufzeitverzögerung zeigt, ist es bei Oszi 29ns". Mich wundert nicht > die Größe des Versatzes, sondern diese Unterschiede. Berücksichtigt Dein Tool die Verzögerung der Eingangs- und Ausgangsstufen? Bei schnellen Bausteinen liegt die in der Größenordnung von 1 bis 2 ns, bei langsameren eher in Richtung 8 ns. Welche Last hast Du am Ausgang angeschlossen? Duke
Duke Scarring schrieb: > Außerdem schaut es so aus, als ob die Anstiegszeit gemessen wird. Naja, ich gehe davon aus, dass der TO den Marker je auf den Beginn des Anstiegs der beiden Signale gesetzt hat, und so auf die 29ns kommt. Dummerweise pass diese Zeit auch sehr gut zur Signalanstiegszeit (sowohl Eingang als auch Ausgang). Ich würde erwarten, dass auch genau hier die Diskrepanz zu suchen ist. Ich denke es ist nicht wirklich zielführend, so lahme Flanken zur Zeitmessung beizuziehen. Der Propagation-Delay wird normalerweise als Zeit von X% des Eingangspegels bis Y% des Ausgangspegels angegeben, oft auch unter der Bedingung einer maximalen Anstiegszeit und/oder maximalen Last. Du solltest diese Parameter in Erfahrung bringen, und mit Deinem Setup vergleichen.
P. K. schrieb: > Ich denke es ist nicht wirklich zielführend, so lahme Flanken zur > Zeitmessung beizuziehen. So ist es. Der Eingang schaltet ja nicht um, sobald man am Oszi den Start der Flanke erkennt, sondern erst, wenn das Signal einen High-Pegel annimmt. Und das ist irgendwo in der Mitte der Flanke (also rund 15ns hinter der Position des ersten Cursors). @IL: vielleicht kommen die schlappen Flanken ja erst durch deine Messung zustande: an Kanal 2 (Ausgang) hast du z.B. ein Bandwidth Limit eingestellt, die gemessene Flanke wird dadurch schlapper dargestellt, als sie tatsächlich ist. Außerdem arbeitest du mit 250MS/s, du hast also nur einen Messpunkt alle 4ns. Da wird es schwer, eine 8ns Verzögerung sinnvoll aufzulösen. Auch an Kanal 1 (Eingang) kann die Messung die Flanke tatsächlich verzögern (nicht nur deren Darstellung auf dem Oszi). Was für einen Tastkopf hast du zur Messung benutzt, mit wie viel pF belastest du das Signal bei der Messung? Duke Scarring schrieb: > Auf Deinem Oszibild fehlt mir irgendwie klar und deutlich die Zeitangabe > (typisch Tektronix, könnte ich jetzt sagen). die eigentliche Messung (oben) hat 4µs/DIV, der Zoom (unten) 200ns/DIV
Sorry, ich war gestern nicht da, habe gerade auch begrenzte Möglichkeit hier zu sein. Ich hatte nicht erwartet, dass jemand noch antwortet. Danke erst mal an alle, die diese Erwartung widerlegt haben. IL schrieb: > Wenn ich es aber mit einem Oszi (Genauigkeit max. +-2ns) messe, bekomme > ich die Verzögerung 29 ns. ja, 4ns, nicht 2 ist die Auflösung, mein Fehler. Duke Scarring schrieb: > Berücksichtigt Dein Tool die Verzögerung der Eingangs- und > Ausgangsstufen? Wenn ich die Beschreibung vom altera's TimeQuest richtig verstanden habe, dann ja. Aber ich kann mich verwirren. Duke Scarring schrieb: > Bei schnellen Bausteinen liegt die in der Größenordnung von 1 bis 2 ns, > bei langsameren eher in Richtung 8 ns. Altera's Cyclone IV ist der Stein. Anscheinend gehört er zu langsamen... Duke Scarring schrieb: > Welche Last hast Du am Ausgang angeschlossen? Standartwert für Ausgangswiderstand (wenn Du das meinst) ist 50 Ohm, ich habe ihn nicht geändert. sonst gab es keinen Last: der Ausgang des FPGA's -> eine Kabelbrücke -> eingelöteter Stecker -> Oszikopf P. K. schrieb: > Naja, ich gehe davon aus, dass der TO den Marker je auf den Beginn des > Anstiegs der beiden Signale gesetzt hat, und so auf die 29ns kommt. Genau so ist es P. K. schrieb: > ... unter der Bedingung einer maximalen Anstiegszeit und/oder maximalen > Last. Du solltest diese Parameter in Erfahrung bringen, und mit Deinem > Setup vergleichen. Danke Dir für den Tipp! Achim S. schrieb: > Der Eingang schaltet ja nicht um, sobald man am Oszi den > Start der Flanke erkennt, sondern erst, wenn das Signal einen High-Pegel > annimmt. Und das ist irgendwo in der Mitte der Flanke (also rund 15ns > hinter der Position des ersten Cursors). oh. OH. Ja, wenn Du es schreibst, ist es so offensichtlich, dass ich mich nur frage: wie konnte ich nicht daran gedacht zu haben? Danke Dir für die Erklärung. Achim S. schrieb: > an Kanal 2 (Ausgang) hast du z.B. ein Bandwidth Limit > eingestellt Nicht das ich wüsste. Woran siehst Du das? Ich sehe für Kanal 1 die Bandbreite "Voll" und kann mich nicht daran erinnern, dass ich es bei Kanal 2 anders gemacht habe. (wie gesagt: der Oszi steht nicht bei mir in der Nähe, ich habe dort nur gelegentlich den Zugang). Achim S. schrieb: > Was für einen > Tastkopf hast du zur Messung benutzt TEK 6139 A. 1:10, 8.0pF, bis 500MHz, 10 MOhm, 300V. > mit wie viel pF belastest du das Signal bei der Messung? ich riskiere jetzt als ganz Beginner auszusehen (bin ich auch), aber ich habe keine zusätzlichen Kapazitäten verwendet. Oder habe ich die Frage falsch verstanden?
IL schrieb: > Nicht das ich wüsste. Woran siehst Du das? Ich sehe für Kanal 1 die > Bandbreite "Voll" und kann mich nicht daran erinnern, dass ich es bei > Kanal 2 anders gemacht habe. Das sieht man in der Anzeige der Einstellungen zu Kanal 2 unterhalb des Zoom-Fensters. Neben den "2 5.00V" steht ein "BW", das meiner Meinung nach anzeigt, dass die Bandwidth limitiert wurde. IL schrieb: > aber ich > habe keine zusätzlichen Kapazitäten verwendet. Oder habe ich die Frage > falsch verstanden? es geht tatsächlich nicht um zustäzliche Kapazitäten, sondern um die kapazitive Belastung, die sich durch Tastkopf und Oszi ergibt (du hast ja wahrscheinlich an der Pfostenleiste gemessen, und das Signal "endet dort", oder?). Es gibt Leute, die benutzen einen Tastkopf ohne Teiler und belasten das Signal dadurch mit rund 100pF, was eine ziemliche Bremse wäre. Dein Tek6139A ist mit seinen 8pF schon gar nicht so schlecht. Ich verstehe nicht wirklich, wieso das Augangssignal dann so langsam ansteigt (außer das BW-Limit von Kanal 2 stünde auf 10MHz, dann würde es halbwegs passen).
Tipp: Setz den zweiten Tastkopf auf den ersten und schau ob beide Kanäle das gleiche Messen. Dann gibt es 3 Möglichkeiten: 1. du erkennst ein Zeitverzögerung, dann liegt es an den Tastköpfen 2. Signal verzerrt sich -> Tastköpfe haben starken Einfluss 3. alles gleich = alles ok am Messsystem :)
Achim S. schrieb: > Das sieht man in der Anzeige der Einstellungen zu Kanal 2 unterhalb des > Zoom-Fensters. Neben den "2 5.00V" steht ein "BW", das meiner Meinung > nach anzeigt, dass die Bandwidth limitiert wurde. Wahrscheinlich hat es mit der 5V-Begrenzung zu tun? Für 3,3V -Signale habe ich 5V Obergrenze gestellt. Aber ich bin mir nicht sicher, nur als eine Idee. Achim S. schrieb: > du hast > ja wahrscheinlich an der Pfostenleiste gemessen, und das Signal "endet > dort", oder? Ja, ein Kopf war am Sender (verzweigt durch eine Steckplatine), der andere war praktisch direkt mit dem FPGA-Ausgang verbunden. Achim S. schrieb: > Ich verstehe > nicht wirklich, wieso das Augangssignal dann so langsam ansteigt (außer > das BW-Limit von Kanal 2 stünde auf 10MHz, dann würde es halbwegs > passen). Ehrlich gesagt - ich habe erst jetzt den Ausmaß des Unterschieds gemerkt. Jetzt will ich es auch wissen. :) Es kann natürlich sein, dass ich bei den Einstellungen der Ausgangsstufe irgendwas verwechselt habe. Ich schaue das nach. Sollte irgendwas kapazitives sein. Und an dem Oszi sollte ich auch die Einstellungen prüfen, wenn ich wieder dort bin. Klakx schrieb: > Tipp: Setz den zweiten Tastkopf auf den ersten und schau ob beide Kanäle > das gleiche Messen. Dann gibt es 3 Möglichkeiten: > > 1. du erkennst ein Zeitverzögerung, dann liegt es an den Tastköpfen > 2. Signal verzerrt sich -> Tastköpfe haben starken Einfluss > 3. alles gleich = alles ok am Messsystem :) Danke für den Tipp, aber ich habe es mit den Köpfe damals schon gemacht, wegen etwas anderes. Hat nicht viel geholfen, alles schien ok sein am Messystem. Ganz gleich war es nicht, aber sah relativ ähnlich aus. Es ging um folgendes: Ich hatte an dem Tag auch ein schnelleres, 25MHz-Signal gemessen und Kanal 2 hat mir etwas komisches gezeigt: Amplitude 500mv anstatt 3,3V. Aber nach dem Tausch der Köpfe war es nicht viel anders. Obwohl der Multimeter an dem Pin 3,3V zeigt. Bestimmt habe ich etwas mit Einstellungen am Oszi falsch gemacht. Sonst war das System Ok.
IL schrieb: > Wahrscheinlich hat es mit der 5V-Begrenzung zu tun? Für 3,3V -Signale > habe ich 5V Obergrenze gestellt. Begrenzung/Obergrenze sind hier ungeschickte Begriffe. Die 5V sind die Empfindlichkeitseinstellung (ein Kästchen auf dem Bildschirm entsprechen 5V). Geschickt wäre bei einem 3,3V Signal sowas wie 1V/DIV (1 V pro Kästchen) oder 500mV/DIV. Dann deckt deine Messung immer noch einen Bereich von 10V bzw. 5V ab (weil das Oszi 10 Kästchen in y-Richtung hat). Das "BW" steht ziemlich sicher dafür, dass ein Bandbreitenlimit gesetzt war (dass das gemessene Signal also künstlich "ausgebremst" wurde. Das ist unabhängig von der 5V Einstellung, es sind halt nur beides Einstellungen an Kanal 2). Auch bei der Zeitablenkung wäre es geschickt, wenn du nicht erst einen Riesenzeitbereich von vielen µs aufnimmst und dann später auf ns-Ebene reinzoomst. Stelle den Trigger auf die Flanke und nimm insgesamt nur ein paar 100ns auf. Dann bekommst du auch eine höhere Abtastrate als die 250MS/s, die für solche Messungen schon sehr niedrig sind. Die Kurve wird zwar interpoliert, aber nochmal: du hast bei der bisherigen Einstellung nur einen einzelnen Messpunkt alle 4ns. Joe F. hatte seinen Hinweis wohl ähnlich gemeint: Joe F. schrieb: > Jetzt hast du schon so ein schönes Oszi mit großem Schirm, und stellst > es so ein, dass man die Flanken mit der Lupe suchen muss...
Ja, das Maximum -- 2ns -- ist besser, als 4. Auch die Anzahl der Samples pro Sekunde ist wichtig. Jetzt muss ich noch finden, wo diese Bandbreite eingestellt werden kann.
Auf jeden Fall habe ich heute was dazugelernt bzw. besser verstanden. Danke Dir!
Wenn jemand das Thread noch lesen wird: hier ist das neue Oszi-Bild. Tja, anscheinend waren es am Anfang wirklich falsche Einstellungen :( Und was die Sache betrifft, dass bei flachen Flanken die Einsen später erkannt werden, ist wahrscheinlich hier doch nicht der Fall. Mein Tristate-Buffer ist ungetriggert, der Eingang wird direkt zu einem der Ausgänge gegeben. Sodurch geht es nicht um die Erkennung von Einsen und Nullen.
Bei solchen Messungen empfiehlt es sich, sämtliche ach so hübschen Interpolationsalgorithmen auf dem Oszi abzuschalten, die Markierung für die Abtastpunkte einzuschalten und die Abtastrate auf Single-Shot Maximum zu setzen. Dann fällt es wesentlich leichter, zu beurteilen, welche Datenbasis zur Schätzung der Flankenlage überhaupt zur Verfügung steht. Kann das Oszi nicht mehr als 250MSa/s? Bei einem so schönen, bunten Bildschirm würde mich das wundern.
IL schrieb: > Mein > Tristate-Buffer ist ungetriggert, der Eingang wird direkt zu einem der > Ausgänge gegeben. Sodurch geht es nicht um die Erkennung von Einsen und > Nullen. Es geht doch um ein digitales Bauteil, oder? Klar unterscheidet das, ob am Eingang eine Null oder eine Eins anliegt und treibt dann den entsprechenden Wert nach außen. Das ist kein Operationsverstärker, der das Einganssignal linear auf den Ausgang abbildet. Das hat nichts damit zu tun, ob die digitalen Daten erst eingetaktet werden (das meinst du wahrscheinlich mit "ungetriggert"). Dein Signal wird auf der Zeitachse kontinuierlich verarbeitet (also nicht eingetaktet), auf der Spannungsachse ist es aus FPGA-Sicht aber immer noch wertediskret (Null oder Eins). Es gibt auch Ausnahmen davon (z.B. die Logikfamilie 74CB**, die einfach nur ein passgate zwischen Eingang und Ausgang schaltet), aber ich glaube nicht, dass du so etwas in deinem FPGA zwischen Eingang und Ausgang hast. IL schrieb: > Tja, anscheinend waren es am Anfang wirklich falsche Einstellungen Die Einstellungen für Tastkopf und Bandwidth Limit sind jetzt besser. Die für die Zeitachse sind aber immer noch nicht ideal. Du interessierst dich für Vorgänge auf der ns-Zeitskala, aber du misst einen Zeitbereich von 40ms (also über tausend mal mehr, als relevant wäre). Weil dein Oszi "nur" 10 Mio Messwerte aufnimmt, hast du weiterhin nur einen Abtastpunkt alle 4ns. Genau wie Wolfgang schreibt schaust du dir im Wesentlichen nur die Interpolation an, die Abtastpunkte (d.h. die tatsächlich gemessenen Werte) sind sehr, sehr weit auseinander. Die eigentliche Messung ist der schmale Streifen oben auf dem Bildschirm (PreVu). Mit dessen Einstellungen legst du fest, was deine Messung wert ist. Der Haupbildschirm unten ist dann nur der (40tausendfache) Zoom in die Messung oben. Du musst die Messung "oben" richtig einstellen, nur dann kannst du unten was vernünftiges sehen. Das Ändern des Zoofaktors macht die eigentliche Messung nicht besser. Nur wenn du oben statt "H 4.00ms" etwas stehen hast wie "H 4.00µs" (oder noch besser "H 100ns"), dann bekommst du eine Samplerate >GS/s und dann kannst du Anstiegszeiten im ns-Bereich sauber bewerten. Falls der Trigger nicht sauber laufen sollte, setze seine Schwelle von 3V runter auf 2V. Außerdem gehe bitte für beide Kanäle von den 5V/Div auf 1V/Div. Damit wird die Messung dann auch in y-Richtung wenigstens halbwegs bildschirmfüllend und man braucht keine Lupe zum Erkennen der Flanke ;-)
Sorry für späte Antwort, hatte gestern/heute unerwartet keine Zeit. Wolfgang schrieb: > Bei solchen Messungen empfiehlt es sich, sämtliche ach so hübschen > Interpolationsalgorithmen auf dem Oszi abzuschalten, die Markierung für > die Abtastpunkte einzuschalten und die Abtastrate auf Single-Shot > Maximum zu setzen. Ja, Du hast absolut Recht. Ich kannte mich mit dem Gerät nicht so gut aus, habe den Zugang ohne Vorführung bekommen. Dadurch die nicht-optimalen Einstellungen. :( Wolfgang schrieb: > Kann das Oszi nicht mehr als 250MSa/s? Bei einem so schönen, > bunten Bildschirm würde mich das wundern. Das Gerät kann auf jeden Fall mit GS/s arbeiten. Ich habe sogar ein anderes Signal mit 2,5 GS/s gemessen. Und bis ihr mir darauf hingewiesen habt, war ich dummerweise voll Überzeugung, dass es bei allen Bilder so ist.
Achim S. schrieb: > Klar unterscheidet das, ob > am Eingang eine Null oder eine Eins anliegt und treibt dann den > entsprechenden Wert nach außen. Das ist kein Operationsverstärker, der > das Einganssignal linear auf den Ausgang abbildet. Ich stelle mir nur schwer vor, wie dieses passier, wenn keine Flipflops, Schmitttrigger oder ähnliches auf dem Weg sind. Wie ich mir dachte, werden die Leitungen zwischen den Ein- und Ausgangstreiber direkt geschaltet. Die Signale (die sich natürlich im zulässigen Spannungsbereich der Treiber befinden, also 0 bis 3,3V) werden dann so wie sie sind einfach durchgeleitet. Soweit ich weiss ist es möglich, die Leitungen im FPGA entsprechend konfigurieren. Aber es ist nur eine Vorstellung - letzte Zeit habe ich mehrmals feststellen müssen, dass ich die Dinge im Leben falsch sehe :). Achim S. schrieb: > ... ob die digitalen Daten erst eingetaktet > werden (das meinst du wahrscheinlich mit "ungetriggert") Ja, ganz genau :) Achim S. schrieb: > auf der Spannungsachse ist es aus FPGA-Sicht aber immer > noch wertediskret (Null oder Eins). Ja, wie gesagt - ich muss noch dazulernen, um es richtig zu verstehen. :( Achim S. schrieb: > Du interessierst > dich für Vorgänge auf der ns-Zeitskala, aber du misst einen Zeitbereich > von 40ms (also über tausend mal mehr, als relevant wäre). Weil dein Oszi > "nur" 10 Mio Messwerte aufnimmt, hast du weiterhin nur einen Abtastpunkt > alle 4ns. Genau wie Wolfgang schreibt schaust du dir im Wesentlichen nur > die Interpolation an, die Abtastpunkte (d.h. die tatsächlich gemessenen > Werte) sind sehr, sehr weit auseinander. Tja, ich sage ehrlich - ich weiß nicht wie ich die Einstellungen wieder auf die alte Werte umgestellt habe. Es war am Anfang doch 1,25-2,5 GS/s und kleine Messbereiche. Naja, die Eile beim Messen ist kein guter Helfer. Achim S. schrieb: > Die eigentliche Messung ist der schmale Streifen oben auf dem Bildschirm > (PreVu). Mit dessen Einstellungen legst du fest, was deine Messung wert > ist. Der Haupbildschirm unten ist dann nur der (40tausendfache) Zoom in > die Messung oben. Du musst die Messung "oben" richtig einstellen, nur > dann kannst du unten was vernünftiges sehen. Das Ändern des Zoofaktors > macht die eigentliche Messung nicht besser. Dummerweise weiss ich es (zumindest nachdem Du mir es damals erklärt hast). In Theorie. Naja, hoffentlich mache ich keine so dummen Fehler mehr. Achim S. schrieb: > gehe bitte für beide Kanäle von den 5V/Div > auf 1V/Div. Damit wird die Messung dann auch in y-Richtung wenigstens > halbwegs bildschirmfüllend und man braucht keine Lupe zum Erkennen der > Flanke ;-) Vielen Dank Dir für die guten Hinweise!
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.