[Laikrodis] 26.6Mhz nuo 80Mhz.

P

pjyc

Guest
Hi there. Turiu 80Mhz laikrodis ant mano sistemos. ir mes turime gauti 26.666Mhz nuo 80Mhz. (80Mhz / 3 = 26.666Mhz) Toliau šaltinio kodą 26.6Mhz laikrodis generater. Mes turime gerą rezultatą treniruoklį. bet reali sistema buvo nieko gero. Ar yra kas nors, kurie gali pasiūlyti anyting padaryti apie tai? Ačiū.
Code:
 biblioteka IEEE; naudoti IEEE.std_logic_1164.all; naudoti ieee.std_logic_unsigned.all; subjektas clk26M yra uostas (CLK: į std_logic; outclk: buferio std_logic); pabaigoje clk26M; architektūra P1 clk26M signalo skaičius: std_logic_vector (2 downto 0); signalo div2: std_logic; signalas DIV3: std_logic; signalas dlydiv3: std_logic; pradėti Padalinta 2 procesas (CLK) pradėti jei (clk'event ir CLK = '1 '), tada div2
 
išbandyti šį kodą:) biblioteka IEEE; naudoti IEEE.std_logic_1164.all; naudoti ieee.std_logic_unsigned.all; subjektas clk26M yra uostas (CLK, reset: std_logic; outclk: iš std_logic); pabaigoje clk26M architektūra P1 clk26M signalo skaičius : std_logic_vector (1 downto 0); signalo CK1, ck1_dly: std_logic; pradėti procesą (RESET, CLK) pradėti jei naujo = '0 ', tada suskaičiuoti '0'); CK1
 
Gavau UR problema! Ur vidaus div2, DIV3 ir dlydiv3 signalai turi būti sinchronizuoti! Jūs neįrašėte Atstatyti šių FIFO! inicijuoti nuliui! Modeliavimo tokių FIFO, kurie dont turite iš naujo, turi būti priversti atsitiktinai Vales. Išbandykite vieną modeliavimas [kodas] signalo div2: std_logic: = '1 '; signalo DIV3: std_logic: = '0'; signalo dlydiv3: std_logic: = '1 '; [/code] Jūsų grandinė įpratęs darbai arba imitavimo! Čia yra ištaisyti kodą!
Code:
 biblioteka IEEE; naudoti IEEE.std_logic_1164.all; naudoti ieee.std_logic_unsigned.all; subjektas clk26M yra uostas (CLK: į std_logic; rst_n: std_logic; outclk: buferio std_logic); pabaigoje clk26M; architektūra P1 clk26M signalas skaičius: std_logic_vector (2 downto 0), signalo div2: std_logic; signalas DIV3: std_logic; signalas dlydiv3: std_logic; pradėti - Padalinta 2 procesas (CLK, rst_n) pradėti jei (rst_n = '0 '), tada div2
 
Sveiki, galbūt išbandyti šį, aš manau, kad tai užima mažiau vietos ir taip pat dirba aukštojo laikrodžio dažnis. Jei nieko blogo, Please let me know ... Nuoširdžiausi linkėjimai,
 
Taip! Grandinė pagal dBUGGER dirbs teisingai, be naujo! Bet fazės santykius tarp CLK ir clk_out bus atsitiktinis kiekvieną kartą, kai galios logika. Kitas trūkumas čia, tiek posdege ir neg kraštas FIFO yra privalomi!
 
Jei naudojate Xilinx FPGA, geriausias būdas yra naudoti CLKDLL ... Kala
 
Dėkoja visiems. Aš patikrinti, kad dBUGGER "grandinė veikia teisingai be naujo. Turiu 26.88Mhz nuo 80Mhz mano sistema. Labai ačiū.
 
jei jūs ne rūpintis muito ciklą laikrodžio, galite naudoti savo kodą [kodas] //========================= =========================== / / Sukurkite 2005/09/07 / / Tikslas: Padalinti sistemos laikrodis N / / Įvesties Clk iš DivOut / / Gauname DivOut posedge kitos programos / / Tarkime, reikia daliklis yra N = 3 //======================== ============================ modulis PulseDiv (CLK, DivOut); Input Clk; išėjimo DivOut; reg [01:00] DivCount; / / 2 ^ 2 = 4> 3 raj DivOut; / / Divider ouput parametras daliklis = 3 / / N = 3 visada @ (posedge CLK) DivOut
 

Welcome to EDABoard.com

Sponsor

Back
Top