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
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...
Ich bin aber auf die Synchronität dieser langsamen Clock bezogen auf die 7-fache angewiesen. Daher suche ich nach einer sauberen Lösung. Im Anhang ist mal der Zusammenhang zwischen Daten und der anliegenden Clock.
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.
Das habe ich versucht beim Core Generator mit dem Virtex 5, aber egal was ich im Wizard eingestellt habe hat der Wizard für die DCM min. 19MHz verlangt. Mach ich da etwas falsch?!?!?
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).
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?
Yafes61 schrieb: > Was bedeutet das aber für die Phase. Garnichts, du erzeugst ja einen Takt für ein abgeschlossenes System (deine Camera), das ja nicht auf andere Systeme einsynchr. werden muss (=> kein FB notwendig!).
@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.
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).
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.
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.
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.