www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Bug im Xilinx DCM? Locked tut nicht das was es soll


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

Bewertung
0 lesenswert
nicht lesenswert
Servus,

zum Verständnis:
Ich benutze eine einen DCM um meinen FPGA Takt aus dem Systemtakt 
abzuleiten.
Der Systemtakt ist schaltbar. Wenn kein Takt anliegt soll mein FPGA mit 
einem Reset neu starten. Zum generieren des Resets wollte ich das locked 
Signal des DCM nutzen.
Problem:
Wenn das Locked Signal einmal gesetzt ist, fällt es nie wieder ab auch 
wenn der Eingangstakt abgeschaltet ist. Dies habe ich jetzt in Modelsim 
(hier dachte ich es wäre ein Bug vom Modell) und auf der Hardware 
nachgewiesen. Jedes mal bleibt Locked '1' egal was mein Eingangstakt 
macht.

Zum Verständnis hab ich die Simulation angehängt. Nicht verwirren 
lassen. Ich benutze eine "DCM Clock Switching" also 2 DCMs die am 
Ausgang mit einem BUFGMUX umgeschaltet werden können.

Ist das so gewollt? Ich halte das für Mist :-(

Danke
Gruß Hochpass

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

Bewertung
0 lesenswert
nicht lesenswert
Da war mal was, dass das DCM-Modell am Anfang tatsächlich eine gewisse 
Zeit/Anzahl Takte einen Reset braucht.

Allerdings konnte ich das in der Hardware nicht feststellen.

Welches FPGA verwendest du denn überhaupt?

Autor: Hochpass (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus,
ist ein Spartan 3A DSP.
In der Simulation, wenn man den Reset benutzt, muss der Resetpin 
mindestens für 3 Eingangsakte high sein. Ob die Hardware das braucht 
weiß ich noch nicht. Lese mich da gerade tiefer ein...

Die DCMs brauchen einen Reset wenn der Eingangstakt abbricht. Weil der 
Locked Status sich nicht ändert hab ich jetzt mit einer zweiten DCM, 
einem Boardtakt der nicht schaltbar ist und ein bischen Logik den 
Statuspin(1) der besagten DCM abgefragt und generiere jetzt einen Reset, 
wenn der Takt wieder da ist.

Mal sehen ob das das Problem löst. Verstehe trotzdem nicht, warum der 
Locked Pin high bleibt.

Gruß Hochpass

Autor: DCMler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

bei älteren Virtex4 wird bei der Instantiierung von DCMs
(je nach Wahl der Attribute) noch zusätzlich Slices
generiert. Dies ist dann erforderlich, wenn der Eingangstakt
nicht unterbrechungsfrei garantiert wird.

War schon länger her, aber ich kann mich noch grob an ein
AUTO_CALIBRATE_???-Message und eine GATED_CLOCK-Warning
zu erinnern. Schau mal bei Xilinx unter Virtex4-Docus/Answers
nach.

Gruss

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@hochpass:

Wenn Deine Taktumschaltung funktioniert, kannst Du ja evtl. noch mal 
kurz beschreiben, wie Du es gelöst hast. Ich stehe demnächst auch vor 
dieser Aufgabenstellung und da können ein paar Tipps nicht schaden ;-)

Duke

Autor: berndl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hochpass schrieb:
> Ich benutze eine einen DCM um meinen FPGA Takt aus dem Systemtakt
> abzuleiten.
> Der Systemtakt ist schaltbar. Wenn kein Takt anliegt soll mein FPGA mit
> einem Reset neu starten. Zum generieren des Resets wollte ich das locked
> Signal des DCM nutzen.

Wieso nicht den Takt ganz normal (permanent) reingeben und den DCM 
generierten Ausgangstakt per Clk-Multiplexer ein-/ausschalten? Das 
wuerde die Sache deutlich einfacher gestalten.

Woher kommt dein Eingangstakt eigentlich? Wer schaltet den?

Autor: Hochpass (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Duke Scarring schrieb:
> @hochpass:
>
> Wenn Deine Taktumschaltung funktioniert, kannst Du ja evtl. noch mal
> kurz beschreiben, wie Du es gelöst hast. Ich stehe demnächst auch vor
> dieser Aufgabenstellung und da können ein paar Tipps nicht schaden ;-)
>
> Duke

Kommst du zufällieg aus Trier? :-)

Autor: Hochpass (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
berndl schrieb:
> Wieso nicht den Takt ganz normal (permanent) reingeben und den DCM
> generierten Ausgangstakt per Clk-Multiplexer ein-/ausschalten? Das
> wuerde die Sache deutlich einfacher gestalten.
>
> Woher kommt dein Eingangstakt eigentlich? Wer schaltet den?

Kommt von einem Übergeordneten FPGA. Wenn dort online Firmware updates 
laufen oder die Software einen Reset auführt sollen die untergeordneten 
FPGAs sauber loslaufen.


Globale Resetleitung ist nicht vorhanden.

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hochpass schrieb:
> Kommst du zufällieg aus Trier? :-)

Nein, auch wenn ich schonmal zufällig in Trier gewesen bin ;-)

Duke

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

Bewertung
0 lesenswert
nicht lesenswert
So meine Lösung
2 Eingangstakte, 100 MHz läuft permanent 50 Mhz ist schaltbar. Welcher 
Takt genutzt wird ist über einen Schalter (switch_in(0)) wählbar.

Erste DCM ist: DCM Clock Switching mit interner Resetlogik
Zweite DCM: Single DCM

Resetlogik (dcm_rst_1) wird getaktet mit dem Eingangstakt 100Mhz der 
permanent läuft.
Die Statemachine dazu kannst dir ja selber überlegen. Ist nicht so 
schwierig.


no_clock_out wird für Mäusekino benötigt. LED geht an wenn Board keinen 
Takt hat.

Mit "reset" generiere ich dann Resets für meine Resetlogik.


Mal sehen ob es sich bewährt.....

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.