Sisukord:

VHDL ühe minuti stopper: 5 sammu
VHDL ühe minuti stopper: 5 sammu

Video: VHDL ühe minuti stopper: 5 sammu

Video: VHDL ühe minuti stopper: 5 sammu
Video: 1.2 Основы языка VHDL. Базовые концепции описания устройств. 2024, November
Anonim
Image
Image

See on õpetus VHDL -i ja Basys 3 -tahvli abil üheminutilise stopperi loomiseks. Selline seade sobib ideaalselt mängudeks, kus igal mängijal on oma käigu tegemiseks aega maksimaalselt üks minut. Stopper kuvab seitsme segmendi ekraanil täpselt sekundid ja millisekundid, alates 0 sekundist ja 0 millisekundist kuni 60 sekundi ja 0 millisekundini. Kasutatakse ka kahte nuppu: kesknupp, mida kasutatakse taimeri käivitamiseks, peatamiseks ja jätkamiseks, ning parem nupp, mida kasutatakse taimeri taaskäivitamiseks. Kui võrrelda seadet kõrvuti nutitelefoni sisseehitatud stopperiga, on kella täpsus märgatav.

Samm: hankige riistvara/tarkvara

Plokiskeem
Plokiskeem

1. Basys 3 Artix-7 FPGA treenerplaat Digilentilt koos Micro-USB-USB-kaabliga

2. Vivado 2016.2 Disainikomplekt Xilinxilt

Samm: plokkskeem

See vooluahel on ehitatud käitumuslikult ja kasutab sisseehitatud Xilinxi komponente, kuid seda saab kirjeldada ka struktuurselt, nagu on näidatud ülaltoodud üldises struktuuriskeemis. Diagrammilt on näha, et vooluahelat juhivad kaks sagedusjaoturit. Üks sagedusjaoturitest töötab 1 sentsekundil ja juhib katoodiloendurit, mida kasutatakse seitsme segmendi ekraanil kuvatavate numbritena. Teine sagedusjagur töötab sagedusel 240 Hz ja seda kasutatakse anoodide loenduri juhtimiseks, mis pöörleb läbi anoodide, nii et kõik numbrid kuvatakse õigesti seitsme segmendi ekraanil. Kodeerija võtab katoodiloogika katoodiloendurilt ja anoodiloogika anoodiloendurilt ning kodeerib selle väljundi katoodile ja anoodile, mis käitavad seitsme segmendi kuva. Selle kodeerija funktsioon seisneb selles, et katoodi väljund muutub iga kord, kui anoodväljund muutub. Katoodväljundit ei saa loendurist sõltumatult käivitada, kuna anoodid peavad pöörlema läbi nelja eraldi numbri.

3. samm: projektimoodul

Esiteks koostatakse CEN -i protsessiplokk nii, et nupuvajutuse tuvastamisel lülitub LUBA. See toimib katoodiloenduri seiskamisena/käivitamisena.

Järgmises protsessiplokis seatakse sentsekundiline ja 240 Hz taktsignaal nii, et nende vastavad loendurid suurenevad 1 võrra iga kord, kui sisemine 100 MHz kell jõuab tõusvasse serva. Kui sentsekundiline loendur jõuab 500 000 -ni, lähtestatakse see tagasi nulli. Vahepeal 240 Hz loendur lähtestatakse, kui arv jõuab 41667 -ni.

Koodi katoodiosa puhul peatatakse katoodide loendamine, kui ENABLE on „0”. Kui selle aja jooksul vajutatakse lähtestamisnuppu, lähtestatakse kõik loendused väärtusele "0000". Vahepeal, kui ENABLE on „1”, jätkatakse katoodide loendamist, kuni katoodide arv jõuab 60.00 -ni, kusjuures see käivitab peatumissignaali „1”. Peatumissignaal suunab tagasi CEN -i protsessiplokki ja paneb ENABLE olema 0, kui peatumismärk on 1 ja see ei muutu enne, kui vajutatakse lähtestusnuppu.

Lõpuks on seitsme segmendi kuva seadistatud nii, et 4 anoodi on õigesti ühendatud iga 8 katoodiga, et kuvada nende vastavad numbrid 0–9 samaaegselt.

4. samm: piirangud

Piirangud
Piirangud

See piirangute fail ühendab VHDL -i sisendid ja väljundid Basys -plaadi vajalike füüsiliste osadega. Selle projekti jaoks sisaldavad komponendid nelja anoodi ja iga kaheksat katoodi seitsme segmendi kuva jaoks, sisemist 100 mHz kella, keskmist nuppu ja paremat nuppu.

5. samm: testige

Kui olete koodi täitnud, saate nüüd FPGA -d USB -kaabli kaudu programmeerida. Seitsme segmendi ekraan peaks näitama 0,00. Kontrollige, kas nupud töötavad, vajutades taimeri käivitamiseks kesknuppu, kuni see jõuab 60.00 -ni ja peatub; igal ajal saate selle peatamiseks uuesti kesknupule vajutada. Kui see on peatatud, võite vajutada paremat nuppu, et lähtestada taimer tagasi 0,00 -le. Kui kõik töötab õigesti, õnnitleme, et ehitasite äsja ühe minuti taimeri!

Soovitan: