In meiner letzten Frage habe ich einige sehr interessante Antworten erhalten, die dazu geführt haben, dass ich viel über mein Design nachgedacht habe, ob ich überhaupt Abschlusswiderstände benötige oder nicht. Darüber hinaus haben mich das in dieser Antwort vorgeschlagene Design sowie die Antwort auf diese spezielle Frage dazu veranlasst, meinen Ansatz im Allgemeinen zu überdenken. Nun, das wird wahrscheinlich eine lange Frage, aber ich hoffe, dass jemand die Geduld hat, die Dinge zu lesen und zu klären. :)
Hintergrund
Ich arbeite seit einiger Zeit an einem Projekt, das unter anderem das Design und die Implementierung der Kommunikation zwischen einem FPGA und einer USB 3.0-Bridge, dem MachXO2 bzw. FT601, beinhaltet. Es ist mein erstes Hochgeschwindigkeitsdesign und ich möchte Erfahrungen und Einblicke in die Prinzipien dieser Art von Design gewinnen.
Ich habe den letzten Monat damit verbracht, eine große Menge Literatur zu studieren, einschließlich Ressourcen von hier , verschiedene andere Artikel aus glaubwürdigen Quellen (wie TI oder hier gestellte Fragen) sowie Herrn Bogatins Buch "Signal and Power Integrity - Simplified". Aus Zeitgründen habe ich nicht so tief studiert, wie ich möchte, aber ich denke, ich habe die grundlegenden Ideen. Mein Problem und meine Verwirrung liegt in der Anwendung dieser.
Erste Ansatz
Mein erster Ansatz zu diesem Thema bestand darin, die Daten, die ich für beide ICs habe, zu untersuchen, um festzustellen, ob ich der Integrität entkommen kann, indem ich die Spuren kurz genug halte. FT taktet mit 100 MHz, bietet aber keine Anstiegszeit. Auf der anderen Seite stellt der MXO2 eine IBIS-Datei für das Design bereit, die eine Anstiegszeit von 0,8 ns meldet, was auch als Anstiegszeit für FT sinnvoll erscheint. Für 0,8 ns meldet PCB Toolkit eine maximale Leiterbahnlänge von 1,25 Zoll. Obwohl ich eine solche Länge erreicht habe, waren die Spuren dicht gepackt, was zu einem erheblichen Übersprechen führen kann. Darüber hinaus zeigte die Simulation mit MXO2 IBIS für mein Design in Altium ein signifikantes Über- und Unterschwingen. Jetzt verstehe ich, dass dies möglicherweise nicht ganz korrekt ist, da ich kein richtiges IBIS für FT habe, aber es hat mich trotzdem alarmiert.
Abschluss von Rs
Sicherheitshalber habe ich mich für Vorwiderstände entschieden und die Leiterbahnen mit 50Ω abgeschlossen. Die Platine ist natürlich so ausgelegt, dass die jeweiligen Leiterbahnen eine Impedanz von 50Ω haben. Ich habe diesen Wert gewählt, weil Sie mit dem FT-Konfigurationsdienstprogramm die Pin-Treiberstärke auf 50 Ω konfigurieren können, sodass wir mit diesem Treiber in Ordnung sind, und MXO2 die Leitungen mit 3,3 V, 8 mA ansteuert, was nach dem, was ich gelesen habe, auch ungefähr 50 Ω entspricht. Auch die Tatsache, dass viele der Leitungen bidirektional sind, verwirrt die Situation noch mehr. Nach dem, was ich gelesen habe, müssen Bidir-Leitungen in beide Richtungen enden. Also habe ich Rs in meinem Design sowohl am Anfang als auch am Ende der Linien platziert, die Simulation erneut ausgeführt und ich habe einige glatte Kurven erhalten. Dann stellte ich meine vorherige Frage.
Meine Verwirrungsquelle
Nun fragen Sie sich vielleicht, warum ich das Terminierungsschema verwendet habe, da beide Treiber bei 50 Ω auszugeben scheinen. Und meine Antwort ist, weil ich die Impedanz jedes Empfängers nicht kenne. Und hier beginnt für mich die Verwirrung. Theorie und Zeug ist alles gut, aber ich stecke in der praktischen Anwendung fest.
Laut Theorie treten keine Reflexionen auf, wenn Zt, Zr und Z0 gleich (oder nahe beieinander) sind. Ich kenne Z0, seit ich es entworfen habe, aber was ist mit Zt und Zr? Und um die Dinge noch komplizierter zu machen, sind diese Leitungen bidirektional, sodass sie die Funktionalität wechseln.
Ich weiß, dass es für die FT 50 Ω sein kann, da Sie den Chip so konfigurieren können. Aber obwohl MXO2 bei LVCMOS33, 8 mA auch 50 Ω haben sollte, und der IBIS-Viewer berichtete, dass die Leitung tatsächlich viel weniger wie 25-30 Ω oder so hat, was die Sache für mich noch komplizierter macht.
Aber unabhängig von der IBIS-Datei (viele Anbieter bieten sowieso keine an), lässt sich meine Verwirrung auf diese einfachen und wahrscheinlich naiven Fragen zusammenfassen:
Ich habe die Datenblätter von beiden ICs. Wo steht geschrieben, impliziert oder kann die Eingangs-/Ausgangsimpedanz der Pins berechnet/extrahiert werden?
Ist die Ausgangsimpedanz dieselbe wie die Eingangsimpedanz für I/O-Pins?
Gibt die Spezifikation des Protokolls (in diesem Fall LVCMOS33) die I/O-Impedanz an?
Woher soll ein Designer wissen, dass die Impedanzen zwischen diesen beiden ICs übereinstimmen, sodass nur eine kontrollierte Leitung erforderlich ist?
Da das in meiner anderen Frage erwähnte Design keine Rs verwendet, ist die einzige vernünftige Antwort, die mir einfällt, dass wahrscheinlich das gesamte Design tatsächlich eine bestimmte Impedanz sowie die daran angeschlossenen FPGAs ist.
All das mag für einen erfahrenen Designer ziemlich trivial erscheinen, hat mich aber seit geraumer Zeit wirklich verwirrt. Wenn es mein Ruf zulässt, würde ich für diese Frage gerne ein Kopfgeld aussetzen. Ich habe gesucht, aber ich konnte auf keine Informationen landen.
Ich habe nicht Ihre gesamte Textwand gelesen, aber ich glaube nicht, dass die Antworten auf Ihre Fragen von viel von dem abhängen, was Sie geschrieben haben.
Ich habe die Datenblätter von beiden ICs. Wo steht geschrieben, impliziert oder kann die Eingangs-/Ausgangsimpedanz der Pins berechnet/extrahiert werden?
Verschiedene Anbieter haben unterschiedliche Konventionen für die Art und Weise, wie sie dies melden. Man könnte eine Ausgangsimpedanz melden. Man könnte einen melden Grenze. Man könnte ein typisches berichten Kurve. Sie müssen jedes einzelne Datenblatt lesen und sehen, wie sie ihren Chip spezifizieren.
Bei einigen Arten von ICs sind Eingangs- und Ausgangsimpedanzen überhaupt nicht angegeben.
Ist die Ausgangsimpedanz dieselbe wie die Eingangsimpedanz für I/O-Pins?
Nicht unbedingt. Bei einem digitalen Puffer würden Sie beispielsweise erwarten, dass die Eingangsimpedanz sehr hoch und die Ausgangsimpedanz sehr niedrig ist.
Gibt die Spezifikation des Protokolls (in diesem Fall LVCMOS33) die I/O-Impedanz an?
Ja, für CMOS können Sie eine "sehr niedrige" Ausgangsimpedanz erwarten, vielleicht einige Ohm. Und die Eingangsimpedanz wird von der Kapazität dominiert, die sehr oft angegeben wird.
Woher soll ein Designer wissen, dass die Impedanzen zwischen diesen beiden ICs übereinstimmen, sodass nur eine kontrollierte Leitung erforderlich ist?
Bei CMOS-Designs passen Sie die Impedanzen im Allgemeinen nicht an, sondern halten die Leitungen so kurz, dass es keine Rolle spielt. Ein Reihenwiderstand von wenigen Ohm an Treibern kann verwendet werden, um das Klingeln zu reduzieren, aber es wird immer noch kein tatsächlich angepasster Abschluss erwartet.
Eines habe ich aus deinem Text herausgegriffen,
Für 0,8 ns meldet PCB Toolkit eine maximale Leiterbahnlänge von 1,25 Zoll.
Eine Möglichkeit besteht darin, einen Vorwiderstand an der Quelle zu verwenden, um die Anstiegs- und Abfallzeiten zu erhöhen. Wenn Sie die Flankenzeit auf vernünftigere 2 ns (für eine Taktperiode von 10 ns) erhöhen, erhalten Sie eine maximale unübertroffene Spurlänge, mit der Sie viel einfacher arbeiten können.
Dies ist eine Punkt-zu-Punkt-Verbindung?
Dann ist die Quellenterminierung durch die Ausgangsimpedanz des Treibers wahrscheinlich alles, was Sie brauchen, wenn Sie den Treiber so konfigurieren können, dass er der Leitungsimpedanz entspricht (was sich so anhört, als könnten Sie dies tun).
Wenn beispielsweise der Treiber 50 Ohm und die Leitungsimpedanz 50 Ohm beträgt und einen CMOS-Eingang ansteuert (also im Wesentlichen ein leicht kapazitiver offener Stromkreis), erhalten Sie am Empfänger eine fast 100% ige Reflexion, was in Ordnung ist, da dies korrekt ist abgeschlossen durch die Ausgangsimpedanz des Treibers. Beachten Sie, dass die doppelte Spannung am Empfänger im Vergleich zu der sich in der Leitung ausbreitenden Spannung aufgrund des durch die Leitungsimpedanz und die Ausgangsimpedanz des Treibers gebildeten Teilers korrekt ist, offensichtlich sobald die Reflexion am Treiber ankommt und der stationäre Zustand beendet wird gilt und die Leitungsimpedanz nicht mehr relevant ist.
Wo solche Dinge birnenförmig werden, ist, wenn Sie entweder eine Multi-Drop-Bus-Topologie oder sehr steife Treiber haben, die beide am Ende irgendeine Form von Terminierung benötigen, um ein gutes Verhalten zu erzielen, aber es hört sich so an, als wäre dies hier nicht der Fall.
Es gibt viele Möglichkeiten, zwei Geräte miteinander zu verbinden. Abhängig vom Timing und der Verbindungsgeschwindigkeit können Sie ein Spektrum an Verbindungen verwenden, angefangen von einseitigen, nicht abgeschlossenen Leitungen bis hin zu vielen Arten von impedanzgesteuerten Differenz-Transceivern. Bei Altera bin ich mir nicht sicher, aber besorgen Sie sich einfach fast alle Xilinx-Datenblätter oder E/A-Designleitfäden, wie diese , und Sie werden eine ganze Vielfalt und viele verfügbare Optionen sehen.
Manos
Das Photon
Manos
Das Photon
Manos
Das Photon
Joribama
Das Photon
Manos
Das Photon