mikrocontroller.net

Forum: FPGA, VHDL & Co. Clock Leitung auf FlipFlop


Autor: Johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Johann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Johann schrieb:
> Nun habe ich jedoch bedenke das es da Probleme gibt
Warum erwartest du (speziell) da Probleme?
Ich würde die Probleme eher in irgendwelchen Timing-Geschichten 
vermuten. Aber den skizzierten Ansatz bekommt du garantiert zum 
Laufen...

Autor: Johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Eismann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann:

SIGNAL1 <= CLK1 ; --nebenläufige anweisung



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

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.