Frequenzverdopplung beim Virtex 5?

Gast #5548638
Lesenswert?

Hallo,

Habe einen Virtex 5 bei dem ich mehrere Kameras anschließen will. Die 
meisten laufen mit CameraLink. Nun haben die Kameras meistens 
unterschiedliche Frequenzen auf ihre CLK Leitungen.
Es gibt welche mit 50MHz und 40MHz welche ich über eine PLL einspeisen 
kann um die 7-fache phasensynchron zu erzeugen, sodass ich dann über 
ISERDES die Daten "capturen" kann (hatte schon mal in einem Projekt 
CameraLink erfolgreich implementiert).
Das Problem ist bei zwei Kameras, welche nur 12,5MHz oder 16MHz 
Clock-Speed haben. Die PLL und DCM arbeiten beim Virtex 5 ab 19MHz, 
heißt ich kann die Clocks nicht einspeisen im Core Generator, da sie zu 
niedrig sind.

Darum hatte ich die Idee erst eine Frequenzverdopplung vorzunehmen, dann 
sie einzuspeisen in eine PLL um die 7-fache Frequenz zu erzeugen, damit 
die Datenleitungen "gesamplet" werden können.

Ein Lösungsansatz wäre beispielsweise hier:
http://www.pldworld.com/_xilinx/html/tip/sixeasypieces.htm
Unterpunkt 4.
Hier wird soweit ich es richtig verstehe die doppelte Frequenz per 
Kombinatorik erstellt.

Evtl. habt ihr ja Alternativen für mich. Bin gespannt auf eure 
Antworten.

Gruß
Yafes
Gast #5548762
Lesenswert?

Yafes61 schrieb:
> Evtl. habt ihr ja Alternativen für mich.
Wenn man basteln will, nimmt man die Lösung von Peter Alfke.
Oder man versucht den Coregen auszutricksen. Vermutlich läuft die PLL 
auch mit 18,5 MHz oder einem geringeren Engangstakt.

Wenn es professionell verkauft werden soll, würde ich in diesem Fall 
eine externe PLL verwenden.

Duke

P.S.: Hallo Xilinx! Ich ärgere mich auch immer über Eure PLLs. Alle 
namhaften Meßgeräte lassen sich mit 10 MHz Referenztakt synchronisieren. 
Aber für Xilinx-FPGAs muß ich mir immer eine Sonderlocke einfallen 
lassen...
(Firma: www.elpra.de) Persönliche Seite #5548798
Lesenswert?

Ich habe schon lange keine Virtex 5 mehr in der Hand gehabt, daher bin 
ich bei den Teilen etwas eingerostet. Anstatt einer PLL kannst du auch 
eine DCM nehmen, von denen sollte dein V5 jede Menge haben.

Im Low Frequency und DFS output only Mode darf deine Input Clock bis 1 
MHz runter gehen. Ich empfehle dazu mal in DS202 Kapitel "DCM Switching 
Characteristics" und UG190 Kapitel "Clock Management Technology" 
reinzuschauen.

Ich hoffe damit kommst du schonmal weiter.
Gast #5548844
Lesenswert?

Zu allererst, du gibst "dein" Clocksignal ja nicht direkt
an einem Pin aus, sonder verwendest dazu ein DDRIO (d.h.
DDR-Register). Damit bist du nicht mehr gezwungen, den
Takt auf die "niedrige" gewünschte Frequenz per PLL etc.
runterzutakten, sondern verwendest ein Vielfaches des
Taktes. Der Rest wird per ClockEnable etc. erledigt.

Dein Timingdiagramm entspricht in etwa dem einer LVDS-TFT/etc.
Ansteuerung. Bei niedriger Taktrate am Bestem per PLL einen
7-fach Höheren Takt erzeugen und die Daten z.B. per
Schieberegister einlesen. Per Schieberegister lässt sich
auch das Taktsignal ausgeben (funktioniert auch ohne DDRIOs).
Gast #5548845
Lesenswert?

Jetzt habe ich gesehen wie ich den Wizard bediene.

Ich muss den FB auf None stellen und das CLK0 Häkchen entfernen.

Dann kann ich den CLKFX verwenden.

Was bedeutet das aber für die Phase. Kann ich immer noch von einer 
Phasensynchronität zwischen CLKIN und CLKFX reden?
Gast #5548981
Lesenswert?

@Sigi: Der TO baut keine Kamera, sondern will Kameras mit CameraLink 
Anschluss an seinen FPGA anhängen:

Yafes61 schrieb:
> Habe einen Virtex 5 bei dem ich mehrere Kameras anschließen will. Die
> meisten laufen mit CameraLink.

Also keine DDR Ausgänge und kein abgeschlossenes System, sondern externe 
Daten mit dazu synchronem Clock in das eigene System einlesen.
Gast #5549208
Lesenswert?

Christoph schrieb:
> @Sigi: Der TO baut keine Kamera, sondern will Kameras mit CameraLink
> Anschluss an seinen FPGA anhängen:

Wo habe ich denn so etwas angedeutet? Du solltest dir mal
das Eingangpost genauer durchlesen (und auch etwas von der
Aufgabenstellung und dem verwendeten FPGA vestehen).
Er hat mehrere Kameras (mit evtl. unterchiedlichen Takt-
Frequenzen), die jeweils mit eigener Logik angesteuert
werden (abgeschlossene Systeme oder Komponenten, die dann
z.B. per BRAM die Daten entkoppelt weiterreichen).
Gast #5549312
Lesenswert?

Christoph schrieb:
> Also keine DDR Ausgänge und kein abgeschlossenes System, sondern externe
> Daten mit dazu synchronem Clock in das eigene System einlesen.

Ich würde mal sagen, das war so gemeint, dass die Takte nicht direkt zu 
beobachten sein werden, ohne eine der DDR-Zellen und bezog sich auf das 
Phasenargument.

Zu dem Problem: Das ist keines :-) Man nimmt die PLL ohne 
Phasenkompensation und schaltet das gfs hintendran, wenn nötig. Für das 
Einlesen der Daten gibt es auch noch die IO-Delay. Das sollte aber 
eigentlich klar sein.
Persönliche Seite #5564499
Lesenswert?

Yafes61 schrieb:
> Das Problem ist bei zwei Kameras, welche nur 12,5MHz oder 16MHz
> Clock-Speed haben.

SERDES wäre hier Kanonen auf Spatzen!

Beim Cameralink kommen 7-Bits und das wären gerade mal 112MHz. Das 
kriegst du direkt eingelesen und gesampelt. Selbst mit einem langsamen 
FPGA wären es nur 56 MHz über eine DDR-Zelle. Damit umgeht man auch das 
bit slip Thema wegen der 4:3 der Master Slave Zelle beim SERDES.

Das Einstimmen der PLL auf die eingehende Frequenz kriegt man einfach 
über die PLL-feedback-Schleife hin.

Ich würde allerdings auch das händisch machen, weil ich dann einen 
Ausfall des Taktes erkennen kann und mir nicht die PLL ausfällt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren