Hallo, hat hier jemand schon einmal einen TDC in einem FPGA realisiert? Im Netz gibt es eine Menge Papers darüber, leider habe ich aber keinen VHDL-Code gefunden. Viele Gruess, Gast
Vielleicht einfach mal nachdenken und selber was schreiben ?
TDC meint einen schneller Zähler, oder was soll konkret realisiert werden?
> hat hier jemand schon einmal einen TDC in einem FPGA realisiert?
Welche Zählfrequenz/Auflösung willst du denn?
Wie soll der ermittelte Digitalwert aufbereitet/ausgelesen werden?
Gibt es eigentlich überhaupt irgendeinen Weg, es nicht! mit einem Zähler zu machen?
>Gibt es eigentlich überhaupt irgendeinen Weg, es nicht! mit einem Zähler >zu machen? Der Trick ist wohl, irgendwie Gatterlaufzeiten zu verwenden -- die natürlich u.a. von Temperatur und Versorgungsspannung abhängen.
Ja, also die Idee ist, die Gatterlaufzeit zum Messen zu verwenden. Man sollte damit im pico-Sekunden Bereich Messungen machen können..
In VHDL ? Soll das ein Witz sein ? Der Compiler wird kaum 100 Inverter hintereinander generieren. Allenfalls schaft man das mit schematischer Eingabe und Deaktivierung aller Optimierungen. Richtig ist, dass die Zeiten temperaturabhaengig sind, was sich mit einem Peltier unten dran loesen liesse.
Geht auch in VHDL, bei Xilinx hilft das Attribut KEEP oder NOREDUCE...aber schön ist das nicht, eher in Richtung Bastelmurks. Zumal man bei jedem Routingdurchlauf etwas andere Laufzeiten rausbekommt.....
Selbst wenn man das Ganze mit handplatzierten Gattern und Temperaturkompensation macht, schön wird es nicht. Sowas ist eine klassische Domäne eines echten ASICs. Die DLLs habe solche Gatterketten, drin, die sind auch temperaturkompensiert (über einen schlauen Algorithmus). Zeitauflösung um die 40ps. Diverse PWM ICs, bzw. Mikrocontroller wie z.B der Piccolo von TI haben das auch drin, letzterer mit AFAIK 150ps Auflösung. Für sowas nimmt man einen fertigen IC, alles Andere ist nur akademische Spielerei. MfG Falk
es ist machtbar ganz gut in FPGA wenn weiss wie man es macht zb einen langen "carry chain" durch ganzes chip benutzen Antti
In Veröffentlichungen zur Instrumentierung in der Kernphysik findet man des öfteren FPGA basierte TDC. Googeln nach "TDC FPGA" bringt schon einige Treffer. Allerdings habe ich noch keinen HDL Code oder ähnliches dazu gesehen. Über die Sinnhaftigkeit läßt sich auch streiten.
>Über die Sinnhaftigkeit läßt sich auch streiten Wieso ? Denken wir uns mal ein Laser-Entfernungsmeßsystem. Der FPGA erzeugt sowohl das gesendete Signal und verarbeitet auch das empfangene Signal. Somit interessiert nur der TDC relativ zu ausgesendetem und empfangem Signal. Zur Aussenwelt hin gibt der FPGA die Absolutzeit und die ist nur abhängig von der Genauigkeit der Taktreferenz des FPGAs. Gruß Hagen
>So was gibt es auch fertig Ja sicher, die Frage war ja ob man das mit einem FPGA nachmachen kann. Wobei ich allerdings nur zwei Hersteller kenne, Acam und http://www.msc-ge.com/de/produkte/elekom/sensors/msc_tdc/1686-www.html
"Alle, setzen sechs!" Bisher kam hier nur unqualifiziertes Rauschen und keiner ist so richtig auf meine Frage eingegangen. Anstatt mal ehrlich zu schreiben, "nein, so etwas habe ich noch nicht realisiert" oder "ich habe keine Ahnung", schreibt Ihr hier nur Käse! Ich versuche mal, die Frage zu konkretisieren, vielleicht kann mir ja noch jemand weiterhelfen.. Wie kann man denn dem Router/Optimierer in VHDL sagen, daß er nur bestimmte Gatterelement auf dem FPGA verwenden soll? Also zum Beispiel das kritische Signal nur durch einen Carry-Chain routen soll? Ich habe mal auf ner Messe mit einem Vertreter von acam.de gesprochen, die haben so etwas schonmal auf nem FPGA getestet, der konnte mir aber verständlicherweise keine Sourcen geben. Vielen Dank schon einmal für eine konkrete Antwort!
> keiner ist so richtig auf meine Frage eingegangen. Weil deine Frage an sich natürlich schon irre exakt formuliert war. Wer undefiniert frägt, bekommt undefinierte Antworten. :-/ > schreibt Ihr hier nur Käse! Wer nach Käse frägt, bekommt Käse. Ich habe sowas noch nicht gemacht, und weiß zudem nicht wie gut du dich mit FPGAs auskennst, aber hier mein Senf zum Thema: > Wie kann man denn dem Router/Optimierer in VHDL sagen Das wird über Attribute und Constraints gesteuert. > Also zum Beispiel das kritische Signal nur durch einen Carry-Chain > routen soll? Helfen dir evtl. LOC-Constraints weiter? Du könntest einen Slice oder Teile davon auch manuell instatiieren, und bekommst so Zugriff auf die Anschlüsse und Konfigurationsmöglichkeiten.
Xilinx bietet viele der Slice-Elemente auch als instanziierbare Teile an. LUTs sind auf jeden Fall dabei. Über das LOC Attribut kannst du festlegen, welche genau du haben möchstest. Dann kannst du noch über das KEEP Attribut festlegen, dass bestimmte Signale nicht in andere Function Blocks gezogen werden. Damit kannst du eine Kette durch den ganzen Chip aufbauen, wenn du möchtest. Ah, Lothar war wieder schneller. Naja.
> "Alle, setzen sechs!"
da du ja so superschlau bist, mach's doch einfach selber und frag' hier
nicht bloed rum!
Ich habe sowas schon ganz konkret gemacht, Laserentfernungsmessung in
10ps Auflösung. Aber Sourcen geben kann ich dir nicht und darüber reden
auch nicht.
Vielleicht hilfts dir ja weiter das du nun weist das ich sowas schon
gemacht habe.
> schreibt Ihr hier nur Käse!
Jo, jetzt stimmt deine Beleidigung auch.
@Hagen: Kannst Du etwas mehr Infos geben? - Hast Du das in einem FPGA realisiert? Welche Familie? - Wie handhabst Du Temperaturaenderungen und Bauteiletoleranzen - Was kannst Du und noch verraten? Danke
>Ich habe sowas schon ganz konkret gemacht, me too >Laserentfernungsmessung in 10ps Auflösung. laser distance measurement @3ps / 20GHz resolution >darüber reden auch nicht. Hast nun aber, ich habe es daher meinem Chef gegenüber nochmal angeregt, dies nochmal konkret patentieren zu lassen, wobei wir da schon eins haben. Die Lösung der zeitvarianten Messung im ps-Bereich wurde im Übrigen mit Altera zusammen erarbeitet.
Gast schrieb: > "Alle, setzen sechs!" > Wie kann man denn dem Router/Optimierer in VHDL sagen, daß er nur > bestimmte Gatterelement auf dem FPGA verwenden soll? Also zum Beispiel > das kritische Signal nur durch einen Carry-Chain routen soll? http://www.xilinx.com/itp/xilinx10/books/docs/cgd/cgd.pdf p.110 In VHDL sagen is nich da wiring resources architekturspez.. Arbeite an deinen Umgangsformen!
Servus miteinander, ich habe diese Ansätze auf einem Lattice Seminar mit einen der FAE's diskutiert und dieser hatte zwei Ansätze parat: 1, Verwendung der internen Carry Chain Durch die festverdrahteten Routing Resourcen hat man immer gleichbleibende Delays zwischen den Elementen, damit hat man nur noch die Einflüsse auf das Timing durch Spannung und Temperatur. Damit sollte eine Auflösung von ca. 60 ps machbar sein, wobei das Signal natürlich auch in den Chip rein muss. 2, Verwendung der High Speed SERDES Blöcke Die seriellen Empfänger der ECP3 Familie scheinen auch auf den Referenztakt synchronisieren zu können. Damit schafft man dann eine Auflösung von 300 ps ohne Klimmzüge machen zu müssen. Zumindest die zweite Lösung wurde laut dem FAE schon in Hardware getestet und funktioniert. Vielleicht sprichst Du mal jemanden von Lattice darauf an. Gruss Lupi
>, Verwendung der internen Carry Chain > Durch die festverdrahteten Routing Resourcen hat man immer > gleichbleibende Delays zwischen den Elementen, Das stimmt nicht, allein prozesstechnologisch unterscheiden sich einzelne Transistoren schon im Bereich 1ps von FPGA zu FPGA. Das ist alles nicht determinisisch.
Kann man es nicht so machen, dass man irgendeine Kette baut, mit Toleranzen etc., und die dann einfach regelmäßig kalibriert? Evtl. auch zwei oder mehr identische Systeme von denen eins immer kalibriert wird während die anderen scharf sind? Und bei mehreren Systemen einen Durchschnittswert berechnet? Sollte doch (wie immer) irgendwie möglich sein. Der Trick liegt (wie immer) nur im cleveren Ansatz.
>so etwas gibt es auch fertig: Es gibt auch einige deutsche Hersteller von solchen Geräten. Wir bauen z.B. TDCs als Einsteckkarten: http://cronologic.de/products/time_measurement/ Außerdem gibt es noch Becker-Hickl (sehr hohe Auflösung, aber auch sehr teuer) http://www.becker-hickl.de/products_new.htm
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.