takte synchronisieren

Gast #389009
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
Gast #389012
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
Gast #389014
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:
1
process(CLK_Fast)
2
begin 
3
if rising_edge(CLK_Fast)then 
4
  CLK_Slow_sync <= CLK_Slow;
5
end if ;
6
end process;

reicht das ?

oder soll ich 2 FF hintereinander machen ?

etwa so
1
.
2
.
3
CLK_Fast : in std_logic;
4
CLK_Slow : in std_logic;
5
OUTPUT   : out std_logic; 
6
.
7
.
8
.
9
signal :  CLK_Slow_sync  std_logic; 
10
signal :  CLK_Slow_sync std_logic; 
11

12

13
process(CLK_Fast)
14
begin 
15
if rising_edge(CLK_Fast) then 
16
      CLK_Slow_sync <= CLK_Slow;
17
      OUTPUT <= CLK_Slow_sync;
18
end if ;
19
end process;

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