mikrocontroller.net

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


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: FPGA-User (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.