Forum: FPGA, VHDL & Co. Steigende und fallende Flanke der Clock verwenden


von Christian P. (kron)


Lesenswert?

Hallo,

kann ich in 2 verschiedenen Prozessen auf die steigende
bzw. die fallende Flanke eines Clock-Signals takten?
Oder ist es besser, nur mit steigender zu arbeiten und
ein zweites Signal mit NOT zu erzeugen,
auf welches man dann mit steigender Flanke taktet?
Was ist die FPGA-freundlichste Möglichkeit?

von Falk B. (falk)


Lesenswert?

@ Christian Peters

>kann ich in 2 verschiedenen Prozessen auf die steigende
>bzw. die fallende Flanke eines Clock-Signals takten?

Ja.

>Oder ist es besser, nur mit steigender zu arbeiten und
>ein zweites Signal mit NOT zu erzeugen,
>auf welches man dann mit steigender Flanke taktet?

Nein.

>Was ist die FPGA-freundlichste Möglichkeit?

Kommt am Ende das gleiche raus.

MfG
Falk




von Christian (Guest) (Gast)


Lesenswert?

FPGA: keine Erfahrung

ein NOT (inverter): Laufzeit beachten (?)
Je nach Takt ist ein NOT ggf. zu schnell
=> mehrere NOTs oder ANDs in Reihe - wegen timing.

das kann bei einigen MHz schon interessant sein:
Größe der gesamtschaltung + taktfreq. korrelieren.

von Falk B. (falk)


Lesenswert?

@ Christian

>FPGA: keine Erfahrung

Warum schreibst du dann hier?

>ein NOT (inverter): Laufzeit beachten (?)
>Je nach Takt ist ein NOT ggf. zu schnell

Zu schnell?

>=> mehrere NOTs oder ANDs in Reihe - wegen timing.

???

>das kann bei einigen MHz schon interessant sein:
>Größe der gesamtschaltung + taktfreq. korrelieren.

Bin verwirrt.

Zum Problem der "Taktinvertierung". Das ist bei allen gängigen FPGAs 
Gottseidank problemlos, denn das Inverieren der Taktpolarität erfolgt 
direkt in der Macrozelle/CLB/LE. Da wird kein NOT dazwischengeschleift. 
Somit ist auch das Timing dort sauber. Darauf bezog isch auch meine 
Aussage "Kommt am Ende das gleiche raus". Die Synthesetools erkennen die 
Invertierung des Taktes und generieren die richtige Logik ohne 
NOT-Gatter in der Taktleitung.

MfG
Falk


von Christian P. (kron)


Lesenswert?

Und ist das insgesamt ok, sowas zu machen?
Oder ist das irgendwie unsauber und sollte anders
gelöst werden?

von Falk B. (falk)


Lesenswert?

@ Christian Peters

>Und ist das insgesamt ok, sowas zu machen?

Im Prinzip schon. Aber die meiste Logik läuft mit einer Taktflanke. 
"Schlaue Leute" benutzen manchmal beide Flanken weil sie glauben dann 
die Logik "sicher" zu machen, falls mal ein paar FlipFlop "zu langsam" 
sind etc. Praktisch heisst das aber, dass die maximal erreichbare 
Taktreqeunz halbiert wird, weil Datenpfade von der einen zur nachsten 
Flanke nur noch die halbe Zeit haben. Und das gilt auch nur bei einem 
Tastverhältnis des Taktes von 50%, reals kann das aber schonmal weniger 
sein (typ. 40%..60%).

>Oder ist das irgendwie unsauber und sollte anders
>gelöst werden?

Was willst du denn damit machen? Es gibt sinvolle Anwendungen dafür, 
z.B. DDR-RAM.

MFG
Falk


von Christian P. (kron)


Lesenswert?

Es geht einfach um die Kommunikation mit
anderer Hardware, z.B. bei einem Codec ist
es halt günstig, beim Schreiben die Daten bei fallender
Flanke zu ändern und bei steigender Flanke zu lesen.
So in die Richtung geht das, und zwar bei Frequenzen
so um max. 40-60 MHz (also Clock).

von Falk B. (falk)


Lesenswert?

@ Christian Peters

>es halt günstig, beim Schreiben die Daten bei fallender
>Flanke zu ändern und bei steigender Flanke zu lesen.
>So in die Richtung geht das, und zwar bei Frequenzen
>so um max. 40-60 MHz (also Clock).

Das passt schon. Wobei man sinnvollerweise im FPGA mit nur einer 
Taktflanke arbeitet und nur für die Ein-oder Ausgabe ein FlipFlop am 
IO-Pin auf der anderen Taktflanke einfügt.

MfG
Falk

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.