Clock Buffer / DCM

Gast #252951
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 ?
Gast #252952
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.

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