Hallo, ich würde mich riesig über eine Hilfe von euch Verilog Profis freuen:
Ich habe mir über ein PLL einen clkSys von ~49MHz erzeugt. Aus diesem generiere ich mir einen clkPhi0 durch eine einfache Teiler/Zähler Funktionalität, welche mir ein clkPhi0 von ~0.98 Mhz gibt. Ich denke, beide CLKs werden quasi somit gemeinsam HIGH ;-) (sorry), wobei natürlich clkSys häufiger die Flanke wechselt als clkPhi0:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
Ich stellte fest, dass wenn der obere Block mit dem Takt clkPhi0 getaktet wird, im unteren Block stets debugVIC<=red ausgeführt wird (also als ob cntCycle nie inkrementiert wird). Wenn ich hingegen den oberen Block ebenfalls mit clkSys takte, wird debugVIC<=yellow (wie erwartet) ausgeführt.
Die Herausforderung für mich ist demnach, zwischen zwei asynchron getakteten Blöcken Daten (hier: reg) auszutauschen/zu synchronisieren. Ich hatte gehofft, dass die Synchronisierung klappt weil beide ja eine identische "High"-Flanke haben und ich nur dann drauf zugreife... War wohl nix. ;-(
Danke schon mal fürs Lesen.