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

Eine eigene Frage? Dieser Thread ist über 20 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.