DCM verzögerung kompensieren

Gast #1224707
Hallo zusammen,

ich hab nach langem wieder mal mit VHDl zutun.
Die aufgabe lautet hier einen PCI104 bridge aufzubauen mit einem Takt 
von 33MHz. Ich darf hier max. 2ns von Device zu Device verzögerung 
haben.
Nun dachte ich mir, dass ich hier ein DCM einsetzen, der die Verzögerung 
etwas kompensieren kann.
Das Werkzeug(DCM-WIZARD) ist ganz schön aufwendig zu verstehen, sobald 
man mehr macht als nur zu teilen oder zu Multiplizieren.

Hat jemand hier damit etwas Erfahrungen?

Danke,
Ajo
Moderator (Firma: Titel) Persönliche Seite #1224832
> Hat jemand hier damit etwas Erfahrungen?
Mit was denn?
Dem DCM?
Dem DCM-Wizzard?
Dem PCI-Bus?
Einer PCI-Bridge?

Lies mal die Appnotes zur DCM.
Der Clock-Manager macht letztlich nichts anderes, als einen Ausgang auf 
einen Eingang zu beziehen und deren Frequenz und Phase zueinander 
auszuregeln.

Ich nehme nicht den Wizzard, sondern verdrahte den DCM von Hand, dann 
weiß ich was ich habe ;-)
Gast #1224838
Endlich jemand!
Danke Lothar.

ich hab mir das code durch DCM erzugt und in mein VHDL-code eingebunden.
am besten zeige ich dir das code und vielleicht fehlt dir was ein, was 
ich falsch gemacht habe:

-------------------------------begin 
DCM--------------------------------------------------

  GND_BIT <= '0';
   CLK0_OUT <= CLKFB_IN;
   CLKDV_BUFG_INST : BUFG
      port map (I=>CLKDV_BUF,
                O=>CLKDV_OUT);

   CLKFX_BUFG_INST : BUFG
      port map (I=>CLKFX_BUF,
                O=>CLKFX_OUT);

   CLK0_BUFG_INST : BUFG
      port map (I=>CLK0_BUF,
                O=>CLKFB_IN);

   DCM_SP_INST : DCM_SP
   generic map( CLK_FEEDBACK => "1X",
           CLKDV_DIVIDE => 10.00,--2.0,
           CLKFX_DIVIDE => 4,
           CLKFX_MULTIPLY => 2,
           CLKIN_DIVIDE_BY_2 => FALSE,
           CLKIN_PERIOD => 30.30,
           CLKOUT_PHASE_SHIFT => "NONE",
           DESKEW_ADJUST => "SOURCE_SYNCHRONOUS",
           DFS_FREQUENCY_MODE => "HIGH",
           DLL_FREQUENCY_MODE => "LOW", --"LOW",
           DUTY_CYCLE_CORRECTION => FALSE, -- TRUE,
           FACTORY_JF => x"C080",
           PHASE_SHIFT => 10,
            STARTUP_WAIT => FALSE)
      port map (CLKFB=>CLKFB_IN,
                CLKIN=>CLOCK,  --übergabe 33MHz an DCM CLK input
                DSSEN=>GND_BIT,
                PSCLK=>GND_BIT,
                PSEN=>GND_BIT,
                PSINCDEC=>GND_BIT,
                RST=>NotReset, --RST_IN,
                CLKDV=>CLKDV_BUF,
                --CLKFX=>CLKFX_BUF,
    CLKFX=>CLK0,
                CLKFX180=>open,
                CLK0=>CLK0_BUF,
                CLK2X=>open,
                CLK2X180=>open,
                CLK90=>open,
                CLK180=>open,
                CLK270=>open,
                LOCKED=>LOCKED_OUT,
                PSDONE=>open,
                STATUS=>open);
-------------------------------end 
DCM--------------------------------------------------------

Danke!
Gast #1224892
> was ich falsch gemacht habe:
Das kommt darauf an, was du willst...

>>ich würde gerne den Takt eingang CLK0, der nach aussen geht
möglichst ohne verzögerung(z.b. FPGA Pin zu Pin verzögerung) weiter 
geben.
Gast #1227026
Du möchtest den PCI-Takt, der z.B. am Pin 1 herienkommt, auf einem
anderen z.B. Pin 2 möglichst ohne Verzögerungen reproduzieren?

Ganz genau Lothar.
Das will ich erreichen.
Kannst du mir da paar tips geben?
Grüsse

PS: Schöne Ostern
#1227203
Naja, dazu müsstest du wissen, wieviel Gesamt-Durchlauf-Verzögerung du 
in dem FPGA hat, da kannst du den DCM so einstellen, dass er die gerade 
ausgleicht, also mit dem Phase Shift, evtl. im Kombination mit dem 270° 
Ausgang. Dann stellst du die Phase so ein, dass du insgesamt 360° 
erreichst.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.