Cuprins:

VHDL One Minute Cronometru: 5 pași
VHDL One Minute Cronometru: 5 pași

Video: VHDL One Minute Cronometru: 5 pași

Video: VHDL One Minute Cronometru: 5 pași
Video: 60 Second Countdown Timer using VHDL 2024, Noiembrie
Anonim
Image
Image

Acesta este un tutorial despre cum să construiți un cronometru de un minut folosind VHDL și o placă Basys 3. Un astfel de dispozitiv este ideal pentru jocurile în care fiecare jucător are maximum un minut pentru a-și face mișcarea. Cronometrul afișează cu precizie secunde și milisecunde pe afișajul de șapte segmente, începând de la 0 secunde și 0 milisecunde, până la 60 de secunde și 0 milisecunde. De asemenea, sunt utilizate două butoane: butonul central, utilizat pentru a porni, opri și continua cronometrul și butonul din dreapta, folosit pentru a reporni cronometrul. Când dispozitivul este comparat unul lângă altul cu cronometrul încorporat al unui telefon inteligent, precizia ceasului este vizibilă.

Pasul 1: Obțineți hardware / software

Diagramă bloc
Diagramă bloc

1. Baza 3 Artix-7 FPGA Trainer Board de la Digilent cu cablu Micro-USB la USB

2. Vivado 2016.2 Design Suite de la Xilinx

Pasul 2: Diagrama bloc

Acest circuit este construit comportamental și folosește componente Xilinx încorporate, dar poate fi descris și structural, așa cum se arată în diagrama structurală generală de mai sus. Din diagramă, se poate observa că circuitul este condus de două divizoare de frecvență. Unul dintre divizoarele de frecvență rulează la 1 centisecundă și acționează contorul de catod care este folosit ca numerele afișate pe afișajul cu șapte segmente. Al doilea divizor de frecvență rulează la 240Hz și este utilizat pentru a conduce contorul de anod care se rotește prin anodi, astfel încât toate numerele să fie afișate corect pe afișajul cu șapte segmente. Codificatorul preia logica catodică de la contorul catodului și logica anodică de la contorul anodului și o codifică la catodul și anodul de ieșire care rulează afișajul cu șapte segmente. Funcția acestui codificator este ca ieșirea catodului să se schimbe de fiecare dată când ieșirea anodică se schimbă. Ieșirea catodului nu poate fi rulată independent de contor, deoarece anodii trebuie să se rotească prin cele 4 cifre separate.

Pasul 3: Modulul de proiect

În primul rând, se face un bloc de proces pentru CEN astfel încât atunci când este detectată o apăsare de buton, ENABLE va comuta. Aceasta servește ca oprire / pornire a contorului catodului.

În următorul bloc de proces, semnalele de ceas de centisecundă și 240Hz sunt setate astfel încât contoare respective să crească cu 1 de fiecare dată când ceasul intern de 100mHz ajunge la o margine ascendentă. Odată ce contorul de centisecundă ajunge la 500000, acesta va reveni la 0. Între timp, contorul de 240Hz s-ar reseta odată ce numărul va ajunge la 41667.

Pentru secțiunea catodică a codului, dacă ENABLE este „0”, numărarea catodului se va întrerupe. Dacă butonul de resetare este apăsat în acest timp, atunci toate conturile se resetează la „0000”. Între timp, dacă ENABLE este „1”, numărarea catodului va continua până când numărul catodului ajunge la 60,00, în care declanșează semnalul de oprire să fie „1”. Semnalul de oprire se întoarce înapoi către blocul de proces CEN și face ca ENABLE să fie „0” în timp ce semnalul de oprire este „1” și nu se va modifica până când butonul de resetare nu este apăsat.

În cele din urmă, afișajul cu șapte segmente este configurat având cei 4 anodi conectați corect cu fiecare dintre cei 8 catoduri pentru a afișa cifrele respective 0-9 simultan.

Pasul 4: Constrângeri

Constrângeri
Constrângeri

Acest fișier de constrângeri conectează intrările și ieșirile specificate din VHDL în părțile fizice necesare ale plăcii Basys. Pentru acest proiect, componentele includ cei patru anodi și fiecare dintre cei opt catoduri pentru afișajul cu șapte segmente, ceasul intern de 100 mHz, butonul central și butonul din dreapta.

Pasul 5: Testați

Odată ce ați completat codul, puteți programa acum FPGA prin cablul USB. Afișajul cu șapte segmente ar trebui să afișeze 0,00. Testați pentru a vedea dacă butoanele funcționează apăsând butonul central pentru a porni cronometrul până când ajunge la 60,00 și se oprește; oricând, puteți apăsa din nou butonul central pentru a-l întrerupe. Odată ce acesta este întrerupt, puteți apăsa butonul din dreapta pentru a reseta temporizatorul înapoi la 0,00. Dacă totul funcționează corect, felicitări tocmai ai construit un cronometru de un minut!

Recomandat: