[CLOCK] 26.6Mhz od 80 MHz.

P

pjyc

Guest
Ahoj. Mám 80MHz hodiny na mojom systéme. a my sa potrebujeme dostať 26.666Mhz od 80 MHz. (80 MHz / 3 = 26.666Mhz) Nižšie zdrojový kód je súčasťou 26.6Mhz hodín generater. Máme dobrý výsledok v simulátore. ale skutočný systém k ničomu. Je tu niekto, kto môže navrhnúť, aby anyting robiť? vďaka.
Code:
 knižnica IEEE, použitie ieee.std_logic_1164.all, použitie ieee.std_logic_unsigned.all, osoba clk26M je port (ČLK: v std_logic, outclk: vyrovnávacie std_logic), koniec clk26M, architektúra P1 clk26M je signál celkom: std_logic_vector (2 downto 0), signál div2: std_logic; signál div3: std_logic; signál dlydiv3: std_logic; začať - rozdelenú 2 proces (CLK) začať if (clk'event a CLK = '1 '), potom div2
 
Skúste tento kód:), knižnica IEEE, použitie ieee.std_logic_1164.all, použitie ieee.std_logic_unsigned.all, osoba clk26M je port (CLK, reset: v std_logic, outclk: z std_logic), koniec clk26M, architektúra P1 clk26M signálu je počet : std_logic_vector (1 downto 0), signál ck1, ck1_dly: std_logic, začne proces (reset, CLK) začať ak reset = '0 ', potom počet 0 "); ck1
 
Mám ur problém! Ur vnútorných signálov div2, div3 a dlydiv3 musia byť synchronizované! Ste nepridali resetovať do týchto KO! inicializácia je na nule! V simulácii takých prepadne, ktoré nemáte reset, musí byť nútený, aby náhodné údoliach. Skúste jeden simulácia
Code:
 Signál div2: std_logic: = 1; signál div3: std_logic: = 0; signál dlydiv3: std_logic: = '1 ';
Vaše obvod zvyknutý pracuje buď v simulácii! Tu je opravený kód!
Code:
 knižnica IEEE, použitie ieee.std_logic_1164.all, použitie ieee.std_logic_unsigned.all, osoba clk26M je port (ČLK: v std_logic, rst_n: v std_logic, outclk: vyrovnávacie std_logic), koniec clk26M, architektúra P1 clk26M je signál Počet: std_logic_vector (2 downto 0), signál div2: std_logic; signál div3: std_logic; signál dlydiv3: std_logic; začať - rozdelenú 2 procesu (CLK, rst_n) začať if (rst_n = 0 "), potom div2
 
Ahoj, možno skúste to, myslím, že to zaberie menej miesta a tiež pracuje na vyššej frekvencii. Ak je niečo zle, prosím dajte mi vedieť ... S pozdravom
 
Áno! Obvod zabezpečuje dBUGGER bude fungovať správne, bez reset! Ale fáza vzťahu medzi ČLK a clk_out bude náhodný každom zapnutí logiku. Ďalšou nevýhodou je, ako posdege a neg okraji obvody sú povinné!
 
Ak používate Xilinx FPGA, najlepší spôsob je použiť CLKDLL ... kala
 
Vďaka všetkým. Overil som si, že je dBUGGER obvod pracuje správne, bez resetu. Mám 26.88Mhz z 80 MHz na mojom systéme. Ďakujem mnohokrát.
 
Ak je to jedno pracovný cyklus hodiny von, môžete použiť môj kód
Code:
 //========================= =========================== / / Vytvorené dňa 09.7.2005 / / účel: Delenie systémových hodín v N / / Vstup CLK Z dal DivOut / / Dostávame posedge na DivOut pre ďalšie aplikácie / / Predpokladajme, že vyžadujú deliteľ je N = 3 //======================== ============================ modul PulseDiv (CLK, DivOut), vstupné CLK, výstup DivOut, reg [01:00] DivCount; / / 2 ^ 2 = 4> 3 reg DivOut / / Divider výstupy parameter deliteľ = 3 / / N = 3 Vždy @ (posedge CLK) DivOut
 

Welcome to EDABoard.com

Sponsor

Back
Top