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