Kaip tai padaryti Laikrodis devider į FPGA!?

V

visada @ pa

Guest
Hi all,

I gonna naudoti laikrodis padalinta 2 mano dizainas.Ar kas nors čia man, kad:

1.turi i naudoti registro gauti laikrodis-suskirstyta pagal 2 arba chip PLL!?
2.kokie yra protential problema naudojant du laikrodžiai su dizainu, kai darai sintezė!?

Dėkoju iš anksto

linkėjimai,
visada (ne) protingas

 
Kiek žinau, jūs negalite padaryti tai @ ltera APEX FPGA.

Laikrodžiai turi būti naudojami griežtai pasaulio laikrodis linijas.

 
Manau, kad galite sukurti paprastą dvejetainis skaitiklis, kad padidėjimų tarpusavyje laikrodis tada imtis produkcijos jums reikia; Jei reikia laikrodis / 2 imtis pirmojo išėjimo, jei jums reikia laikrodis / 4 pasirinkite 2nd vieną ir tt ..
Čia yra kodas laikrodis dalytuvas padalinti 16, 32, 64 ...ibrary IEEE;
naudoti IEEE.std_logic_1164.all;
naudoti IEEE.std_logic_arith.all;
naudoti IEEE.std_logic_unsigned.all;

subjektas clockdiv yra
uostų (
parą: į std_logic; - laikrodis įvedimas
bitclk4: iš std_logic; - clock/16 (4 * KALTAI laikrodis)
bitclk2: iš std_logic; - clock/32 (2 * KALTAI laikrodis)
bitclk: iš std_logic); - clock/64 (bitų laikrodis)
pabaigos clockdiv;

Architektūra elgesį clockdiv yra
signalas q: std_logic_vector (5 downto 0): = "000000";
pradėti

procesas (laikrodis, q)
pradėti
jei (clock'event ir laikrodžių ='1 '), tada
q <= q 1;
end if;
bitclk4 <= q (3);
bitclk2 <= q (4);
bitclk <= q (5);
galutinio proceso;

pabaigos ELGSENOS;jei reikia laikrodis / 2 Užtektų q (0)

siekiant patikrinti keletą valandų, I
don't think it's synthizable ...Manau, turėtų atlikti savo patikrinimą vienas laikrodis tik ...

 
Hi all,

Dėkojame už pagalbą .. leiskite man paaiškinti, truputį daugiau mano dizainas

I'm orientacija naudoti A! ter @ cycl0ne EP1C6, kad turi 2 vidinės PLL ten.

Dabar aš naudoju du laikrodžiai mano dizainas, laikrodžio ir clock_div2, aš planuoju panaudoti vidaus PLL statyti clock_div2 taip pat vis dar mano, kad pasiūlymas iš Vonn (žr. pirmiau msg).

Man labiau susirūpinusioms sintezė po to, kai sistema buvo sintetinti, aš
nesu įsitikinęs, ar ji pažeidžia įdiegimo metu, ar ne, nes clock_div2 tam tikra laikotarpį, jeigu jis yra sukurtas skaitliukas.

Kiekvienas gali telll man, kaip daryti ir ką daryti iš savo patirties!?

taip pat, kaip man patikrinti konfigūraciją ir palaikykite metu pažeidimas kurie pagal laikrodžio arba clock_div2!?Thank you in advance

visada (ne) protingas

 
Kaip jums PLL viduje FPGA, rekomenduojame jį naudoti.Tai teisingas kelias, siekiant sukurti naujas laikrodis.Aš nenaudojamas @ ltera FPGAs, tačiau paprastai vidaus pasaulio laikrodis Linex gali būti gaunamos pagal PLLs.Jei naudojate FS padalinti laikrodis ir sukurti naują laikrodį, jis nebus skirtas maršrutą išteklių prijungtas prie pasaulio laikrodis linijas, dėl kurių gali atsirasti daug nerijos savo logika.
Jūs turite galvoti apie naudojant FF tik jums nereikės jokių PLL atsarginių.Jei cant atsarginių su PLL, tada naudojant FS gegužė ot įtakos jūsų priklausomai nuo projektavimo, veikimo dažnis
ir tt
 
! Įvesties laikrodis su PLL turi minimalaus dažnumo reikalavimai.

Pavyzdžiui, Minimalus laikrodis už Xilinx Spartan II CLK_DLL yra 24 MHz.Prašome patikrinti cyclone's specifikacija atidžiai.

Jei jis tik padalinti iš 2, vieną przełączać flipflop yra pakankamai.Pašarų produkcijos ir przełączać flipflop pasaulio laikrodis buferio geriau laikrodis paskirstymo.

 
haiparašyti kodą taipbiblioteka IEEE;
naudoti ieee.std_logic_1164.all;

- Pašalinti šias eilutes naudoti deklaracijų, kurios
- Numatyta instancija Xilinx primityvios komponentai.
biblioteka UNISIM;
naudoti UNISIM.VComponents.all;

subjektas clkdll_divide yra
uostų (
clk_in: į std_logic;
clk_out: iš std_logic
);
pabaigos clkdll_divide;Architektūra Elgesys su clkdll_divide yra

sudėtinės CLKDLL
generic (CLKDV_DIVIDE: realusis);
uostų (
CLKIN, CLKFB, GR: į STD_LOGIC;
CLK0, CLK90, CLK180, CLK270, CLK2X, CLKDV, Užrakinta: iš std_logic
);
pabaigos komponentas;

sudėtinės IBUFG
uostų (
Aš: į std_logic;
O: iš std_logic
);
pabaigos komponentas;

sudėtinės BUFG
uostų (
Aš: į std_logic;
O: iš std_logic
);
pabaigos komponentas;signalo CLKIN, CLK: std_logic;
signalo CLK0, CLKDV: std_logic;
signalas GND, Užrakinta: std_logic: ='0 ';pradėti

ibufg_1: IBUFG uosto planas (I => clk_in, O => CLKIN);

clkdll_1: CLKDLL
bendrasis planas (CLKDV_DIVIDE => 5.0) - modeliavimo ir PAR
uosto žemėlapyje (CLKIN => CLKIN, CLKFB => CLK, GR => GND,
CLK0 => CLK0, CLKDV => CLKDV, Locked => užrakinta);

clk0_bufg_1: BUFG uosto planas (I => CLK0, O => CLK);
clkdv_bufg_1: BUFG uosto planas (I => CLKDV, O => clk_out);pabaigos elgesio;

 
Labas,
Aš sutinku su it_boy pasiūlymą naudoti PLL jei yra prieinami naudoti.
Jei Jūs neturite jokios PLL prieinama, Laikrodžiai dalijant kai skaitiklis gali būti naudojamas, tačiau reikia žinoti ne įkelti skaitikliai pernelyg sunkūs; naudoti produkcijos CE signalas jūsų FS vietoj vairuotojo CLK signalo dirctly (sukurti įvairių ciklo kelią savo "mažo greičio" logika)
Hope it padėjo,
Maddin

 
Mano atsakymas nėra įtraukti naujus, bet aš noriu pabrėžti sprendimo pateikė memebers.
Geriausias būdas yra panaudoti turimus DLL, nes tai sumažins nerijos ir gera vairavimo gebėjimus, nes jos ouput tiekiamos skirta maršrutą buferio, bet jis turi apribojimų dėl minimalaus įvedimo dažnis, jei šis apribojimas yra valied naudojimo DLL.Jei ne, galite atlikti ir suskirstyti mechanizmas bet instantiate pasaulio buferio iš bibliotekos ir prisijunkite laikrodis išėjimo į jį.

 
Labas,

Jei norite naudoti padalintas laikrodis ir pagrindiniai **** į tą pačią funkciją, galite naudoti įjungti signalą.
Jūsų procesas clocked pagal pasaulio laikrodis ir įvesti būklės poveikį skirstomi laikrodis.
į VHDL kodą procesas:

JEI clrn ='0 ', tada
q_signal <='0 ';
ELSIF clk_div2 ='0 'THEN NULL;
ELSIF (clk'EVENT IR CLK ='1 ') THEN
q_signal <= d_input;
END IF;

Visos registrų projektavimo bus clocked pagal pasaulio CLK.Jūs neturite problemų su įdiegimo metu.<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />Nota: jei norite naudoti kitą skirstomos laikrodis (pvz.: DIV3, div7, ....), savo padalintas laikrodis turi būti impulsų vieno CLK laikotarpio trukmę bei dažnį, ko reikia.

 
Hi all,

Aš turiu kita problema dabar.

Dabar man reikia sukurti dar 2 laikrodis devider už išorinio prietaiso, todėl aš turiu 2 aukšto vairuotojo-tvirtumas (didelės talpos) produkcijos siekiant sugebėti vairuoti išorinio prietaiso.

Kaip aš galiu tai padaryti?dar daugiau, ką turiu daryti?Prašome rodo man ..

Thankyou anksto.

Linkėjimai,
Visada (ne) protingas

 
visada (at) Smart rašė:

Hi all,Aš turiu kita problema dabar.Dabar man reikia sukurti dar 2 laikrodis devider už išorinio prietaiso, todėl aš turiu 2 aukšto vairuotojo-tvirtumas (didelės talpos) produkcijos siekiant sugebėti vairuoti išorinio prietaiso.Kaip aš galiu tai padaryti?
dar daugiau, ką turiu daryti?
Prašome rodo man ..Thankyou anksto.Linkėjimai,

Visada (ne) protingas
 
Patikrinkite savo FPGA Kaisčiai išėjimo talpa ir vairuoti stiprumas.Ar tai ne suffecient?

 
Į FPGA tik LVTTL tipo I / O pins ......

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Liūdnas" border="0" />todėl ir neturime kito pasirinkimo ..

Bet aš skaitykite vartotojo vadove jie turėtų LVDS I / O pins .. Can anyone tell me, kas yra skirtumas Btw LVDS ir LVTTL!?Kurių viena yra didesnė vairavimo stiprio?

Thank you in advance.

Linkėjimai,

Visada (ne) protingas

 
kuris FPGA naudojate?
Kai kuriose Xilinx FPGAs Aš naudojamas disko srovė konfigurowalne nuo 2mA iki 24mA.
Rezultatus gali būti konfigūruojama kaip LVDS per.

LVDS yra žemos įtampos Differentisl signalizacijos.
LVTTL yra bendrosios sudėties.LVDS laikrodžiai bus vienas teigiamas linijos ir vieną neigiamą eilutę.
Tai geriau suprasti reikalavimo, jūsų paraiška rinktis tarp dviejų.

 
Hi all,

Kaip minėta anksčiau, I'm nukreiptį A! Tera Cycl0ne EP1C6 FPGA mano dizainas.

Ačiū

 
Pagal šį
\ hxxp: / / www. @ ltera.com /
products / prietaisų / cikloninių /
features / cyc-diff_single_io.html
EP1C6 pasirašė LVDS kanalai.But I dont know jei galite konfigūruoti išvesties įrenginys dabartinę.

 
Jei norite naudoti laikrodžio išorėje, vienas svarbus dalykas, kurį reikia atsižvelgti.Be PLL arba DLL, vėlavimas nuo užsiregistruoti trinkelėmis paprastai yra didžiulis (gali viršyti 10ns).Jei jūsų projektas greitaeigis vieną, jums reikia dėl dviejų laikrodis visiškai nesusiję.

 
Hi all,

Aš jau bandė įgyvendinti abiejų būdu; naudojant PLL ir registro gauti parą, padalinta į dvi.

Tačiau po sintezę, kad PLL rezultatus ne laikrodis žvairas, todėl ir gavo teisingą produkcija kaip rtl kodą, nuo vartų lygio terminus imitavimui.

bet jei mano dizainą naudoti clock_div_2 iš registro, yra laikrodis nerijos Btw clk1 ir clk2, taigi laiko yra wrong.I pabandyti keletą metodo apribojimų, tačiau vis dar negalėjo rasti tinkamą produkciją, bet nežino, kaip?

ir taip pat i kitą abejonių: ar PLL dizaino tikrai nėra laikrodis nerijos?kas neto vėlavimo Btw šios 2 laikrodžiai domeną?

linkėjimai,
visada (ne) protingas

 

Welcome to EDABoard.com

Sponsor

Back
Top