mikrocontroller.net

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


Autor: Christian Peters (kron)
Datum:

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

Autor: Falk Brunner (falk)
Datum:

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




Autor: Christian (Guest) (Gast)
Datum:

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

Autor: Falk Brunner (falk)
Datum:

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


Autor: Christian Peters (kron)
Datum:

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

Autor: Falk Brunner (falk)
Datum:

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


Autor: Christian Peters (kron)
Datum:

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

Autor: Falk Brunner (falk)
Datum:

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

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.