www.mikrocontroller.net

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


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Sebastian (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

Autor: Christian R. (supachris)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

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

Diesen Beitrag bewerten:
lesenswert
nicht 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?

Autor: Sebastian (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

Autor: Falk Brunner (falk)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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?

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

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Ich hatte noch die Screenshots vergessen.

Links unter Cell steht FD oder FD_1

Autor: Falk Brunner (falk)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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

Autor: Harald Wilhelms (wilhelms)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Falk Brunner schrieb:

> AHHHHHHH!!! Denglisch soweit das Auge reicht!

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

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

Diesen Beitrag bewerten:
lesenswert
nicht 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?

Autor: Sebastian (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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?

Autor: Sebastian (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

Autor: Falk Brunner (falk)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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

Autor: Sebastian (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

Autor: Sebastian (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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?

Autor: Wat (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Was genau hast du eigentlich vor? Kannst du mal den Schaltungsteil nach
den beiden (unterschiedlich getakteten) FFs zeigen?

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net