[Klokken] 26.6Mhz fra 80Mhz.

P

pjyc

Guest
HI THERE. Jeg har 80Mhz klokke på systemet mitt. og vi trenger å få 26.666Mhz fra 80Mhz. (80Mhz / 3 = 26.666Mhz) Nedenfor kildekode er den delen av 26.6Mhz klokke generater. Vi har fått gode resultat av simulator. men virkelige systemet var ikke bra. Er det noen som kan foreslå anyting å gjøre med det? takk.
Code:
 library IEEE; bruk ieee.std_logic_1164.all, bruk ieee.std_logic_unsigned.all; enhet clk26M er port (clk: i std_logic; outclk: buffer std_logic); end clk26M; arkitektur p1 av clk26M er signal count: std_logic_vector (2 downto 0); signal div2: std_logic; signal div3: std_logic; signal dlydiv3: std_logic; begynner - Delte to prosess (clk) begynne if (clk'event og clk = '1 ') da div2
 
prøv denne koden:) library IEEE; bruk ieee.std_logic_1164.all, bruk ieee.std_logic_unsigned.all; enhet clk26M er port (clk, reset: i std_logic; outclk: out std_logic); end clk26M; arkitektur p1 av clk26M er signal telle : std_logic_vector (1 downto 0); ck1 signal, ck1_dly: std_logic; begynner prosess (reset, clk) begynne hvis reset = '0 'så teller '0'); ck1
 
Jeg fikk ur problem! Ur interne signaler div2, div3 og dlydiv3 må være synkronisert! Du har ikke lagt tilbakestilles til disse flops! initialisere dem til null! I simuleringen slike flopper som ikke har tilbakestilt, må tvinges til tilfeldig Vales. Prøv en simulering med
Code:
 signal div2: std_logic: = '1 '; signal div3: std_logic: = '0'; signal dlydiv3: std_logic: = '1 ';
Your krets wont arbeider enten i simulering! Her er den korrigerte koden!
Code:
 library IEEE; bruk ieee.std_logic_1164.all, bruk ieee.std_logic_unsigned.all; enhet clk26M er port (clk: i std_logic; rst_n: i std_logic; outclk: buffer std_logic); end clk26M; arkitektur p1 av clk26M er signal count: std_logic_vector (2 downto 0); signal div2: std_logic; signal div3: std_logic; signal dlydiv3: std_logic; begynner - Delte to prosess (clk, rst_n) begynne if (rst_n = '0 ') da div2
 
Hei, kanskje prøve dette, tror jeg dette tar mindre plass og fungerer også ved høyere klokkefrekvens. Hvis noe galt Vennligst gi meg beskjed ... Best Regards,
 
Ja! Circuit gitt av dBUGGER vil fungere korrekt uten reset! Men fasen forholdet mellom CLK og clk_out vil bli tilfeldig hver gang du slår på logikk. En annen ulempe her er både posdege og neg edge flops er nødvendig!
 
Hvis du bruker Xilinx FPGA, er den beste måten å bruke CLKDLL ... kala
 
Takk alle. Jeg sjekket at dBUGGER er kretsen fungerer korrekt uten reset. Jeg har 26.88Mhz fra 80Mhz på systemet mitt. Tusen takk.
 
hvis du ikke bryr de driftssyklus på klokken ut, kan du bruke min kode
Code:
 //========================= =========================== / / Creat på 09/07/2005 / / Hensikt: Del System Clock av N / / Input Clk, Ut sette DivOut / / Vi får posedge av DivOut for andre application / / Anta at krever divisor er N = 3 //======================== ============================ modul PulseDiv (Clk, DivOut), inngang Clk; utgang DivOut; reg [01:00] DivCount; / / 2 ^ 2 = 4> 3 reg DivOut; / / Avdeler utgang parameter divisor = 3; / / N = 3 alltid @ (posedge Clk) DivOut
 

Welcome to EDABoard.com

Sponsor

Back
Top