Frage:
Zähler für 20 GHz Takt
Steve
2016-03-03 14:39:34 UTC
view on stackexchange narkive permalink

Ich entwerfe eine zeitkritische Anwendung, bei der ich eine Zeitauflösung in der Größenordnung von 100 Pikosekunden benötige.

Ich denke darüber nach, einen Ringoszillator mit 20 GHz und einen Takt aus dem Ringoszillator herzustellen.

Gibt es ICs dafür oder kann ich sie mit CoolRunner II CPLD oder einem anderen FPGA implementieren?

Ich habe mir das Datenblatt angesehen und die maximale Frequenz für den Systemtakt beträgt ca. 256 MHz und Der externe Takt beträgt 145 MHz. Datenblatt

Soll ich nach einem schnelleren Gerät suchen oder gibt es eine andere Möglichkeit, es zu erstellen?

Die nüchternen E / A-Pins der neuesten FPGAs können ca. 1 GHz für DDR-Speicher verarbeiten.Das interne Taktnetz eines FPGA ist auf ca. 900 MHz beschränkt.FPGAs können Ihre Probleme also nicht lösen.
Ist dies für Flugzeitmessungen?Es gibt dedizierte TOF-ICs mit einer Auflösung von weniger als 100 ps.Sie arbeiten wie eine Stoppuhr.Vielleicht könnten Sie eine davon in Dienst stellen?Schauen Sie sich http://www.ti.com/lit/ds/symlink/tdc7200.pdf an.
Normalerweise würden Sie für diese Art der Zeitauflösung einen Zeit-Digital-Wandler verwenden, keinen Zähler.Diese steuern im Grunde einen kleinen Kondensator mit den Triggersignalen, und Sie messen dann die akkumulierte Spannung darauf.Schauen Sie sich für einige Ideen an, wie ETS-Oszilloskope (Equivalent Time Sampling) funktionieren.
Die schnellsten Stratix 10-Geräte von @Paebbels: Altera können E / A mit 28,3 Gbit / s verarbeiten.Die schnellsten Virtex-7-Geräte von Xilinx können 28,05 Gbit / s verarbeiten.Ihr Wissen ist mehrere Jahre veraltet.
@DaveTweed Ich kenne 28-GHz-Transceiver.Ich benutze sie selbst in Hochgeschwindigkeitsdesigns.Aber ich glaube nicht, dass Sie damit Zeitmessungen durchführen können.Selbst bei Multi-GHz-Transceivern ist das Taktnetz auf ca. 1 GHz begrenzt.
@Paebbels:-E / A bei 28 GHz ist E / A bei 28 GHz.Sie können * jedes * Signal mit dieser Geschwindigkeit abtasten.Warum können Sie damit nicht das Timing messen?Natürlich müsste sich der Stoff mit Proben befassen, die als paralleler Bus aus dem Deserialisator kommen, aber das ist unkompliziert.
@DaveTweed, kein Signal.Ein Signal mit sehr langen Läufen von Nullen oder Einsen würde wahrscheinlich dazu führen, dass die CDR des Transceivers die Sperre verliert und die kritische Taktdrift auftritt.Sie müssten einen Weg finden, das Ereignis, das Sie zeitlich umschalten möchten, zwischen zwei Eingangsmustern mit jeweils angemessener Übergangsdichte umzuschalten, um diese Eingänge für das FPGA für das Ereignis-Timing zu verwenden.
Beachten Sie für OP, dass Sie keine 20-GHz-Takte benötigen, um ein 100-ps-Timing zu erreichen.Beispielsweise können zwei 5-GHz-Takte mit einer Phasendifferenz von 90 Grad ein Timing von 100 ps erreichen.Oder 5 1-GHz-Takte, die jeweils um 36 Grad versetzt sind.Aber irgendwann wird es ein größeres Problem, eine große Gruppe von Uhren genau genug auszurichten und sie alle nahe genug zur gleichen Zeit abzutasten, als eine schnellere Uhr herzustellen.
Ringoszillatoren haben durch Jitter verursachtes Phasenrauschen.Für einen stabilen Taktoszillator im Gigahertz-Bereich wäre eine Gunn-Diode (innerhalb des Wellenleiters unter Verwendung einer YIG-Kugel platziert) die bessere Wahl für einen stabilen Frequenzgenerator.
Fünf antworten:
mike ingle
2016-03-03 22:33:56 UTC
view on stackexchange narkive permalink

Vor 15 Jahren habe ich einen Zwei-Parameter-Digitalisierer (Energie und Zeit) entwickelt, um die Flugzeit zu messen. Für dieses System habe ich eine Konstantstromquelle in eine Kappe verwendet, die von einem JFET zurückgesetzt wird. Beim Empfang des Triggers (schnelle NIM-Logik, Pegelverschiebung im analogen Bereich (im Gegensatz zum gesättigten Schalten)) öffnete sich der JFET, und ich konnte eine Auflösung von 50 ps erreichen, indem ich die lineare Rampe digitalisierte und von einem ADC mit 62,5 MSPS interpolierte ein FPGA. Die Schaltung war recht einfach und passte perfekt zu den Simulationen.

Neil_UK
2016-03-03 16:28:24 UTC
view on stackexchange narkive permalink

Vor einiger Zeit habe ich als Gedankenexperiment ein Zeiterfassungs-FPGA 'entworfen'.

Es hatte einen Ringoszillator, der konventionell war, abgesehen von der Tatsache, dass er 41 Wechselrichter hatte. Die Periode war somit viel viel geringer als die Verzögerung eines Gates. Der FPGA-Prozess hatte einzelne Gate-Verzögerungen in den 10s von pS, wo das Routing lokal und das Fan-out niedrig war, konnte jedoch aufgrund von Multiplexing-, Routing- und Ladeverzögerungen zwischen Blöcken nur Systemtakte in der Größenordnung von 100s MHz verarbeiten.

Der Zeiterfassungsprozess verwendete dann 41 D-Latches, die jeweils den Eingangsübergang erfassten, aber natürlich in verschiedenen Phasen des Ringzählzyklus getaktet wurden. Die Ausgänge der D-Latches könnten als "Thermometercode" interpretiert werden, der den Eingangsübergang auf Subzyklusgenauigkeit mit einer Auflösung in den 10s von pS interpoliert. Weitere 41 D-Latches haben einen Referenztakt erfasst.

Bei einer solchen Struktur gibt es zwei Hauptschwierigkeiten. Das erste besteht darin, die Synthesewerkzeuge dazu zu bringen, den Ringzähler und die Leitungen mit hoher Geschwindigkeit zu den D-Latches auszulegen. Dieser Teil würde wahrscheinlich besser durch direkte manuelle Platzierung gehandhabt werden. Möglicherweise wird ein bestimmter Typ eines kleinen Hochgeschwindigkeits-FPGAs benötigt, möglicherweise einer ohne Multiplikatoren und Prozessorkerne! Die zweite ist die rennfreie Behandlung der Überlappung zwischen dem Thermometercode und einem herkömmlichen Zähler, der durch die Referenz mit niedrigerer Frequenz getaktet wird. Dies kann jedoch unter Berücksichtigung von Metastabilitätsproblemen durchgeführt werden.

Ich habe nicht weiterverfolgt Ich habe einen besseren Weg gefunden, um das Problem zu lösen, aber es hat Spaß gemacht.

Solche Strukturen sind jetzt in FPGAs sowohl in den Taktverwaltungsblöcken (PLLs und DCMs) als auch in den Hochgeschwindigkeits-E / A-Strukturen eingebaut.
Während diese Strukturen in die DCMs eingebaut werden, bin ich mir nicht sicher, ob Sie sie zu zeitlich zufällig ankommenden Impulsen erreichen können.Sie könnten sicherlich DPLL zu regelmäßig ankommenden Impulsen führen.Die E / A-Timing-Shims können jedoch durchaus konfigurierbar sein.Möglicherweise müssen Sie erneut manuell konfiguriert werden, da der PAR-Routing-Timer-Optimierer sicherlich nicht versteht, was Sie versuchen, und es für Sie "verbessert".
Ich habe nur gesagt, dass Sie keine einzelnen LUTs mehr verwenden müssen, um eine programmierbare Verzögerungsleitung zu erstellen.Und die Verzögerungsleitungen in IOBs sind definitiv konfigurierbar - mit einigem Aufwand können Sie Logik implementieren, um beispielsweise die Verzögerungen auf einem Speicherdatenbus automatisch auszugleichen.
Mario
2016-03-03 17:15:38 UTC
view on stackexchange narkive permalink

Wie bereits erwähnt, gibt es zu diesem Zweck dedizierte ICs.

Wenn Sie dies selbst tun möchten, besteht ein möglicher Ansatz darin, sogenannte Vernier-Verzögerungsleitungen zu verwenden.

Sie haben zwei Verzögerungsleitungen (Ketten von Puffern), in denen eine Kette schnellere Puffer als die andere verwendet. Die Auflösung Ihrer Messung entspricht der Differenz der Verzögerungen der Elemente in der schnellen und "langsamen" Kette.

Zum Messen der Verzögerung senden Sie den Startimpuls durch die langsame Kette und den Stoppimpuls durch die schnelle Kette. Der Stoppimpuls bewegt sich schneller und holt schließlich den Startimpuls ein. Die Anzahl der erforderlichen Puffer ist ein Maß für die Verzögerung.

Mein Fokus liegt auf dem IC-Design, daher bin ich mir nicht sicher, ob dies mit einem FPGA möglich ist. Die Literatur legt jedoch nahe, dass dies möglich ist.

Brian Drummond
2016-03-03 17:38:59 UTC
view on stackexchange narkive permalink

FPGA-Fabric kann, wie andere Antworten zeigen, nicht mit der von Ihnen benötigten Rate getaktet werden.

Einige FPGAs verfügen jedoch auch über serielle Hochgeschwindigkeitsschnittstellen im Bereich von 5 Gbit / s bis 10 Gbit / s für SATA, PCIe und andere Hochgeschwindigkeitskommunikationsprotokolle.

Es gibt wahrscheinlich Möglichkeiten, diese für hochauflösende Zeitmessungen (100 ps, ​​aber möglicherweise nicht 50 ps) zu nutzen.

Entschuldigung, ich kann die Details nicht genauer beschreiben.

Die Details sind [hier für Xilinx] (http://www.xilinx.com/support/documentation/user_guides/ug471_7Series_SelectIO.pdf) (insbesondere Kapitel 3).Die schnellsten Virtex-7-Geräte unterstützen Geschwindigkeiten von bis zu 28 Gbit / s.Altera hat ähnliche Anleitungen, und einige ihrer Stratix V- und Stratix 10-Geräte erreichen bis zu 28 Gbit / s.
Danke Dave, nützlicher Link.Die SERDES-Blöcke (ab S.143) sind die Funktion, an die ich gedacht habe.
Bimpelrekkie
2016-03-03 14:54:06 UTC
view on stackexchange narkive permalink

Ein 2-GHz-Takt hat eine Periode von 500 ps. Wenn Sie also eine Auflösung von 100 ps benötigen, würde ich sagen, dass Sie mindestens 10 GHz benötigen.

2 GHz und höher sind meines Wissens weit außerhalb der FPGA-Liga. Sie befinden sich jetzt im HF-Bereich, der nur analog ist :-)

Texas Instruments und Analoge Geräte stellen Taktgenerator-ICs her, die Takte bis zu erzeugen können mehrere GHz, die Ihren Anforderungen entsprechen könnten.

Hoppla, ich habe dort eine Null vergessen.Korrektur vorgenommen
Sie müssen Ihr Wissen aktualisieren.Heutige FPGAs können serielle E / A mit 12,5 Gbit / s und mehr problemlos verarbeiten, indem sie eine dedizierte SERDES-Logik (High-Speed Serializer / Deserializer) verwenden, die direkt in die E / A-Strukturen integriert ist.
@DaveTweed OK, können Sie mich auf ein Beispiel für ein solches FPGA verweisen?
Siehe meinen Kommentar zu [Brian Drummonds Antwort] (http://electronics.stackexchange.com/a/220577/11683).


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...