Clock Leitung auf FlipFlop

Gast #1834554
Lesenswert?

Ich möchte einen Flip Flop im FPGA benutzen. Dies hat ja bekanntlich 
einen D-Eingang und einen Clock-Eingang.

Auf den Clock-Eingang gebe ich einen Clock der so ca. 200MHz besitz. Auf 
den D-Eingang möchte ich ebenfalls einen Clock geben der auch 200MHz 
besitzt.

Da sich die Phasenlage der beiden Clocks um 90° unterscheidet, erhalte 
ich folgendes 1 als Ergebnis:

Wenn die Phasenlaege der beiden Clocks sich um 180° unterscheidet, dann 
erhalte ich als Ergebnis 0.

Nun zu meiner Frage. Laut Datenblatt von Xilinx ist TIDOCK/TIOCKD --> D 
pin setup / Hold with respect to CLK without Delay 0,39ns (bei einem 
Virtex 5 Speedgrade -1)

1.
Bedeutet dies nun das das Signal nur 0.39ns vor dem Clock stabiel 
anliegen muss und 0.39ns nach der ansteigenden Flanke gehalten werden 
muss?


2.
Ich kann mir vorstellen das ISE eine Fehlermeldung ausgiebt, wenn ich 
den ClockBuffer direkt mit dem FlipFlop verbinde. Ich benötige dies um 
zu erkennen ob die Phasenlage 180° betrgägt oder 90°


Die Daten habe ich aus der Tabelle 60 Seite 40.
Gast #1835635
Lesenswert?

> Wenn die Phasenlaege der beiden Clocks sich um 180° unterscheidet, dann
> erhalte ich als Ergebnis 0.

Wenn ich mich nicht irre, hast du bei 180° einen gleichzeitigen 
Signalwechsel an D und CLK des Registers... das wäre nicht gut.
Gast #1835639
Lesenswert?

Nachtrag: Du könntest stattdessen einen "normalen" Datenpfad aus zwei 
Registern hintereinander bauen, die mit den verschiedenen Clocks an CLK 
angesteuert werden. Evtl. eine "kurze" Verzögerung dazwischen (1 CLB 
oder nur Routing-Delay), um Ungenauigkeiten in der Phasenlage 
auszugleichen. Dann gibst du eine 1 auf den Eingang und schaust, wie 
schnell sie "durchwandert". Bei 90° sollte das schneller gehen als bei 
180°. Da kann man auch dem Synthesetool sagen, dass es diesen Pfad bei 
der Timing-Analyse ignorieren soll.
Gast #1836230
Lesenswert?

Ich habe mich vertan ich meinte 90° und 270°.

Ich habe jetzt folgendes gemacht:

If(CLK_2 Event und ansteigend)then
{
   If(CLK_1 = '1')then
   {
      Phase_90 = '1';
   }
   else
      Phase_90 = '0';
}


Jetzt habe ich halt den CLK_2 im Diagramm der untere Clock als 
Clocksignal. Den CLK_1 gebe ich auf den D-Eingag des Flip Flops.

Nun habe ich jedoch bedenke das es da Probleme gibt, da das CLK_1 Signal 
ja auf der Clock Leitung liegt.
Angehängte Dateien:
Gast #1837084
Lesenswert?

Es funktioniert ja auch. Nur liegen beide CLK-Signale auf 
Clockleitungen. Ich dachte diese Clockleitungen können nicht mit den 
D-Eingang eines FlipFlops verbunden werden, da dies physikalisch nicht 
möglich ist.

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