mikrocontroller.net

Forum: FPGA, VHDL & Co. Probleme mit synchronen Clock Ausgängen -> Timing Constraints


Autor: Daniel S. (uc4life)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Problem beim Erstellen zweier Clocksignale. Ich habe einen 
Clockeingang mit 32 MHz. Aus diesem Signal muss ich zwei Clockausgänge 
generieren. Zum Einen eine Clock mit 32MHz und eine mit 16MHz.
Aus Unwissenheit heraus habe ich einfach den Clockeingang genommen und 
daraus die 32 und 16 MHz generiert um diese anschließend auf normale 
IO-Pins (Keine CLOCK-IOs!!!) zu geben. Auf dem Oszilloskop ist mir 
aufgefallen, dass je nach Compilierung die Signale zueinander 
phasenverschoben sind.

Ich habe bereits rausgefunden, dass ich auf sogenannte Timing 
Constraints zurückgreifen muss. Allerdings weiß ich nicht wie ich diese 
in VHDL implementieren muss.

Kann mir jemand helfen?
Ich arbeite mit einem Xilinx Virtex 4 Board.

Vielen Dank für eure Mühe im Vorraus.

Gruß
Daniel

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Daniel S. (uc4life)

>Kann mir jemand helfen?

Erstmal lies was über Taktung FPGA/CPLD. Ist zwar nicht 100% das 
Problem hier, aber schafft wichtiges Verständnis.

>Ich arbeite mit einem Xilinx Virtex 4 Board.

Na dann ist ja alles Easy. Für den 32 MHz Takt nimmt man ein DDRO 
FlipFlop, also ein DDR-FlipFlop, welches direkt in den IO-Zellen sitzt. 
Einfach direkt instanziieren.
Für den 16 MHz Takt reicht ein normales IO-FlipFlop.

Damit ist deine Verzögerung festgenagelt.

MFG
Falk

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

Bewertung
0 lesenswert
nicht lesenswert
Daniel S. schrieb:
> Ich habe bereits rausgefunden, dass ich auf sogenannte Timing
> Constraints zurückgreifen muss. Allerdings weiß ich nicht wie ich diese
> in VHDL implementieren muss.
Timing-Constraints werden wie die IO-Constraints (Pinzuordnung) nicht im 
VHDL-Text eingegeben, sondern in einer Datei mit der Endung UCF (User 
Constraints File) abgelegt. In dieser Datei sollte mindestens 1 Timing 
Constraint stehen: der FPGA-Takt.

> Aus Unwissenheit heraus habe ich einfach den Clockeingang genommen
> und daraus die 32 und 16 MHz generiert
Wie hast du diese Takte generiert (Quelltext)?
Warum hast/brauchst du 2 Takte?

> Auf dem Oszilloskop ist mir aufgefallen, dass je nach Compilierung
> die Signale zueinander phasenverschoben sind.
Um wieviel? 1ns? 10ns?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wichtig ist, wie schon gesagt, die Takte über ODDR FlipFlips auszugeben.
Zum Beispiel so:
USB_CLK : ODDR Port map(Q => USBclk, C => BusCLK, CE => '1', D1 => '1', D2 => '0', R => '0', S => '0');

Außerdem ist wichtig, dass sie auf einem globalen Clock-Netzwerk sind, 
also am besten per DCM erzeugen und die BUFG an den DCM Ausgängen 
aktivieren. Dann klappt das.

Autor: Daniel S. (uc4life)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Hilfe. Beim Recherchieren nach euren Tipps bin ich über 
ein DCM-Modul gestoßen das ich mit Hilfe eines Wizards in ISE erstellt 
habe. Dieses Modul kann unterschiedliche Takte aus einem vorgegeben Takt 
ableiten. Unteranderem auch das benötigte Ref-Clock und 1/2 Ref-Clock.

Jetzt haben die Clocksignal die selbe Phasenlage und mein Baustein läuft 
einwandfrei...

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.