Ich habe mal eine Frage zu den FlipFlops. Ich benötige einen FF der auf eine steigende Flanke reagiert und einen FF der auf eine fallende Flanke reagiert. Besitzt der FPGA FFs mit steigenden und fallenden Flanke oder wird der Clock durch einen Inverter onertiert? Ich weiß das man auch einen DCM benutzen kann, dies ist jedoch nicht möglich da der Clock nicht konstant ist.
Doppelflanken-FlipFlops gibts nur direkt an den Eingängen, die DDR-Inputs. Intern gabs sowas beim CoolRunner II, um Energie zu sparen, nicht aber in FPGAs. Du kannst aber einfach 2 FlipFlops nehmen, eins auf falling_edge(...) und eins auf rising_edge(...) da wird der Clock auf dem CLB invertiert. zumindest bei Xilinx.
Sebastian schrieb: > Ich weiß das man auch einen DCM benutzen kann, dies ist jedoch nicht > möglich da der Clock nicht konstant ist. Was ist das für ein Clock? Woher kommt der? Welche Frequenz (von bis)? Was wird mit den Clock getaktet?
Ich habe siehe Screenshot mal folgendes ausprobiert. Ich habe 1 FD und eine FD_1 siehe Screenshot im Anhang genommen. Der FD_1 besitzt einen inverter am Clock Eingang. Anschließend habe ich mal alles Routen lassen und mit Plan Ahead geschaut was gemacht wurde. Plan Ahead zeigt an das zwei unterschiedlcihe FF verwendet wurden. Somit geht der CLK direkt vom BUGF jeweils auf den Clock Eingang der Flip Flops. Plan Ahead zeigt an der eine FF als FD und der andere FD als FD_1 konfiguriert ist. Was ich machen möchte ist folgendes. Ich habe ein externen Pulse beim dem ich die steigende und fallende Flanke sehr genau erkennen muss. Zwischen der steigenden und fallende Flanke liegen 1.25ns. Es ist jedoch kein CLK, da dieser Pulse sehr unregelmäßig kommt. Ich habe einen Zähler, den Zustand möchte ich Speichern, wenn der Pulse auftritt. Daher ein FF mit steigender und ein FF mit fallender Flanke. Das Problem ist nur wenn da ein Inverter dazwischengeschaltet wird. Ich weiß halt nicht wie groß die Durchlaufzeit von so einem Inverter ist. Ein Durchlaufzeit von 1ns oder 0.5ns ist dann schon zu viel. Über ein IDDR Register hatte ich noch nicht nachgedacht. Die schalten ja einen Inverter dazwischen umd den CLK mit 180° Phasenversatz zu erzeugen. Vielleicht ist es ja die bessere Variante.
@ Lothar Miller (lkmiller) Benutzerseite >> möglich da der Clock nicht konstant ist. >Was ist das für ein Clock? >Was wird mit den Clock getaktet? AHHHHHHH!!! Denglisch soweit das Auge reicht! NEIEEEN! Was bitte ist an dem gutem alten Wort "Takt" auzusetzen?
Ich hatte noch die Screenshots vergessen. Links unter Cell steht FD oder FD_1
@ Sebastian (Gast) >Ich habe ein externen Pulse beim dem ich die steigende und fallende >Flanke sehr genau erkennen muss. Warum? >Zwischen der steigenden und fallende >Flanke liegen 1.25ns. Sind "schlappe" 400MHz 8-0 > Es ist jedoch kein CLK, da dieser Pulse sehr >unregelmäßig kommt. Ich habe einen Zähler, den Zustand möchte ich >Speichern, wenn der Pulse auftritt. Also den Zeitpunkt dieser beiden Flanken speichern. >Daher ein FF mit steigender und ein FF mit fallender Flanke. Das Problem >ist nur wenn da ein Inverter dazwischengeschaltet wird. Ich weiß halt >nicht wie groß die Durchlaufzeit von so einem Inverter ist. Ein >Durchlaufzeit von 1ns oder 0.5ns ist dann schon zu viel. Das ist in heutigen FPGAs eher im Bereich 0,1ns zu suchen, WENN man die richtigen Komponenten im FPGA nutzt. MFG Falk
Falk Brunner schrieb: > AHHHHHHH!!! Denglisch soweit das Auge reicht! Ich würde das "Eutsch" nennen. Passt besser zu "Autsch"! :-) Gruss Harald
Falk Brunner schrieb: > Was bitte ist an dem gutem alten Wort "Takt" auzusetzen? Ich habe nicht vom Clock angefangen, ich habe nur den Begriff weiterverwendet... ;-) Schon Sebastian schrieb: >> wird der Clock durch einen Inverter onertiert?
Wie immer entsteht viel unter Zeitdruck da schleichen sich schon mal Fehler ein. @ Falk es wäre schön wenn Du auch ein Hinweis geben würdest welches Bauteil Du meinst. Mit 0.1ns ist mir nicht wirklich viel geholfen. Meinst Du damit das der Inverter eine Durchlaufzeit von 0.1 ns besitzt?
Ich könnte jetzt eine Timing Simulation machen um herauszufinden die lange die Laufzeit plus die Schaltzeit beider FF dauert. Bitte jetzt daran aufhängen ob es Takt oder Clock heist.
@ Sebastian (Gast) >es wäre schön wenn Du auch ein Hinweis geben würdest welches Bauteil Du >meinst. Den intrinsischen Inverter der FlipFlops. Jedes FlipFlop kann je nach Konfiguration auf stiegende ODER fallende Flanke reagieren. Es gibt aber nur einen Takteingang am FlipFlop bzw. Slice. Also muss IM FlipFlop ein Inverter sein. Die genauen Zeiten muss man sich etwas mühsam aus den endlosen Timingzahlen des FPGAs rausziehen, steht meist nur indirekt drin. Aber da diese Method bei modernen FPGAs und Datenraten um 1Gbit/s und mehr erfolgreich angewendet wird, kann es nicht soviel sein. Zum Vergleich. Die DCMs arbeiten mit Inverterketten, um variable Delays zu erzeugen. Ein Schritt = 1 Inverter, und der liegt je nach FPGA-Familie im Bereich von 20-100ps. 8-0 >Meinst Du damit das der Inverter eine Durchlaufzeit von 0.1 ns besitzt? Ja. MfG Falk
Vielen Dank für die Ausführung. Das sind ja sehr gute Nachrichten. Dann kann ich meine Schaltung nach meinen Vorstellungen umsetzen. Ich werde es anschließend mit einer Timing Simulation noch mal gegenprüfen. Also muss ich darauf achten das ich die beiden FFs nicht zugleich in einem Sclice plaziere, da nach Deiner Aussage nur Bauteile erlaubt sind die auf die gleich Flanke reagieren.
Du hast Recht :-) Ich habe mal versucht beide FF in einem SLICEL zu plazieren. Dies geht nicht. Jedoch kann ich den einen FF im SLICEM und den anderen im SLICEL von Hand plazieren. Oder ich plaziere die FFs in nebeneinander liegenden SLICEL oder SLICEM Elementen. Gibt es dort zwischen den SLICEM und SLICEL starke unterschiede?
Was genau hast du eigentlich vor? Kannst du mal den Schaltungsteil nach den beiden (unterschiedlich getakteten) FFs zeigen?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.