kaip padaryti ieškinio kas xth CLOCK impulsą?

S

srinpraveen

Guest
Hi guys, Turiu labai paprastas abejonių. Aš noriu žinoti, kaip tai padaryti verilog. Noriu daryti tam tikrą veiksmą kiekvieną xth CLOCK impulsą. Kaip įtraukti šią verilog? Kai kurie ppl pasakyti, kad aš turiu naudoti skaitiklis, bet tarkim man reikia padaryti tam tikrą veiksmą kiekvienam 4 CLOCK impulsą auga krašto, tada leidžia pasakyti, kad aš pristatyti skaitiklis. Skaitiklis skaičiuoja net iki 4. Ir tada veiksmas vyksta. Tačiau šis veiksmas vyksta ne vien CLK impulso 4 auga krašto. Noriu gauti pakartojamas 8 auga krašto, 12 krašto, 16 krašto ir pan ... Aš negaliu naudoti x skaitiklių skaičius šią teisę? Aš bandė naudojant mod operatorius, jeigu (prieš% 4 == 1'b0 )....... tokiu būdu mes naudojame C, C + +. Bet tiesą sakant, mod operatorius negali mesti modeliavimo klaidų, tačiau, kita vertus, nėra gauti sintezės dizaino viziją. Kitaip tariant mod operatorius nėra synthesisable vistiek. Ar everbody suprasti mano klausimą? Ir jei kas nors žino apie tai, ar jie gali suteikti paprastą sprendimą?
 
Skaitiklis iš naujo kiekvieną xth CLOCK impulsą.
 
naujo sandėlio skaitiklis yra gera idėja ... Bet problema yra užfiksuoti xth auga krašto .... kaip mes rašome sąlyga, kad? Aš esu priverstas naudoti mod operatoriaus, kuris yra sintezė-... pavyzdžiui, užfiksuoti xth EEG, esu priverstas naudoti sintaksę, pavyzdžiui, jei (skaitiklis% x == 0 ).... Išspręsti šią problemą? Aš suprasti savo atsakymo teisingai? Jei esu ne, tada maloniai pls parengti savo paaiškinimą, kad ji bus padėti man suprasti tai šiek tiek geriau .. aš manau, UR sakydamas: s-ąją, kaip visada @ (posedge CLK) pradėti kovos
 
kaip mes rašome, kad sąlyga? Aš esu priverstas naudoti mod operatoriaus, kuris yra sintezė-... pavyzdžiui, užfiksuoti xth EEG, esu priverstas naudoti sintaksę, pavyzdžiui, jei (skaitiklis% x == 0 )....
Jūs galite padaryti tą patį su Resettable skaitiklis ir lyginamojo.
 
Jūs galite padaryti tą patį su Resettable skaitiklis ir lyginamojo
Kas jums sakė, kad aš parašiau aukščiau dešinėje atitinka šį kodo fragmentą? (Vėl parodyta žemiau persual) visada @ (posedge CLK) pradėti kovos
 
kad kas 5 ciklo pvz., skaičiuoja 0,1,2,3,4,0,1,2,3,4,0,1,2,3,4 ... Jūs arba reikia naujo 1, arba iš naujo 3.
 
@ Perstatyti ya i got it bičiulių ... bet naujo sandėlio 3 bus ne išspręsti problemą .. naujo 1 yra teisinga ... ir J. vietoj, jei aš pakeisiu jei sąlyga, jei (skaitiklis == 1'd3), tada tai bus kas 4 laikrodis krašto ... Yeah I got PT bičiulių ... @ Lostinxlation ir @ perstatyti ---> TKS už pagalbą
 
(Naujo _at_ 3, o ne iš naujo _to_3) tikrai galite palyginti su bet kokios vertės, kad skaitiklis gali pasiekti. tai tiesiog išėjimas į skirtingus faktorius-. pavyzdžiui, laikrodžiai 0,4,8,12 vs 1,5,9,13 VS 2,6,10,14 vs 3,7,11,14. Tai gali būti svarbu, jei naudoti šį metodą keletą modulių.
 
Tai yra tai, ką Jūsų kodas turėtų atrodyti taip:
Code:
 modulį laikrodį (bufclk); įvesties bufclk; reg [02:00] clkreg = 3'b000; raj divclk = 1'b0; visada @ (posedge bufclk) prasideda clkreg = clkreg + 1, jei (clkreg == 4) pradėti clkreg = 0; divclk = ~ divclk; pabaigos endmodule
 
_AT_ Visų TKS vaikinai .. kad atvėrė savo abejones ... ir lizdas, TKS paaiškinimo modelio kodo ... aš turiu taškas gana aiškiai dabar ..
 
Jack kodas generuoja padalintas laikrodis, ir padalina 8 kartus. Be to, ji naudoja visuotinai bloga praktika blokavimas paskyrimo naudojant verilog į sinchroninio procesų. savo originalų kodą, po 5 buvo arčiau, kas turėtų būti naudojama, ypač FPGA.
 
Raj
Code:
 [3: 0] cnt; parametras [3: 0] N_CYC = 4; visada @ (posedge CLK arba negedge rst_n) pradėti jei (~ rst_n) CNT
 
Be to, ji naudoja apskritai bloga praktika, naudojant blokavimas paskyrimo verilog į sinchroninio procesų.
Tiesa, bet nebūtinai teisinga, jei jūs naudojate blokavimas pareiškimas takto diviziono. Jei jums smalsu sužinoti, kaip bet kodėl, skaitykite Gotcha # 29 Verilog ir SystemVerilog gotchas. Čia yra trumpa citata iš knygos:
Gotcha 29: Nuosekliųjų logika reikalauja, kad blokuoja užduotis Gotcha: aš po rekomendacijos naudojant nonblocking užduočių eilės logikos, bet aš vis dar lenktynių sąlygomis, modeliavimas. Anotacija: Kai modeliavimo laikrodis dozatoriais, RTL sintezė projektavimo rekomendacijų ne visuomet taiko.
 

Welcome to EDABoard.com

Sponsor

Back
Top