Kronometër VHDL: 8 hapa (me fotografi)
Kronometër VHDL: 8 hapa (me fotografi)
Kronometër VHDL
Kronometër VHDL

Ky është një mësim se si të bëni një kronometër duke përdorur VHDL dhe një tabelë qarkore FPGA, si një bord Basys3 Atrix-7. Kronometri është në gjendje të numërojë nga 00.00 sekonda në 99.99 sekonda. Ai përdor dy butona, një për butonin start/stop dhe një tjetër për butonin e rivendosjes. Numrat shfaqen në ekranin me shtatë segmente të tabelës duke përdorur anodat dhe katodat e tij. Janë të nevojshme tre skedarë të ndryshëm në mënyrë që kjo kronometër të funksionojë.

Hapi 1: Hardware/Softuer

  • Bordi Basys3 Atrix-7 FPGA
  • Suite Vivado Design nga Xilinx
  • Mashkull USB 2.0 A Mashkull në Mikro-B

Hapi 2: Blloko Diagramin

Bllokimi i Diagramit
Bllokimi i Diagramit

Kronometri i përgjithshëm ka tre hyrje dhe dy dalje. Tre hyrjet janë fillimi/ndalimi, rivendosja dhe ora. Fillimi/ndalimi dhe rivendosja janë butona dhe ora është ora 100MHz e tabelës. Dy daljet janë anodat dhe katodat për ekranin me shtatë segmente.

Moduli i parë (ndarësi i orës) ka një hyrje dhe dy dalje. Hyrja është ora 100MHz e tabelës dhe daljet janë dy orë të veçanta, një që funksionon në 480Hz dhe një tjetër funksionon 0.5MHz.

Moduli i dytë (ekrani) ka pesë hyrje dhe dy dalje. Hyrjet janë ora 100MHz e tabelës, dy orët nga moduli i ndarjes së orës dhe butonat e fillimit/ndalimit dhe rivendosjes. Daljet janë anodat dhe katodat.

Moduli i fundit (i modeluar nga i gjithë bllok -diagrami) ka tre hyrje dhe dy dalje. Ky është skedari që bashkon gjithçka. Hyrjet janë 100MHz të bordit dhe butonat e fillimit/ndalimit dhe rivendosjes. Daljet janë anodat dhe katodat që kontrollojnë ekranin me shtatë segmente. Të gjitha hyrjet dhe daljet janë fizikisht në tabelë për modulin përfundimtar.

Hapi 3: Diagrami i gjendjes

Diagrami i Shtetit
Diagrami i Shtetit

Imazhi i mësipërm tregon diagramin e gjendjes se si funksionon kronometri. Shtypja e butonit të rivendosjes nuk ndikon në gjendjen e kronometrit. Gjendja tjetër përcaktohet nga butoni start/stop. Nisja/ndalesa është "LART" kur shtypet poshtë, por jo kur mbahet e shtypur, dhe "ULET" kur butoni është kthyer mbrapsht ose mbahet mbrapa pasi është "LART" për një çast.

Nëse kronometri po numëron dhe butoni i fillimit/ndalimit shkon "LART HIGH", atëherë ai ndalon numërimin. Nëse kronometri ndalet dhe butoni i fillimit/ndalimit shkon "LART HIGH" atëherë fillon të numërojë përsëri. Për të dy shtetet, nëse butoni start/stop është "LOW", atëherë ai do të qëndrojë në gjendjen ku është aktualisht.

Hapi 4: Moduli i ndarësit të orës

Moduli i ndarjes së orës ka një hyrje, ora 100MHz e tabelës dhe dy dalje, orët 480Hz dhe 0.5MHz. Ora 480Hz përdoret për të mbajtur të gjithë LED-të në ekranin me shtatë segmente "të ndezur" në të njëjtën kohë duke kaluar nëpër katër me shpejtësi. Ora 0.5MHz përdoret që kronometri të llogaritet në të vërtetë me centi-sekonda.

Hapi 5: Moduli i shfaqjes

Ky modul i ekranit ka pesë hyrje, ora 100MHz e tabelës, dy orë nga moduli i orës, dhe butonat start/stop dhe reset, dhe dy dalje, anodat dhe katodat. Ky modul gjithashtu ka "logjikën" se si kronometri numëron dhe inkorporon makinën e gjendjes së fundme.

Hapi 6: Moduli i lidhjes

Ky modul përfundimtar është ai që bashkon dy modulet e tjerë së bashku. Ai ka tre hyrje, orën 100MHz të tabelës dhe butonat start/stop dhe reset, dhe dy dalje, anodat dhe katodat. Ora 100MHz shkon në modulin ndarës të orës dhe modulin e ekranit, dhe butonat e fillimit/ndalimit dhe rivendosjes shkojnë në modulin e ekranit. Daljet e modulit ndarës të orës (480Hz dhe 0.5MHz) shkojnë në dy hyrjet e orës të modulit të ekranit. Daljet e modulit të ekranit (anodat dhe katodat) shkojnë në daljet e modulit përfundimtar.

Hapi 7: Kufizimet

Kufizimet
Kufizimet

Të dy hyrjet mund të jenë çdo buton në Tabelën Basys3 Atrix-7 FPGA dhe daljet do të jenë katër anodat dhe tetë katodat (sepse ju gjithashtu dëshironi një pikë dhjetore midis sekondave dhe milisekondave) për ekranin me shtatë segmente.

Hapi 8: U krye

Ngarko programin në Bordin tuaj Basys3 Atrix-7 FPGA dhe shtypni butonin tuaj start/stop për të filluar kronometrin!

Recommended: