mikrocontroller.net

Forum: FPGA, VHDL & Co. takte synchronisieren


Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,
ich habe zwei verschiedene Takte in meinem System.
Gibts App Notes oder Whitepapers wo beschrieben wird wie man sinnvoll
zwei Takte auffeinander synchronisiert ? ..
ich habe bei Xilinx nichts in dir Richtung gefunden ..

 Danke
  Chris

Autor: Christian Schleiffer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na, versuch es mal hiermit:
http://www.xilinx.com/xlnx/xweb/xil_tx_display.jsp...

Gruß
Christian

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke sehr. peinlich ...
 chris

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

dazu haette ich auch eine Frage. In einem Design moechte ich zwei
CPLD's XC9532 nutzen, weil diese im TQFP Gehaeuse zukriegen sind.
Einer der beiden CPLD's ist ein Memory Controller fuer asynchronen
SRAM. Der zweite CPLD wird zum sampeln von den Daten genutzt. Sollte
ich nun beide CPLD's an einem Quarzoszillator parallel anschliessen
oder sollte ich in den einem CPLD den Takt fuer den zweiten CPLD
erzeugen?

Was ist besser um Clock Skew's zuvermeiden?

Gruß,

Dirk

PS.: Wieso ich kein XC9572 nutze liegt daran das diese nur im PLCC
zukriegen sind.

Gruß,

Dirk

Autor: schlumpf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tauschen die beiden CPLDs Daten miteinander aus?

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ja eine Datenuebergabe erfolgt.

Gruß,
Dirk

Autor: Axel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Sollte ich nun beide CPLD's an einem Quarzoszillator parallel
anschliessen oder sollte ich in den einem CPLD den Takt fuer den
zweiten CPLD erzeugen? "

Ich würde letzteres machen. Die Daten basieren ja auf dem internen Takt
der ersten CPLDs, daher würde ich diesen, internen Takt für die
Weiterverarbeitung nutzen.

Entscheidend ist ja nicht so sehr der Skew zwischen den beiden Takten,
sondern der zu Deinen Daten, die Du übertragen willst.

Gruss
Axel

Autor: HolgerB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@chris
http://www.edn.com/contents/images/310388.pdf beschreibt das noch etwas
ausführlicher.

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
danke erstmal.

Bei mir siehts ja so aus das ich die Takte aufeinander synchronisieren
will.
( und nicht die Daten aus einer Taktwelt in eine andere Taktwelt
übertragen )

bei mir ist der Fall so das ich ein langsamen Takt auf einen schnellen
synchronieren will.

( langsam , schnell heißt der der schnelle Takt >> 2* langsamer Takt
ist )

im ersten schritt habe ich mir das ganz einfach so vorgestellt:
process(CLK_Fast)
begin 
if rising_edge(CLK_Fast)then 
  CLK_Slow_sync <= CLK_Slow;
end if ;
end process;

reicht das ?

oder soll ich 2 FF hintereinander machen ?

etwa so
.
.
CLK_Fast : in std_logic;
CLK_Slow : in std_logic;
OUTPUT   : out std_logic; 
.
.
.
signal :  CLK_Slow_sync  std_logic; 
signal :  CLK_Slow_sync std_logic; 


process(CLK_Fast)
begin 
if rising_edge(CLK_Fast) then 
      CLK_Slow_sync <= CLK_Slow;
      OUTPUT <= CLK_Slow_sync;
end if ;
end process;


Autor: Axel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde die zweite Variante nehmen.

Da haben metastabile Zustände zwischen den beiden FF Zeit sich zu
"entscheiden".

Gruss
Axel

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.