Forum: FPGA, VHDL & Co. FF mit steigende und fallender Flanke


von Sebastian (Gast)


Lesenswert?

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.

von Christian R. (supachris)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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?

von Sebastian (Gast)


Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

@  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?

von Sebastian (Gast)


Angehängte Dateien:

Lesenswert?

Ich hatte noch die Screenshots vergessen.

Links unter Cell steht FD oder FD_1

von Falk B. (falk)


Lesenswert?

@  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

von Harald W. (wilhelms)


Lesenswert?

Falk Brunner schrieb:

> AHHHHHHH!!! Denglisch soweit das Auge reicht!

Ich würde das "Eutsch" nennen. Passt besser zu "Autsch"! :-)
Gruss
Harald

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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?

von Sebastian (Gast)


Lesenswert?

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?

von Sebastian (Gast)


Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

@  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

von Sebastian (Gast)


Lesenswert?

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.

von Sebastian (Gast)


Lesenswert?

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?

von Wat (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.