Cuprins:

Cronometru VHDL: 8 pași (cu imagini)
Cronometru VHDL: 8 pași (cu imagini)

Video: Cronometru VHDL: 8 pași (cu imagini)

Video: Cronometru VHDL: 8 pași (cu imagini)
Video: How to create a timer in VHDL 2024, Iulie
Anonim
Cronometru VHDL
Cronometru VHDL

Acesta este un tutorial despre cum să faci un cronometru folosind VHDL și o placă de circuit FPGA, cum ar fi o placă Basys3 Atrix-7. Cronometrul poate conta de la 00.00 secunde la 99.99 secunde. Folosește două butoane, unul pentru butonul de pornire / oprire și altul pentru butonul de resetare. Numerele sunt afișate pe afișajul cu șapte segmente al plăcii folosind anodii și catodii săi. Există trei fișiere diferite necesare pentru ca acest cronometru să funcționeze.

Pasul 1: Hardware / Software

  • Placa Basys3 Atrix-7 FPGA
  • Vivado Design Suite de la Xilinx
  • USB 2.0 A tată la Micro-B tată

Pasul 2: Diagrama bloc

Diagramă bloc
Diagramă bloc

Cronometrul general are trei intrări și două ieșiri. Cele trei intrări sunt pornire / oprire, resetare și ceas. Pornirea / oprirea și resetarea sunt butoane, iar ceasul este ceasul de 100 MHz al plăcii. Cele două ieșiri sunt anodii și catodii pentru afișajul cu șapte segmente.

Primul modul (divizor de ceas) are o intrare și două ieșiri. Intrarea este ceasul de 100 MHz al plăcii, iar ieșirile sunt două ceasuri separate, una funcționează la 480Hz și alta rulează 0,5 MHz.

Al doilea modul (afișaj) are cinci intrări și două ieșiri. Intrările sunt ceasul de 100 MHz al plăcii, cele două ceasuri de la modulul divizor de ceas și butoanele de pornire / oprire și resetare. Ieșirile sunt anodii și catodii.

Ultimul modul (modelat de întreaga diagramă bloc) are trei intrări și două ieșiri. Acesta este fișierul care reunește totul. Intrările sunt placa de 100 MHz și butoanele de pornire / oprire și resetare. Ieșirile sunt anodii și catodii care controlează afișajul cu șapte segmente. Toate intrările și ieșirile sunt fizic pe placa pentru modulul final.

Pasul 3: Diagrama de stat

Diagrama de stat
Diagrama de stat

Imaginea de mai sus arată diagrama de stare pentru modul în care funcționează cronometrul. Apăsarea butonului de resetare nu afectează starea cronometruului. Următoarea stare este determinată de butonul de pornire / oprire. Pornirea / oprirea este "HIGH" când este apăsat, dar nu când este ținut apăsat și "LOW" când butonul a revenit înapoi sau a fost ținut apăsat după ce a fost "HIGH" momentan.

Dacă cronometrul se numără și butonul de pornire / oprire trece „HIGH”, atunci se oprește numărarea. În cazul în care cronometrul este oprit și butonul de pornire / oprire devine „HIGH”, atunci începe din nou să se numere. Pentru ambele state, dacă butonul de pornire / oprire este „LOW”, atunci acesta va rămâne în starea în care se află în prezent.

Pasul 4: Modul divizor ceas

Modulul divizor de ceas are o intrare, ceasul de 100 MHz al plăcii și două ieșiri, ceasurile de 480Hz și 0,5MHz. Ceasul de 480Hz este utilizat pentru a menține toate LED-urile de pe afișajul cu șapte segmente „aprins” în același timp prin comutarea rapidă a celor patru. Ceasul de 0,5 MHz este utilizat pentru ca cronometrul să se numere efectiv cu centi-secunde.

Pasul 5: Afișați modulul

Acest modul de afișare are cinci intrări, ceasul de 100 MHz al plăcii, cele două ceasuri de la modulul de ceas și butoanele de pornire / oprire și resetare și două ieșiri, anodii și catodii. Acest modul are, de asemenea, „logica” pentru modul în care cronometrul contează și încorporează mașina cu stări finite.

Pasul 6: Modul de legare

Acest modul final este cel care reunește celelalte două module. Are trei intrări, ceasul de 100 MHz al plăcii și butoanele de pornire / oprire și resetare și două ieșiri, anodii și catodii. Ceasul de 100 MHz merge la modulul divizor de ceas și modulul de afișare, iar butoanele de pornire / oprire și resetare merg la modulul de afișare. Ieșirile modulului divizor de ceas (480Hz și 0,5 MHz) merg la cele două intrări de ceas ale modulului de afișare. Ieșirile modulului de afișare (anodii și catodii) merg la ieșirile modulului final.

Pasul 7: Constrângeri

Constrângeri
Constrângeri

Cele două intrări pot fi orice butoane de pe placa Basys3 Atrix-7 FPGA, iar ieșirile vor fi cei patru anodi și cei opt catoduri (deoarece doriți și un punct zecimal între secunde și milisecunde) pentru afișajul cu șapte segmente.

Pasul 8: Gata

Încărcați programul pe placa Basys3 Atrix-7 FPGA și apăsați butonul Start / Stop pentru a porni cronometrul!

Recomandat: