Talaan ng mga Nilalaman:

VHDL Stopwatch: 8 Hakbang (na may Mga Larawan)
VHDL Stopwatch: 8 Hakbang (na may Mga Larawan)

Video: VHDL Stopwatch: 8 Hakbang (na may Mga Larawan)

Video: VHDL Stopwatch: 8 Hakbang (na may Mga Larawan)
Video: CMOD S7 Tutorial: Learn to Make An Led Blink w/ A Digilent FPGA Board 2024, Hulyo
Anonim
Stopwatch ng VHDL
Stopwatch ng VHDL

Ito ay isang tutorial sa kung paano gumawa ng isang stopwatch gamit ang VHDL at isang FPGA circuit board, tulad ng isang Basys3 Atrix-7 Board. Ang bilang ng relo ay maaaring mabilang mula 00.00 segundo hanggang 99.99 segundo. Gumagamit ito ng dalawang mga pindutan, isa para sa start / stop button at isa pa para sa reset button. Ang mga numero ay ipinapakita sa pitong-segment na display ng board gamit ang mga anode at cathode. Mayroong tatlong magkakaibang mga file na kinakailangan upang magamit ang stopwatch na ito.

Hakbang 1: Hardware / Software

  • Basys3 Atrix-7 FPGA Board
  • Vivado Design Suite mula sa Xilinx
  • USB 2.0 Isang Lalaki hanggang sa Micro-B Lalaki

Hakbang 2: I-block ang Diagram

I-block ang Diagram
I-block ang Diagram

Ang pangkalahatang stopwatch ay may tatlong mga input at dalawang output. Ang tatlong mga input ay ang pagsisimula / paghinto, pag-reset, at orasan. Ang pagsisimula / paghinto at pag-reset ay mga pindutan at ang orasan ay 100MHz na orasan ng board. Ang dalawang output ay ang mga anode at cathode para sa pitong-segment na pagpapakita.

Ang unang module (clock divider) ay may isang input at dalawang output. Ang input ay 100MHz na orasan ng board at ang mga output ay dalawang magkakahiwalay na orasan, ang isa ay tumatakbo sa 480Hz at isa pang tumatakbo na 0.5MHz.

Ang pangalawang module (display) ay may limang mga input at dalawang output. Ang mga input ay ang 100MHz na orasan ng board, ang dalawang orasan mula sa module na divider ng orasan, at ang mga pindutan ng pagsisimula / pagtigil at pag-reset. Ang mga output ay ang mga anode at cathode.

Ang huling module (na na-modelo ng buong diagram ng block) ay may tatlong mga input at dalawang output. Ito ang file na pinagsasama ang lahat. Ang mga input ay 100MHz ng board at ang mga pindutan ng pagsisimula / pagtigil at pag-reset. Ang mga output ay ang mga anode at cathode na kumokontrol sa pitong-segment na pagpapakita. Ang lahat ng mga input at output ay pisikal na nasa board para sa panghuling module.

Hakbang 3: Diagram ng Estado

Diagram ng Estado
Diagram ng Estado

Ipinapakita ng imahe sa itaas ang diagram ng estado kung paano gumagana ang stopwatch. Ang pagpindot sa pindutan ng pag-reset ay hindi nakakaapekto sa estado ng stopwatch. Ang susunod na estado ay natutukoy ng pindutan ng pagsisimula / paghinto. Ang pagsisimula / paghinto ay "HIGAS" kapag pinindot, ngunit hindi kapag pinigilan ito, at "LOW" kapag ang pindutan ay tumalbog pabalik o napipigilan pagkatapos na maging "TAAS" sandali.

Kung ang bilang ng stopwatch ay nagbibilang at ang pindutan ng pagsisimula / paghinto ay napupunta sa "TAAS", pagkatapos ay hihinto ito sa pagbibilang. Kung ang stopwatch ay tumigil at ang pindutan ng pagsisimula / paghinto ay napupunta sa "TAAS" pagkatapos ay nagsisimula itong muling mabibilang. Para sa parehong estado, kung ang pindutan ng pagsisimula / paghinto ay "LOW", pagkatapos ay mananatili ito sa estado na kasalukuyang nasa.

Hakbang 4: Module ng Divider ng Clock

Ang module ng relo ng orasan ay may isang input, orasan na 100MHz ng board, at dalawang output, ang 480Hz at ang mga 0.5MHz na orasan. Ginamit ang 480Hz na orasan upang mapanatili ang lahat ng mga LED sa pitong-segment na display na "on" nang sabay-sabay sa pamamagitan ng mabilis na paglipat sa apat. Ang relo na 0.5MHz ay ginagamit para sa stopwatch na talagang bibilangin sa pamamagitan ng sentimo-segundo.

Hakbang 5: Display Modyul

Ang display module na ito ay may limang mga input, 100MHz na orasan ng board, ang dalawang orasan mula sa module ng orasan, at ang mga start / stop at reset button, at dalawang output, ang mga anode at cathode. Ang modyul na ito ay mayroon ding "lohika" para sa kung paano ang bilang ng stopwatch at isinasama ang may wakas na makina ng estado.

Hakbang 6: Pagbubuklod ng Modyul

Ang pangwakas na modyul na ito ay ang isa na pinagsasama ang iba pang dalawang mga module. Mayroon itong tatlong input, ang orasan ng 100MHz ng board at ang mga pindutan ng pagsisimula / pagtigil at pag-reset, at dalawang output, ang mga anode at cathode. Ang orasan na 100MHz ay papunta sa module ng divider ng orasan at ang display module, at ang mga pindutan ng pagsisimula / pagtigil at pag-reset ay pumunta sa module ng pagpapakita. Ang mga output ng module ng divider ng orasan (480Hz at 0.5MHz) ay pupunta sa dalawang input ng orasan ng display module. Ang mga output ng display module (anodes at cathodes) ay pupunta sa mga output ng huling module.

Hakbang 7: Mga Pagpipigil

Mga hadlang
Mga hadlang

Ang dalawang mga input ay maaaring maging anumang mga pindutan sa Basys3 Atrix-7 FPGA Board at ang mga output ay ang magiging apat na mga anode at ang walong mga cathode (dahil nais mo rin ang isang decimal point sa pagitan ng mga segundo at milliseconds) para sa pitong segment na pagpapakita.

Hakbang 8: Tapos Na

I-upload ang programa sa iyong Basys3 Atrix-7 FPGA Board at pindutin ang iyong start / stop button upang makuha ang stopwatch!

Inirerekumendang: