Hi!
Weiss jemand zufällig wann die DCM locked meldet ?
Wenn ich folgende Signale aus einer 50mhz clock erzeuge:
_ _ _ _ _ _ _ _ _
100M | |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_...
__ ___ ___ __
50M ............| |___| |___| |___| |___...
______ ______
25M ............| |_______| |_______...
______ ______
!25M ............|_______| |_______| ...
_________________________________
locked ___________|
So sieht es im Simulator aus, locked kommt 0.1ns nachdem alle
Clocks ok sind und kurz nach der ersten gemeinsamen rising edge (der
nicht phasenverschobenen signale).
Ist das immer so oder nur im Simulator ?
Ich muss nämlich einen process der mit 100Mhz läuft so synchronisieren
dass er einen bestimmten Status hat wenn die eine 25Mhz Leitung
ihre rising edge hat.
Da hab ich aber irgendwie probleme mit...
Im Simulator gehts :(
Wie macht man sowas generell ?
Asynchron auf locked warten und dann davon ausgehen das man die erste
100mhz flanke verpasst hat ? (mein aktueller Ansatz)
Oder mit dem 100mhz Takt prüfen ob locked da ist und dann bis 4 zählen
und loslegen ?
Gruss,
Simon
Gast
#297848
Soweit ich das bei der Virtex DLL noch in Erinnerung habe, braucht diese DLL einige tausend Taktzyklen, um auch das LOCKED Signal zu erreichen. Wird wohl bei der Spartan DCM ähnlich sein... Wie wäre es denn, wenn Du die aus Deinem Eingangstakt generierten Takte erst dann auf die entsprechenden Ausgänge der Entity, die die DCM enthält, schaltest, wenn das LOCKED Signal auf High gesetzt wird, wie zB: SYSTEMCLK_2X_o <= CLK_2x_Buf when DLL1_Locked = '1' else '0'; Dabei sind CLK_2x_Buf und DLL1_Locked Signale, die laut dem Virtex Datasheet an der Instanzierung der CLKDLL bzw benötigten Buffern geschaltet werden. Gruß Tom
Gast
#297849
Hi! Habe mitlerweile rausgefunden dass das locked nicht immer dann kommt wenn alle übereinander synchron sind :( Dein Vorschlag hilft mir aber nicht den ersten Takt zu finden wo alle Signale die steigende Flanke haben... Ich hatte dann einfach mal nach einer steigenden Flanke von 25mhz gesucht:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
Aber das spukt auch irgendwie rum.. Mir ist vorhin beim testen aber noch was ganz seltsames aufgefallen: Ich hatte mitten im Betrieb aufeinmal den Fall dass die DCM von locked auf unlocked ging :o Muss ich nochmal auf dem eval board testen morgen. Nicht dass da irgendwas mit meiner entworfenen Platine nicht stimmt...
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.