www.mikrocontroller.net

Forum: FPGA, VHDL & Co. FPGA-Takt verdoppeln


Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Es geht um einen Xilinx Spartan II. Ich habe gehört, dass der intere
Hardware hätte um den Eingangstakt (z.B. von einem Quarz) zu
verdoppeln.

Wie lässt sich das in VHDL verwenden ?

thx

Autor: Daniel R. (daniel_r)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht direkt in VHDL, aber in ISE mit dem Core Generator...

Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sieht in VHDL (ISE 6.3.03i) so aus:
------------------------------------------------
DLL 2X
library ieee;
use ieee.std_logic_1164.all;
library unisim;
use unisim.vcomponents.all;

entity dll_standard is
    port (
        CLKIN   : in  std_logic;
        RESET   : in  std_logic;
        CLK2X   : out std_logic;
        CLKD16  : out std_logic;
        LOCKED  : out std_logic
    );
end dll_standard;

architecture structural of dll_standard is

signal  CLKIN_w     : std_logic;
signal  CLK2X_dll   : std_logic;
signal  CLK2X_g     : std_logic;
signal  CLKD16_dll  : std_logic;
signal  CLKD16_g    : std_logic;

begin

    clkpad : IBUFG
    port map (
        I   =>  CLKIN,
        O   =>  CLKIN_w
    );

    dll2x : CLKDLL
    port map (
        CLKIN   =>  CLKIN_w,
        CLKFB   =>  CLK2X_g,
        RST     =>  RESET,
        CLK0    =>  open,
        CLK90   =>  open,
        CLK180  =>  open,
        CLK270  =>  open,
        CLK2X   =>  CLK2X_dll,
        CLKDV   =>  CLKD16_dll,
        LOCKED=>LOCKED
    );

    clk2xg : BUFG
    port map (
        I   =>  CLK2X_dll,
        O   =>  CLK2X_g
    );

    clkd16g : BUFG
    port map (
        I   =>  CLKD16_dll,
        O   =>  CLKD16_g
    );

    CLK2X   <=  CLK2X_g;
    CLKD16  <=  CLKD16_g;

end structural;
------------------------------------------------

Das Konstrukt wird dann ganz normal in die Entity eingebunden als
component.
Es handelt sich nicht um ein "reines" VHDL Konstrukt, sondern um
Xilinx-spezifische Angaben.

Der Core-Generator kann helfen, ist aber nicht unbedingt notwendig.

Hilft das so?

Autor: Daniel R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
<<Es handelt sich nicht um ein "reines" VHDL Konstrukt, sondern um
<<Xilinx-spezifische Angaben.

Du hast ein "k" vergessen. Das macht den ganzen Satz sum Schwachsinn
;)

Autor: Daniel R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups, Sorry. Ich hab das "nicht" ueberlesen...

Also: Der Satz macht doch Sinn. :)

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

schau mal unter "DCM - Digital Clock Manager" oder unter "CLKDLL -
Clock  Delay Lock Looped" nach...

Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DCM mit sehr flexibler Clockraten-Generierung sind erst ab Spartan 3
drin, im Spartan 2 können nur doppelte, vierfache, halbe, sechzehntel
und ähnliche Frequenzen generiert werden.

@Daniel R.: kann passieren, kein Problem!

Autor: Jürgen Schuhmacher (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Kann man die nicht per Hand teilen / gfs auch eine andere PLL führen?

... z.B. ver-n-fachen und durch m und durch 2 dividieren (Zähler),
diese Clk dann raus auf einen Pin, zu einem anderen wieder rein und
dort die nächste PLL drauf.

-> 20MHz x 4 -> 80MHz / 7 -> 11,43 unsymmetrisch, / 2 -> 5,71 mit d.c.
50% -> raus, rain, x 4 -> 22,9 MHz

Mit einer kaskadierten 2/3-Anordnung erhält man aus 10MHz z.B. 1,1111
Mhz oder mit einer einfach 8/5 -> 8MHz.

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, danke Leute!

Ich werde das mal ausprobieren.

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.