Forum: FPGA, VHDL & Co. Counter realisieren


von Tillt T. (tillt)


Lesenswert?

Hallo,

Erstmal: ich kenne mich nicht sehr mit FPGAs aus ( habe bis jetzt nur 
AVR programmiert)

Ich brauche für ein Projekt einen Counter der Signaleingänge an einem 
Eingang zählt. Die Auflösung sollte möglichst bei
1ns liegen.

Ich habe mit der Quartus II Software von Altera mal ein Counterprogramm 
laufen lassen, mit
der Cyclone Serie komme ich aber nur auf ~3.2ns....

Ein weiteres Problem ist, das ich kein "industrielle-lötapparatur" zur 
Verfügung habe, weshalb ich
wahrscheinlich auf ein Evo. Board angewiesen bin.

Meine Frage ist, ob die Auflösung von 1 ns überhobt zu realisieren ist, 
und wenn ja wie?

Ich bedanke mich schonmal im voraus für jede Hilfe

Mfg tillt

von THe ImAgEr (Gast)


Lesenswert?

1 ns kannst du vergessen. Mit Tricks sind bis 500Mhz möglich.

von Tillt T. (tillt)


Lesenswert?

Hi, danke für deine Antwort. bei 500Mhz wären das dann 2ns?

wie könnte man den die realisieren?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Mit Tricks sind bis 500Mhz möglich.
Das wird für einen Anfänger aber recht sportlich... :-o

> Ich brauche für ein Projekt einen Counter der Signaleingänge an einem
> Eingang zählt. Die Auflösung sollte möglichst bei 1ns liegen.
Was genau willst du denn mit einer solch hohen Auflösung machen?

> weshalb ich wahrscheinlich auf ein Evo. Board angewiesen bin.
Mit derart hohen Taktfrequenzen solltest du aber schon sehr sehr genau 
auf das Layout schauen...
Das geben die billigen EVAL-Boards idR. nicht her.

Normalerweise ist bei derart hohen Signalfrequenzen irgendeine Art von 
Vorverarbeitung nötig, denn schon die Verzögerungen vom Pad in den 
FPGA-Core liegen im Bereich ab 3-5 ns (wobei Ausnahmen nur die Regel 
bestätigen).

von Tillt T. (tillt)


Lesenswert?

mist...

> Was genau willst du denn mit einer solch hohen Auflösung machen?

ich habe ein Gerät, das in einem 20ns Intervall ein oder mehrere Signale 
ausgibt; ein Signal hat eine Pulsweite von ca. 5ns. Ziel ist es 
möglichst genau zu bestimmen, wann das Signal "eingegangen ist" und, 
'das ist das wichtigere' auch im Intervall ein zweites Signal 
eingegangen ist.

Bei einer Auflösung von 3,... irgendetwas besteht die Gefahr das z.B. 2 
Signale als ein gewertet werden z.B.

1. Signaleingang bei 1ns   (Pulsweite: 5ns)
2. Signaleingang bei 6ns

-> 1. Messung bei 5ns      :   Signaleingang
-> 2. Messung bei 8,5ns    :   Signaleingang
-> 3. Messung bei 11,5ns   :   kein Signaleingang

--> 1 Interpretationsmöglichkeit: 1 Signaleingänge
--> 2 Interpretationsmöglichkeit: 2 Signaleingänge

Problem: ich brauch ein "eindeutiges Ergebnis"
...klar man könnte sagen, dann mach halt deine 1. Messung bei 0,5ns und 
kannst dann aufgrund der differenz der Signaleingänge ausrechnen, wie 
lange der registrierte "Signaleingang" dar:
unter 5ns: 1 Signal
über 5ns:  2 Signale

Problem: das Signal ist zeitlich andauernd und der zeitliche Begin kann 
nicht 100% bestimmt werden.

Ziel ist es so eine Apperatur (am liebsten mit PC-Auswertung) 
"irgendwie" zu realisieren...

(Wahrscheinlich muss ich (wenn das mit den FPGA oder "etweigigen" 
klappt) zur Signalübertragung zum PC Differenzialleitungen benutzen)-> 
Prob leider in ffeerrrnneerrr Zukunft

lg tillt

von Christian R. (supachris)


Lesenswert?

Hm, naja, in solchen Bereichen wird´s mit einem FPGA alleine schwierig. 
Das müsste man mit externer ECL-Logik oder so machen. Oder mit einem 
schnellen ADC quasi abtasten (ADC08B3000 oder sowas). Oder eine Art 
simpler Logik-Analysator implementieren. 1GHz sind schon sportlich. 
Eventuell könnte man mit einem Virtex 4 oder 5 da was mit den ISERDES 
Elemnten hintricksen, man erzeugt 1GHz "Abtastrate" per DCM und lässt 
die ISERDES das Signal abtasten. Dann hast du es im Schieberegister und 
kannst die Laufzeiten usw. bestimmen. Aber selbst die 1GHz sind da noch 
sportlich. Wohl aber möglich, laut Datenblatt kann der Virtex 4 über 
1GBit/s an den Single-Ended-I/Os. Die Übertragung der Messwerte zum PC 
ist dann eher einfach, da brauchts auch keine differenziellen IOs.

von Tillt T. (tillt)


Lesenswert?

Hi, danke für deine ausführliche Antwort.

Erstmal bin ich froh, das es anscheinend doch zu realisieren ist (-:

Das Problem was sich jetzt leider ergibt, ist, das ich mich NULL mit
den von dir erwähnten Elementen auskenne )-:  ...

Weiß du, ob irgendjemand sowas schonmal realisiert hat... oder es eine 
Art "Beschreibung" für das gibt was ich vorhabe?
Die TFT-Monitore von heute müssten doch auch eine extrem hohe Taktrate 
haben?
-> könnte man sich vielleicht an deren Aufbau orientieren?

lg tillt

von Gast (Gast)


Lesenswert?

Koennte man fuer die Abtastung nicht die RocketIOs nehmen? Die muessten 
ja schnell genug sein....

von Falk B. (falk)


Lesenswert?

@Tillt Tillt (tillt)

>Erstmal bin ich froh, das es anscheinend doch zu realisieren ist (-:

Machbar ist es schon, aber nicht bei deinem Wissensstand.

>Das Problem was sich jetzt leider ergibt, ist, das ich mich NULL mit
>den von dir erwähnten Elementen auskenne )-:  ...

Eben.

>Weiß du, ob irgendjemand sowas schonmal realisiert hat... oder es eine

Ja, nennt sich Digitaloszilloskop. Ist für dich wahrscheinlich 
hundertmal realistischer und einfacher. Kauf dir ein Zweikanal DSO der 
unteren Leistungsklasse, die machen 1 GSmp/s. Kann man einfach per PC 
auslesen und steuern. Problem für 3000 Euro und Null Zeit gelöst.

MFG
Falk

von Tillt T. (tillt)


Lesenswert?

Hi, hast vermutlich recht. Was bedeutet in diesem Fall untere Bandbreite
zw. 10Mhz, 100Mhz ...

lg tillt

von Tillt T. (tillt)


Lesenswert?

bin grad auf dieses gestoßen Rigol DS1052E:

http://www.progshop.com/versand/oszilloskope/Rigol-DS1052E.html

kostet aber nur  € 499.- ... wäre es mit so einen Gerät auch mgl?

von Falk B. (falk)


Lesenswert?

@  Tillt Tillt (tillt)

>Hi, hast vermutlich recht. Was bedeutet in diesem Fall untere Bandbreite
>zw. 10Mhz, 100Mhz ...

Untere Bandbreite?

Bandbreite allgemein sagt aus, wie schnell eine Signaländerung erkannt 
und dargestellt werden kann. Pi mal Daumen gilt

Anstiegszeit eines Signals von 10 auf 90% = 0,35/ Bandbreite. Bei 100 
MHz also 3,5ns. Kürzere Pulse weden verformt oder ganz verschluckt.

>http://www.progshop.com/versand/oszilloskope/Rigol...

50 MHz sind zu mager, du brauchst wahrscheinlich eher 100...300MHz.

MFG
Falk

von Falk B. (falk)


Lesenswert?

Was man noch als SEHR preiswerte Alternative nehmen kann, wenn man sich 
mit "lausigen" 2ns zufrieden geben kann.

ANT-8

http://www.meilhaus.de/produkte/messgeraete-instrumente/?user_produkte[PATTR]=HPG_7-UPG1_3-UPG2_12&user_produkte[PR]=71&cHash=e0112fc604

MFG
Falk

von Falk B. (falk)


Lesenswert?


von Tillt T. (tillt)


Lesenswert?

Danke für den Post

-> klar ist deutlich einfach als nen Oszi ... muss mal schaun ob 2ns 
(500Mhz) ausreichen, ansonsten probier ichs über Oszi!

... das Oszi, was ich rausgesucht habe müsste doch "gehen" oder?

von Christian R. (supachris)


Lesenswert?

LeCroy MS500 mit dem Logik-Vorsatz wäre auch was. 2GS/s macht die Kiste. 
Wenn du so ein High-Performance Gerät selbst entwickeln willst, und 
dafür keinen Bastler-Stundensatz ansetzt, kommst du auch nicht 
günstiger.

von Falk B. (falk)


Lesenswert?

@  Tillt Tillt (tillt)

>... das Oszi, was ich rausgesucht habe müsste doch "gehen" oder?

Nein.

von Christian R. (supachris)


Lesenswert?

Falk Brunner schrieb:
> @  Tillt Tillt (tillt)
>
>>... das Oszi, was ich rausgesucht habe müsste doch "gehen" oder?
>
> Nein.

Vielleicht noch als Begründung: Abtast-Theorem. Wenn du 2ns lange 
Impulse analog messen willst, brauchst du ein Oszi mit einer 
Analogbandbreite von schätzungsweise mindestens 10...20GHz, wenn nicht 
noch mehr. Ich schau mir manchmal USB 2.0 auf einem LeCroy Wave Pro 
7100A an, der hat 1Ghz Bandbreite, das sieht schon sehr verschliffen 
aus, also bei digitalen Signalen mit schnellen Anstiegszeiten braucht 
man wesentlich mehr als Faktor 2 bei der Abtastung.

Macht aber keinen Sinn, schließlich ist es ja rein digital. Ein 2 GS/s 
Logik-Analysator macht das viel besser.

von Tillt T. (tillt)


Lesenswert?

Danke für Eure hilfreiche Unterstützung!

Könnt ihr mir vielleicht ein 'billiges' Oszi empfehlen? Und wenn mit 
welcher Software die Programme eingelesen bzw. weiterverarbeitet werden 
können...

von Christian R. (supachris)


Lesenswert?

Entweder du wills was billiges, oder du willst etwas, womit du solche 
GHz Spikes messen kannst. Beides zusammen wird nix. Bei den leCroy 
Teilen ist das einlesen einfach, weil das Oszi sowieso ein Windows 
Rechner ist und es ein API gibt für die Verabeitung der Oszi-Daten...

von Falk B. (falk)


Lesenswert?

@  Tillt Tillt (tillt)

>Könnt ihr mir vielleicht ein 'billiges' Oszi empfehlen?

Nöö. Aber z.B. die WaveJet von LeCroy sind ganz gut.

http://www.lecroy.com/tm/products/Scopes/WaveJet/default.asp

> Und wenn mit
>welcher Software die Programme eingelesen bzw. weiterverarbeitet werden
>können...

Ist für jeden Oszi spezifisch.

MFg
Falk

von Igor (Gast)


Lesenswert?

Tillt Tillt schrieb:


>mit der Cyclone Serie komme ich aber nur auf ~3.2ns....

In der Tat ist die Sache so hoffnungslos nicht.
"All device I/O banks contain LVDS receivers that operate up to 875 Mbps 
data rates" (Cyclone III Device Family). Die Abtastfrequenz von 875 MHz 
brauchst Du so direkt nicht. Es ist genug schon 875/4=218,75 MHz zu 
haben, aber 4 Clock's, die gegenüber einander um 90 Grad in Phase 
verschoben sind (0 - 90 - 180 - 270). 4 D-flipflop's speichern Auszüge 
von dem Eingangsignal.  Damit bekommst Du die Auflösung von 1,14 ns. Die 
nachfolgende Bearbeitung soll auch kein Problem sein.

von Tillt T. (tillt)


Lesenswert?

Hi, sorry das ich erst jetzt zurücksschreibe

dein Idee Igor klingt gut, hast du sowas schonmal gemacht?

lg tillt

von Igor (Gast)


Angehängte Dateien:

Lesenswert?

@ Tillt Tillt

Ist zwar nicht so ganz meine Idee, aber ich habe etwas nach diesem 
Prinzip schonmal gemacht. Es gab damals AN356 (SDI Reference Design for 
Cyclone). Leider gibt es die auf der Altera's Seite nicht mehr.

von Igor (Gast)


Lesenswert?

oder noch xapp224 von Xilinx

von Sym (Gast)


Lesenswert?

Ich würde sagen: Kauf dir einen Frequenzzähler wie z.B. den SR620. Damit 
lassen sich Signale mit einer Auflösung von etwa 25-50 ps messen. 
Ähnlich gut ist unser Oszi mit 20 GS/s interleaved.

Falls du bei deiner FPGA-Implementierung bleiben willst: ein Counter mit 
500 MHz plus ein DDR-Register macht effektiv 1ns Auflösung. Den Counter 
muss man natürlich extremst pipelinen, damit man dahinkommt.

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
Noch kein Account? Hier anmelden.