Hallo, gibt es eine Möglichkeit in einem Virtex 5 eine Frequnez kleiner 32MHz zu erzeugen? Ich habe eine 100MHz Frequenz. Diese würde ich gerne mittels DCM auf 20MHz reduzieren. Oder gibt es eine andere Methode? Der CoreGenerator sagt, dass das nicht geht.
Schau mal in DS202.pdf nach DCM: CLK0,CLKFX,.. sind nach Unten hin bis 32MHz begrenzt, CLKDV geht aber bis 2MHz. Du musst aber 2 DCMs verwenden, da das zuständige Attribut "CLKDV_DIVIDE" nur bis 16.0 geht.
Cooler Tipp Klock Div! Danke!! Was Ulricht fragt würde mich auch interessieren
Naja, das FPGA kann auch quasi statisch arbeiten. Nur die PLL/DCM haben natürlich eingeschränkte Bereiche. Ist sicher nicht ganz einfach herzustellen, muss ja nach oben hin bis etliche hundert MHz schaffen, und bei den PLLs für die MGTs sogar mehrere GHz....
John schrieb: > Ich habe eine 100MHz Frequenz. Diese würde ich gerne > mittels DCM auf 20MHz reduzieren. Oder gibt es eine andere Methode? Ich würde dafür ein Clock Enable verwenden:
1 | -- tested:
|
2 | signal clk_div_cnt : natural range 0 to 4; |
3 | signal ce_20 : std_logic; |
4 | ...
|
5 | process
|
6 | begin
|
7 | wait until rising_edge( clk_100); |
8 | if clk_div_cnt = 0 then |
9 | clk_div_cnt <= 4; |
10 | ce_20 <= '1'; |
11 | else
|
12 | clk_div_cnt <= clk_div_cnt - 1; |
13 | ce_20 <= '0'; |
14 | end if; |
15 | end process; |
16 | |
17 | |
18 | process
|
19 | begin
|
20 | wait until rising_edge( clk_100); |
21 | if ce_20 = '1' then |
22 | -- do all the slow stuff here
|
23 | end if; |
24 | end process; |
Duke
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.