Sommario:
- Passaggio 1: materiali
- Passaggio 2: impostazione di ingressi e uscite
- Passaggio 3: creazione di orologi
- Passaggio 4: contare fino a dieci
- Passaggio 5: visualizzazione dei numeri
- Passaggio 6: come visualizzare il cronometro
- Passaggio 7: portare tutto insieme
- Passaggio 8: vincoli
- Passaggio 9: test
Video: Cronometro di base utilizzando VHDL e Basys3 Board: 9 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Benvenuto nell'istruzione su come costruire un cronometro utilizzando la scheda VHDL e Basys 3 di base. Siamo entusiasti di condividere con voi il nostro progetto! Questo era un progetto finale per il corso CPE 133 (Digital Design) a Cal Poly, SLO nell'autunno 2016. Il progetto che abbiamo costruito è un semplice cronometro che avvia, azzera e mette in pausa il tempo. Accetta tre pulsanti sulla scheda Basys3 come ingressi e l'ora viene visualizzata sul display a sette segmenti a quattro cifre della scheda. Il tempo trascorso viene visualizzato nel formato secondi: centisecondi. Utilizza l'orologio di sistema della scheda come input per tenere traccia del tempo trascorso e invia l'ora alle quattro cifre del display a sette segmenti.
Passaggio 1: materiali
I materiali necessari per questo progetto:
- 1 computer con Vivado Design Suite WebPack installato da Xilinx (preferire la versione 2016.2)
- 1 scheda FPGA Digilent Basys3 Xilinx Artix-7
- 1 cavo porta USB
Passaggio 2: impostazione di ingressi e uscite
La figura sopra mostra uno schema a blocchi di primo livello del modulo cronometro principale. Il cronometro accetta gli ingressi "CLK" (orologio), "S1" (pulsante avvio), "S2" (pulsante pausa) e "RST" (reset) e dispone di un'uscita "Anodi" a 4 bit, l'uscita "segmento" e un'uscita a bit singolo "DP" (punto decimale). Quando l'ingresso "S1" è alto, il cronometro inizia a contare il tempo. Quando "S2" è basso, il cronometro mette in pausa il tempo. Quando "RST" è alto, il cronometro si ferma e azzera l'ora. Ci sono quattro sottomoduli all'interno del circuito: il divisore di clock, il contatore di cifre, il driver del display a sette segmenti e l'encoder del display a sette segmenti. Il modulo principale del cronometro collega tra loro tutti i sottomoduli e agli ingressi e alle uscite.
Passaggio 3: creazione di orologi
Il modulo divisore di clock accetta un clock di sistema e utilizza un ingresso divisore per creare un clock di qualsiasi velocità non superiore a quello del clock di sistema. Il cronometro utilizza due diversi moduli di clock, uno che crea un clock a 500 Hz e un altro che crea un clock a 100 Hz. Lo schema del divisore dell'orologio è mostrato nella figura sopra. Il divisore di clock accetta un ingresso a bit singolo "CLK", un ingresso "Divisore" a 32 bit e l'uscita a bit singolo "CLKOUT". "CLK" è l'orologio di sistema e "CLKOUT" è l'orologio risultante. Il modulo include anche una porta NOT, che commuta il segnale "CLKTOG" quando il conteggio raggiunge il valore del divisore.
Passaggio 4: contare fino a dieci
Il contatore di cifre conta ogni cifra da 0 a 10 e crea un altro orologio per il funzionamento della cifra successiva che oscilla quando il conteggio raggiunge 10. Il modulo accetta 3 ingressi a bit singolo "S", "RST" e "CLK " e produce un'uscita a bit singolo "N" e un'uscita a 4 bit "D". L'ingresso "S" è l'abilitazione in ingresso. L'orologio si accende quando "S" è alto e si spegne quando "S" è basso. "RST" è l'ingresso di reset, quindi l'orologio si resetta quando "RST" è alto. "CLK" è l'ingresso dell'orologio per il contatore di cifre. "N" è l'uscita dell'orologio che diventa l'orologio di ingresso per la cifra successiva. L'uscita "D" presenta il valore binario della cifra a cui si trova il contatore.
Passaggio 5: visualizzazione dei numeri
Il codificatore del display a sette segmenti codificherà il numero binario ricevuto dal modulo del driver del display a sette segmenti e lo trasformerà in un flusso di bit che verranno interpretati come valori "1" o "0" per ciascun segmento del display. Il numero binario viene ricevuto dal modulo come "cifra" di ingresso a 4 bit e risulta nei "segmenti" di uscita a 7 bit. Il modulo è costituito da un unico blocco di processo case che assegna uno specifico flusso di 7 bit per ogni possibile valore di ingresso da 0 a 9. Ciascun bit nei flussi di sette bit rappresenta uno dei sette segmenti delle cifre sul display. L'ordine dei segmenti nel flusso è "abcdefg" con "0" che rappresentano i segmenti che si accendono per il dato numero.
Passaggio 6: come visualizzare il cronometro
Nel modulo driver display a sette segmenti sono presenti quattro ingressi a 4 bit "D0", "D1", "D2" e "D3", ognuno dei quali rappresenta le quattro cifre da visualizzare. L'ingresso "CLK" è l'ingresso dell'orologio del sistema. L'uscita a bit singolo "DP" rappresenta il punto decimale sul display a sette segmenti. L'uscita a 4 bit "Anodes" determina quale cifra viene visualizzata sul display a sette segmenti e l'uscita a 4 bit "temp" dipende dallo stato dell'ingresso di controllo a 2 bit "SEL". Il modulo utilizza 4 multiplexer per l'ingresso di controllo "SEL" e le tre uscite; "Anodi", "temp" e "DP".
Passaggio 7: portare tutto insieme
Per creare i pulsanti di avvio e di pausa viene utilizzato un blocco di processo "se" che parte dal clock a 500 Hz. Quindi collegare insieme tutti i sottomoduli nel modulo principale del cronometro dichiarando i componenti di ogni singolo sottomodulo e utilizzando vari segnali. I sottomoduli digit accettano l'uscita di clock del precedente sottomodulo digit mentre il primo riceve il clock a 100Hz. Le uscite "D" dei sottomoduli numerici diventano quindi gli ingressi "D" del modulo driver display a sette segmenti. Infine, l'uscita "temp" del modulo driver del display a sette segmenti diventa l'ingresso "temp" del modulo encoder a sette segmenti.
Passaggio 8: vincoli
Utilizzare 3 pulsanti (W19, T17 e U18) per gli ingressi "RST", "S1" e "S2". W19 è il pulsante di ripristino, T17 è il pulsante di avvio (S1) e U18 è il pulsante di pausa (S2). È inoltre necessario un vincolo per l'ingresso dell'ingresso di clock utilizzando la porta W5. Inoltre, ricorda di aggiungere questa riga al vincolo di clock:
create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports {CLK}]
Collega anche gli anodi e i segmenti alla scheda in modo che il cronometro venga visualizzato sul display a sette segmenti come mostrato nel file dei vincoli.
Passaggio 9: test
Assicurati che il tuo dispositivo funzioni giocando con i tre pulsanti: premendoli e tenendoli premuti in ogni ordine possibile per trovare eventuali problemi con il codice.
Consigliato:
VHDL Basys3: Connect 4 Game: 5 passaggi
VHDL Basys3: gioco Connect 4: Introduzione: questo è un gioco di logica digitale Connect 4 progettato in VHDL utilizzando il software Vivado e programmato sulla scheda Basys3. La costruzione e il design di questo progetto sono intermedi, ma i nuovi arrivati possono copiare i passaggi e costruire il ga
Cronometro utilizzando Pic18f4520 in Proteus con 7 segmenti: 6 passaggi
Cronometro utilizzando Pic18f4520 in Proteus con 7 segmenti: ho appena iniziato a lavorare con il controller pic, uno dei miei amici mi ha chiesto di costruire un cronometro da esso. Quindi non ho un'immagine hardware da condividere, ho scritto il codice e l'ho simulato sul software Proteus.qui ho condiviso lo schema per lo stesso.t
Come creare un cronometro digitale utilizzando 555: 3 passaggi
Come creare un cronometro digitale utilizzando 555: ho realizzato un semplice cronometro utilizzando 3 display LED a sette segmenti di cui il primo per visualizzare la decima parte dei secondi un altro per il secondo e il terzo per multipli di 10 secondi. Ho usato 555 timer in modalità astabile che dà segnale per 1 secondo a
Cronometro VHDL a un minuto: 5 passaggi
Cronometro da un minuto VHDL: questo è un tutorial su come costruire un cronometro da un minuto usando VHDL e una scheda Basys 3. Tale dispositivo è ideale per i giochi in cui ogni giocatore ha un massimo di un minuto per fare la propria mossa. Il cronometro mostra con precisione secondi e millisecondi o
Cronometro VHDL: 8 passaggi (con immagini)
Cronometro VHDL: questo è un tutorial su come realizzare un cronometro utilizzando VHDL e un circuito stampato FPGA, come una scheda Basys3 Atrix-7. Il cronometro è in grado di contare da 00.00 secondi a 99,99 secondi. Utilizza due pulsanti, uno per il pulsante di avvio/arresto e un altro per il