Forum: FPGA, VHDL & Co. wird CLK über Verteilermatrix geführt ?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Anton K. (Firma: Zuritronic AG) (antonkurka)


Lesenswert?

Hallo
Konkret geht es um Xilinx Kintex7-325 FPGA.
Wie wird CLK verteilt an die PLB's(programierbare LogicBlock)?
Wird es über die Verteiler Matrix geführt
oder hat es separate leitungen dazu.
Konkret :
ich benötige mehrere unterschiedliche CLK(100,25,10,5,1.25 MHz).
Ist es besser dieser CLK's mit IP(coregen) zu erzeugen (variante1), oder 
nur ein System CLK(100Mhz) zu erzeugen und die andere CLK's durch 
herunterteilen mit einem separatem process zu generieren (variante2).
Wird bei Variante1 die Verteilermatrix weniger benüzt als bei Variante2 
?
Vielen Dank zum voraus.

: Verschoben durch Moderator
von Antti L. (trioflex)


Lesenswert?

Anton K. schrieb:
> Hallo
> Konkret geht es um Xilinx Kintex7-325 FPGA.
> Wie wird CLK verteilt an die PLB's(programierbare LogicBlock)?
> Wird es über die Verteiler Matrix geführt
> oder hat es separate leitungen dazu.
> Konkret :
> ich benötige mehrere unterschiedliche CLK(100,25,10,5,1.25 MHz).

am besten du verwendest nur den 100MHz clock und ezeugst Clock Enable 
signale für niedrigere frequenzen.

von Fabian S. (fsasm)


Lesenswert?

Ich glaube irgendwo mal gesehen zu haben, dass die Taktleitungen 
mindestens 10 MHz sein müssen. Muss das nachschauen.

Ansonsten mach es so, wie es trioflex vorschlägt und du kannst auch 
Multi-cycle constraints hinzufügen.

Edit: Im Datenblatt für Kintex-7 (DS182) steht auf Seite 47, dass der 
MMCM eine minimale Frequenz von 4,69 MHz am Ausgang hat. Beim PLL sind 
es 6,25 MHz.

: Bearbeitet durch User
von Vancouver (vancouver)


Lesenswert?

Es gibt im FPGA spezielle Clockleitungen, die sicherstellen, dass der 
Clockskew so klein wir möglich ist. Bei hohen Frequenzen >10Mhz solltest 
du die möglichst benutzen, bei kleineren Frequenzen kannst auch über die 
normalen Leitungen gehen, wenn der Skew keine Probleme macht. Die 
Clockleitungen haben auch ihre eigenen Low-Skew-Verteiler.

Taktteiler mit Zählern zu bauen ist im FPGA sehr kritisch, das sollte 
man nur machen wenn es sich nicht vermeiden lässt und die Phasenlage zum 
Eingangstakt keine Rolle spielt oder die CMT keine so niedrigen 
Frequenzen erzeugen kann. Ansonsten immer CMTs für die Takterzeugung 
nutzen, denn genau dafür sind sie da.

Die sichere Lösung bei niedrigen Frequenzen ist die schon erwähnte 
Methode mit den enable-Signalen. Aber die Möglichkeit hat man eben nicht 
immer.

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


Lesenswert?

Anton K. schrieb:
> ich benötige mehrere unterschiedliche CLK(100,25,10,5,1.25 MHz)
Wirkliche unabhängige Takte aus unterschiedlichen Taktdomänen?

> (variante1) .... (variante2)
Ich würde Variante 3 machen und hätte da nur 1 Takt mit 100Mhz im Design 
und würde die restlichen Zeiten (das sind ja nur ganzzahlige Teiler) mit 
Clock Enables machen. So ein Design funktioniert auf Anhieb, denn es ist 
garantiert synchron.

: Bearbeitet durch Moderator
von Vancouver (vancouver)


Lesenswert?

Und was machst du, wenn du z.B. einen Ethernet-MAC von einem IP-Provider 
verwenden willst, der 125MHz erwartet und keinen enable-Eingang hat?

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Wenn man diese Diskussion wieder sieht (und die scheinbaren 
Widersprüche) dann wird wieder mal evident, wie wichtig es ist zwischen 
internen Takten in einem FPGA und externen Takten der Elektronik zu 
unterscheiden und dabei logische und physialische Takte auseinander zu 
halten.

Tut man das, gibt es nur noch einen einzigen ÜBerschnitt, nämlich die 
Frage, ob ich einen sehr hochfrequenten Takt über einen toogelnden IO 
mit Systemtakt oder dem Einfachen mit DDR ausgeben möchte oder muss. Der 
Rest klärt sich.

Physische Takte : Vancouver
Logische Takte : Miller

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Fabian S. schrieb:
> Ich glaube irgendwo mal gesehen zu haben, dass die Taktleitungen
> mindestens 10 MHz sein müssen. Muss das nachschauen.

Es gibt solche Einschränkungen direkt nur für die Eingänge von PLL. Man 
kann nicht beliebig niedrig takten. Weiters gibt es faktische 
Einschränkungen, weil man mit einem endliche Multiplier nicht beliebig 
hoch kommt, was ebenfalls eine Mindestfrequenz bedingt.

In der Umkehrlogik ergibt sich aus den Möglichkeiten der DIVs eine 
maximale Taktfrequenz mit der man reingehen kann. Je geringer die ist, 
desto mehr MUL/DIV optionen gibt es.

>CLK über Verteilermatrix geführt ?
Ja, wird es. Der Clock-Baum ist so aufgebaut, dass man von der PLL 
möglichst gleichmäßig überall hin kommen soll. Einschränkungen ergeben 
sich durch manche Resource - vor allem beim physischen 
Clock-Multiplexen.

Da muss man sich die die lokale und globale Buffering-Resourcen 
einlesen, die bei jedem FPGA anders sind.

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.