Forum: FPGA, VHDL & Co. Clock Buffer / DCM


von Peter (Gast)


Lesenswert?

Hallo zusammen,

ich spiele im Moment etwas mit VHDL, Spartan-3 und der Xilinx ISE
7.1herum, um mich

Für ein simples Lauflicht möchte ich mittel DCM den Takt
herunterteilen. Mit Hilfe des Wizzards habe ich alle Einstellungen
gemacht und folgendes Template zum instanziieren in meinem Code
bekommen:

  COMPONENT Lauflicht_DCM
  PORT(
    CLKIN_IN : IN std_logic;
    RST_IN : IN std_logic;
    CLKDV_OUT : OUT std_logic;
    CLKIN_IBUFG_OUT : OUT std_logic;
    CLK0_OUT : OUT std_logic
    );
  END COMPONENT;

  Inst_Lauflicht_DCM: Lauflicht_DCM PORT MAP(
    CLKIN_IN => clk50,
    RST_IN => reset,
    CLKDV_OUT => clk,
    CLKIN_IBUFG_OUT => ,
    CLK0_OUT =>
  );

Soweit so gut. Für mein Lauflicht wollte ich nun den heruntergeteilten
Takt CLKDV_OUT benutzen.

Allerdings verstehe ich noch nicht genau, was es mit den Clock Buffer
auf sich hat. Mein Eingangstakt (50MHz) gebe ich über Global Clock
Buffer IBUFG auf den DCM. Hoffe, dass ist richtig. Was mache ich aber
mit CLKIN_IBUFG_OUT => ....

Vielleicht könnt ihr mir ganz allgemein mal erklären, was es mit den
Clock Buffer auf sich hat.

- wozu dienen die Clock Buffer ?
- Wozu dienen die Ausgangs Clock Buffer ?
- der Spartan-3 besitzt 4 Globale Clock Buffer, die auf den DCM führen.
Was mache ich, wenn ich aber mehr als 4 Taktsignale habe ?
- Brauche ich die Clock Buffer nur in Verbindung mit dem DCM ?

von FPGA-User (Gast)


Lesenswert?

würde mal vermuten (sollte alles in entspr. App-Notes stehen)
dass der Ausgang CLKDV_OUT auf einen globalen Buffer gelegt
werden muss, denn ein Taktnetz stellt eine ordentliche
'Last' dar, d.h. da ist ein Buffer schon angebracht.

Jetzt wird der Ausgang des Buffers, also das Taktnetz wieder
mit CLKIN_IBUFG_OUT verbunden. Das ist sozusagen die Rückmeldung
des aktuellen Clock-Signals an die DCM. Nur damit ist die
DCM in der Lage, die Phasendifferenz zwischen dem Eingangstakt
und dem internen Taktnetz im FPGA auf 0 zu regeln.

Indem man vom Ausgang des globalen Buffers zurückführt, wird
das Delay des Buffers selbst mit kompensiert.
Hoffe, ich liege da richtig, arbeite nur mit ALTERA und da gibts
keine DLLs sondern PLLs, das Ziel ist aber dasselbe.

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.