Ich habe ein VHDL-Design erstellt, das einen 50-MHz-Takteingang benötigt. Der Spartan-6, an dem ich arbeite, gibt mir ein 100-MHz-Taktsignal, also habe ich den Xilinx Clocking Wizard verwendet, um einen 50-MHz-Takt zu erhalten. Wenn ich "No Buffer" wähle, werden zwei zusätzliche Ports erstellt - a clkfb_in
und a clkfb_out
. Ich verstehe nicht, wofür diese Ports gut sind und wie verbinde ich sie?
Die zusätzlichen Feedback-Ports ( clkfb_*
) werden sichtbar, wenn Sie für die „Clock Feedback Source“ (Seite 3 des Clocking Wizard, Version 3.6) etwas anderes als die Standardeinstellung „Automatic control on-chip“ auswählen. Es hat nichts mit der Auswahl von „No Buffer“ für den Eingangstakt zu tun.
Wenn Sie nur einen internen 50-MHz-Takt aus dem externen 100-MHz-Takt herausholen möchten, wählen Sie die Voreinstellung "Automatic control on-chip". Und auf der ersten Seite wählen Sie für den Eingangstakt:
entweder "Single ended Clock Capable Pin", wenn der externe Takt über eine einzelne Leitung mit dem FPGA verbunden ist (am häufigsten für 100 MHz),
oder "Differenztaktfähiger Pin", wenn der externe Takt über LVDS angeschlossen ist.
Die anderen Feedback-Optionen werden nur für eine erweiterte Steuerung der Phasenbeziehung zwischen dem ursprünglichen und dem erzeugten Takt benötigt. Dazu bieten die Ports clkfb_in
und Zugriff auf die Rückkopplungsschleife der PLL .clkfb_out
Ein Beispielszenario ist der Zero Delay Buffer, bei dem der erzeugte Takt vom FPGA wieder ausgegeben wird. Wenn nun der ursprüngliche Takt (am Input-Clock-Pin) und der generierte Takt (am Output-Pin) in Phase sein sollen, muss die Rückkopplungsschleife auch auf die Verzögerungen der Input- und Output-Treiber der FPGA-Pins treffen. Daher muss man den erzeugten Ausgangstakt (am Ausgangspin) über die Leiterplatte an einen anderen (Takt-)Eingangspin des FPGA rückkoppeln und diesen Eingangspin mit dem Taktrückkopplungs-Eingangsport der PLL ( ) verbinden clkfb_in
. Hat in diesem Szenario der erzeugte Takt eine andere Frequenz als der Originaltakt, muss man das Clock-Feedback-Ausgangssignal ( ) herausführen clkfb_out
und über die Platine zurückführen. Ein Bild dieses Setups finden Sie im Benutzerhandbuch UG382 Spartan-6 FPGA Clocking Resourcesin Abbildung 3-13 auf Seite 111.