Rašyti skaitiklis VHDL

K

koolslash

Guest
aš noriu rašyti į VHDL kovos su šių specifikacijų: 1. Ji taip signalas iš jutiklio 2 uosto. Jis suskaičiuoti ne. impulsų į 1 sek ir tada iš naujo . 3. nėra. Grafų yra konvertuojami į 8'bit dvejetainiai . Laukiame jūsų help.ASAP:: [size = 2] [color = # 999999] Pridėta po 1 valandos 34 minutės: [/color] [/size] Man reikia už Galutinė metų projektą ir turi pateikti per 1week ( Praėjusią savaitę išvyko Pranešimas pateikimas). Taigi maloniai padės paimkit ....
 
Kas jame problema dude ..... u rasti kylančios kraštinės kas impulso ir pradėti skaičiuoti kiekvieną pakilęs pulsas. silmultaniously u paleisti kitą kovos .... suskaičiuoti net iki 1 sek. Jei viena sek readched tada u paleisite savo skaitiklis. Ar u turite idėja apie tai, kas bus plotis skaitiklis (skaičius bitais). Jei taip, tada u koduoti bitų iš kovos su 8 bitai.
 
Be structural, rinkinys flipflops padės išspręsti jūsų poreikius.
 
jeigu dažnis yra 50MHz. i gauti apytiksl. 50.000.000 impulsų 1sec. kai aš perskaičiau jį nuo daviklio tada ir juos suskaičiuoti. tada, kaip aš galiu įdėti šią milžinišką sveikąsias reikšmes ant 8-bitų dvejetainių mastu. reiškia: 50.000.000 => '11111111 '00000000 => '00000000' jis veikia pats, kaip ADC. ty max voltų į didžiausias rodmuo. PK Bet idėja, kaip aš padarysiu ŠĮ.
 
Skaičiuodami 50000000 metu per vieną sekundę, reikia 26 bitų. Kadangi norite 8 bitų rezultato mes tik perduoti, didžiausias 8 bitai, kuris iš esmės yra "div" operacija. Rezultatas (7 downto 0)
 
Patikrinkite šiuos SKAIČIAVIMAI Ar teisinga: laikas = 1/frequency laikotarpis board = 1 / 50MHz = 20nsec Jei laikotarpis yra 1ms: Nėra ciklų = 1sec / 20nsec = 50000000 ciklus. Mano žingsnį nedelsiant lygtis bus: (16-bitų įėjimo į PWM) (2 ^ 16) -1 = 65536 žingsnis sulaikymas = Nr ciklai / 65536 = 762,9 apytiksl = 763 2 ^ 10 (10-bitai), apims 763 setps. dabar kas, jei aš jį padengti svarbiausių 8bits. Kiek tikslumą ir bus prarasta?
 
Jei laikotarpis yra 1 ms: Nėra ciklų = 1 ms / 20 ns == 50000 (arba 50 MHz / 1 kHz = 50 kHz) Jei norite kontroliuoti tokias su 8 bitų (nuo 0 .. 100%), tada: 50000 = = $ C350 -> kontrolę bus didelis dalis taip svyruoja nuo 00 $ .. $ C3 -> pažymėti, kad maksimalus PWM kiekis gali būti nustatytas iki $ C300 (49920 -> 1001,6 Hz), siekiant gauti vienodą PWM tarpai. Tada turėsite intervalas nuo 0 - $ C3 (192) žingsnius nuo 0 PWM .. 100%, todėl rezoliucija yra tada 0,5% priemonių (100/192). Dėl 8 bitų intervalas mažiausias žingsnis gauti yra 0,39% priemonių (100/256). 16 bitų: 100/65536 == 0,00152% ir tt ..
 

Welcome to EDABoard.com

Sponsor

Back
Top