Talaan ng mga Nilalaman:

VHDL One Minute Stopwatch: 5 Hakbang
VHDL One Minute Stopwatch: 5 Hakbang

Video: VHDL One Minute Stopwatch: 5 Hakbang

Video: VHDL One Minute Stopwatch: 5 Hakbang
Video: How to create a timer in VHDL 2024, Nobyembre
Anonim
Image
Image

Ito ay isang tutorial sa kung paano bumuo ng isang minutong stopwatch gamit ang VHDL at isang Basys 3 board. Ang nasabing aparato ay mainam para sa mga laro kung saan ang bawat manlalaro ay may maximum na isang minuto upang lumipat. Ang stopwatch ay tumpak na nagpapakita ng mga segundo at milliseconds sa pitong segment na pagpapakita, simula sa 0 segundo at 0 milliseconds, hanggang sa 60 segundo at 0 milliseconds. Ginagamit din ang dalawang mga pindutan: ang gitnang pindutan, ginamit upang simulan, itigil, at ipagpatuloy ang timer, at ang kanang pindutan, ginamit upang muling simulan ang timer. Kapag inihambing ang aparato sa tabi-tabi ng built-in na relo relo ng isang smart phone, kapansin-pansin ang kawastuhan ng orasan.

Hakbang 1: Kumuha ng Hardware / Software

I-block ang Diagram
I-block ang Diagram

1. Basys 3 Artix-7 FPGA Trainer Board mula sa Digilent na may Micro-USB hanggang USB Cable

2. Vivado 2016.2 Design Suite mula sa Xilinx

Hakbang 2: I-block ang Diagram

Ang circuit na ito ay itinayo sa pag-uugali at gumagamit ng built-in na mga sangkap ng Xilinx, ngunit maaari ding ilarawan sa istruktura, tulad ng ipinakita ng pangkalahatang diagram ng istruktura sa itaas. Mula sa diagram, makikita na ang circuit ay hinihimok ng dalawang divider ng dalas. Ang isa sa mga divider ng dalas ay tumatakbo sa 1 centisecond at hinihimok ang cathode counter na ginagamit bilang mga bilang na ipinakita sa pitong-segment na display. Ang pangalawang dalas na divider ay tumatakbo sa 240Hz at ginagamit upang himukin ang anode counter na umiikot sa mga anode upang ang lahat ng mga numero ay maipakita nang tama sa pitong-segment na display. Kinukuha ng encoder ang lohika ng cathode mula sa counter ng cathode at ang lohika ng anode mula sa anode counter, at ini-encode ito sa code ng output at anode na nagpapatakbo ng pitong-segment na display. Ang pagpapaandar ng encoder na ito ay para sa output ng cathode na magbago tuwing nagbabago ang output ng anode. Ang output ng cathode ay hindi maaaring patakbuhin nang nakapag-iisa mula sa counter dahil ang mga anode ay dapat na paikutin sa 4 na magkakahiwalay na mga digit.

Hakbang 3: Modyul ng Proyekto

Una, ang isang proseso ng block para sa CEN ay ginawa upang kapag nakita ang isang Button Press, ang ENABLE ay magpapalipat-lipat. Nagsisilbi itong stop / start ng cathode counter.

Sa susunod na bloke ng proseso, ang centisecond at 240Hz na mga signal ng orasan ay itinakda upang ang kanilang kani-kanilang mga counter ay tataas ng 1 sa tuwing ang panloob na 100mHz na orasan ay umabot sa isang tumataas na gilid. Kapag umabot na sa 500000 ang centisecond counter, mai-reset ito pabalik sa 0. Samantala ang 240Hz counter ay mare-reset sa sandaling ang bilang ay umabot sa 41667.

Para sa seksyon ng code ng code, kung ang ENABLE ay '0' ang pagbibilang ng cathode ay i-pause. Kung ang pindutan ng pag-reset ay pinindot sa oras na ito, pagkatapos ang lahat ng mga bilang ay nai-reset sa "0000". Samantala, kung ang ENABLE ay '1', magpapatuloy ang pagbibilang ng cathode hanggang sa umabot sa 60.00 ang bilang ng cathode, kung saan ito ay nagpapalitaw ng stop signal na '1'. Ang mga ruta ng stop signal pabalik sa block ng proseso ng CEN at nagiging sanhi ng paganahin na maging '0' habang ang stop signal ay '1' at hindi magbabago hanggang ang pindutan ng pag-reset ay pinindot.

Sa wakas, ang pitong segment na display ay na-set up sa pamamagitan ng pagkakaroon ng 4 na mga anode nang wastong konektado sa bawat isa sa kanilang 8 cathode upang maipakita ang kani-kanilang mga digit na 0-9 nang sabay-sabay.

Hakbang 4: Mga Pagpipigil

Mga hadlang
Mga hadlang

Ang koneksyon ng file na ito ay kumokonekta sa tinukoy na mga input at output mula sa VHDL patungo sa kinakailangan, pisikal na mga bahagi ng board ng Basys. Para sa proyektong ito, kasama sa mga bahagi ang apat na anode at bawat isa sa kanilang walong mga katod para sa pitong segment na pagpapakita, ang panloob na 100 mHz na orasan, ang pindutan sa gitna, at ang kanang pindutan.

Hakbang 5: Pagsubok

Kapag nakumpleto mo na ang code, maaari mo na ngayong programa ang FPGA sa pamamagitan ng USB cable. Ang display ng pitong segment ay dapat magpakita ng 0.00. Subukan upang makita kung gumagana ang mga pindutan sa pamamagitan ng pagpindot sa gitnang pindutan upang simulan ang timer hanggang umabot sa 60.00 at huminto; anumang oras sa pagitan, maaari mong pindutin muli ang gitnang pindutan upang i-pause ito. Kapag na-pause ito, maaari mong pindutin ang kanang pindutan upang i-reset ang timer pabalik sa 0.00. Kung ang lahat ay gumagana nang tama, binabati kita na nakabuo ka lamang ng isang minutong timer!

Inirerekumendang: