www.mikrocontroller.net

Forum: FPGA, VHDL & Co. FPGA basierter Time-to-Digital Converter


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht einfach mal nachdenken und selber was schreiben ?

Autor: Fpga Kuechle (fpgakuechle) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TDC meint einen schneller Zähler, oder was soll konkret realisiert 
werden?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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?

Autor: J. S. (Firma: Telekomunikation Darmstadt) (juergenffm) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es eigentlich überhaupt irgendeinen Weg, es nicht! mit einem Zähler 
zu machen?

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, also die Idee ist, die Gatterlaufzeit zum Messen zu verwenden. Man 
sollte damit im pico-Sekunden Bereich Messungen machen können..

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.....

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Antti Lukats (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es ist machtbar ganz gut in FPGA wenn weiss wie man es macht
zb einen langen "carry chain" durch ganzes chip benutzen

Antti

Autor: Uwe Bonnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ü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

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So was gibt es auch fertig

http://www.acam.de/products/time-to-digital-converters/

Gruss Helmi

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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/m...

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"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!

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: berndl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> "Alle, setzen sechs!"
da du ja so superschlau bist, mach's doch einfach selber und frag' hier 
nicht bloed rum!

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Uwe Bonnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

Autor: AlteraQuäler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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.

Autor: Fpga Kuechle (fpgakuechle) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Lupinus Digitalus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Kritischer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>, 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.

Autor: Entwickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Kolja Sulimma (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.