85MHz Clock für externes IC

Gast #1626003
Lesenswert?

Hallo @ all,

ich habe einen einen Virtex 5 und ein externes IC für die 
Datenübertragung. Zudem ist auf meinem Board noch ein 50MHz Quarz 
verbaut.

Aus dem 50MHz Takt möchte ich im FPGA per DCM einen 85MHz Takt erzeugen 
und gleichzeitig einen 2. Takt der 3mal so schnell ist wie der 85MHz 
Takt.

Der 85MHz Takt soll dann den FPGA über einen Clock Pin verlassen und 
direkt an den exteren IC gehen. Ist dies OK oder ist der Jitter bei 
dieser Lösung zu stark?

Den 3 mal so schnellen Takt benötige ich um Daten für die Übertragung 
bereitzustellen.
Gast #1626070
Lesenswert?

Wenn man einen exterenn Clock benutzt, dann verwendet man ja als I/O 
Buffer einen Clock Buffer. Kann man diesen nicht auch als Ausgang 
benutzen?
Ist es nicht sinnvoller einen Clock Buffer als einen ODDR zu verwenden?
#1626120
Lesenswert?

Bei Xilinx gibts keine didizierten Clock-Ausgangs-Buffer. Wenn man von 
einem CLK-Netz direkt auf den Ausgang geht, gibts eine Warnung, dass das 
entsprechende Signal im ganzen nicht als CLK geroutet werden kann. In 
allen User Guides ist der Weg über das ODDR FF angegeben. Auch Xilinx 
benutzt das bei den IP-Cores selbst so. Weiterer Vorteil: Bei 
DDR-Ausgängen ist dann der CLK, den man mit ausgibt absolut in Phase mit 
den Daten.
Gast #1626234
Lesenswert?

Also benutze ich demnach ein ODDR. Den eienn Eingang lege ich auf 0 und 
den anderen auf 1. Dann nur noch mit dem CLK verbidnen und fertig. 
Erzeugt das nicht zu viel Jitter?

Außerdem habe ich doch dann einen Phasenverschub, da das ODDR ja eine 
gewisse Zeit zum schalten benötigt.
#1626256
Lesenswert?

@  Johann (Gast)

>Also benutze ich demnach ein ODDR. Den eienn Eingang lege ich auf 0 und
>den anderen auf 1. Dann nur noch mit dem CLK verbidnen und fertig.

Ja.

>Erzeugt das nicht zu viel Jitter?

Nicht mehr als duch den DCM erzeigt wird, wenn er aus 50 MHz die 85 
macht.

>Außerdem habe ich doch dann einen Phasenverschub, da das ODDR ja eine
>gewisse Zeit zum schalten benötigt.

Phasenverschiebung zu was? Sollen synchron noch Daten ausgegeben werden? 
Dann ist das ODDR erst recht das Mittel der Wahl.

MFG
Falk
Gast #1626272
Lesenswert?

Hallo Falk

Mein externes IC benötigt 1 Clk (85MHz) und 28Bit Datenbus. Mit jeder 
ansteigenden CLK-Flanke sollen neue Daten übertragen werden. Die Daten 
werden im BlockRAM zwischengespeichert. So das ich diese dann aus dem 
BlockRAM lade in diese dann direkt ausgebe.Kann ich die Daten aus dem 
BlockRAM direkt an die Ausgänge des FPGA legen oder sollte man 
dazwischen noch mal einen FF schalten?
#1626336
Lesenswert?

@  Johann (Gast)

>BlockRAM lade in diese dann direkt ausgebe.Kann ich die Daten aus dem
>BlockRAM direkt an die Ausgänge des FPGA legen

Im Prinzip ja, aber praktisch nicht sinnvoll.

> oder sollte man dazwischen noch mal einen FF schalten?

Ja. Diese werden dann in die IOBs gesetzt und damit hast du ein 
perfektes Ausgabetiming und relaxte Routingbedingungen.

MFG
Falk
#1626343
Lesenswert?

@Johann (Gast)

>Aus dem 50MHz Takt möchte ich im FPGA per DCM einen 85MHz Takt erzeugen
>und gleichzeitig einen 2. Takt der 3mal so schnell ist wie der 85MHz
>Takt.

Macht also nochmal 255 MHz, not bad.

>Den 3 mal so schnellen Takt benötige ich um Daten für die Übertragung
>bereitzustellen.

Du willst den FPGA intern mit 255 MHz takten? Sportlich. Und vor allem 
ungewöhnlich. Meistens hat man im FPGA breite Datenpfade und kann mit 
moderaten Taktfrequenzen arbeiten. Für die Datenübertragung nimmt man 
dann höhere Takte, um mit wenig Datenleitungen auszukommen (z.B. LVDS, 
DVI, etc.)

MFG
Falk
Gast #1626367
Lesenswert?

Ich speicher zuerst einige Daten, die ich zuvor vom AD-Wandler erhalten 
habe in einem Block RAM zwischen. Wenn das Signal digitalisiert ist, 
möchte ich die Daten an den PC übertragen. Hierzu verwende ich das 
Camera Link Interface. Das Camera Link Interface wird durch ein externes 
IC übernommen. Dies benötigt einen Takt (max. 85MHz) und einen 28Bit 
breiten Datenbus.

Wenn ich die Daten aus dem Block RAM laden und ausgeben möchte, dann 
muss man zuerst die Adresse anlegen. Zudem benötigt man einen Komerator 
um das ganze wieder anzuhalten. Ich dachte ich benötige 3 Takte um dies 
zu realisieren deshalb auch 3x85MHz.
#1626453
Lesenswert?

@  Johann (Gast)

>möchte ich die Daten an den PC übertragen. Hierzu verwende ich das
>Camera Link Interface. Das Camera Link Interface wird durch ein externes
>IC übernommen. Dies benötigt einen Takt (max. 85MHz) und einen 28Bit
>breiten Datenbus.

So weit, so gut.

>Wenn ich die Daten aus dem Block RAM laden und ausgeben möchte, dann
>muss man zuerst die Adresse anlegen. Zudem benötigt man einen Komerator
>um das ganze wieder anzuhalten. Ich dachte ich benötige 3 Takte um dies
>zu realisieren deshalb auch 3x85MHz.

;-)
So jung und unerfahren, und schon mit Papis Porsche, ähhh Virtex5 
rumspielen wollen.
Sehr amüsant.

Um Daten mit 85 MHz aus einem BRAM zu lesen und auszugeben braucht man 
ziemlich genau 85 MHz.
Das sind Grundlagen der Digitaltechnik.
Und 255 MHz sind selbst in einem V5 sportlich, aber machbar. Hier 
allerdings vollkommen unnötig.

MFG
Falk
Gast #1626503
Lesenswert?

Der Porsche ist zudem noch ein richtiges Hammerteil (Speedgrade -3) und 
dann noch die SX50T Variante. Ich glaube das Teil kostet schon breits 
1500€. War auf einem Entwicklungsboard bereits vorhanden.

Sicher kann man es in einem Takt erledigen. Aber meistens kommt dort 
noch etwas hinzu so das ich lieber mit dem einen oder anderen Takt mehr 
kalkuliere.
#1626522
Lesenswert?

@  Johann (Gast)

>Sicher kann man es in einem Takt erledigen.

Dann TU ES!

> Aber meistens kommt dort
>noch etwas hinzu so das ich lieber mit dem einen oder anderen Takt mehr
>kalkuliere.

Klar, weil man sich so einen Luxus ja bei 85 MHz auch noch locker 
leisten kann.
Merke: Nur weil es PCs mit 2 GHz++ für nen Appel & Ei im Laden zu kaufen 
gibt, heißt das NICHT, dass man ein FPGA mal locker lockig ebenso takten 
kann.
Wenn du Larifari machen willst dann programmier Java, dort kannst du für 
"Hello World" 10 MB verbraten.
Hardwareentwicklung läuft anders.

MFG
Falk

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