Sadržaj:

VHDL jednominutna štoperica: 5 koraka
VHDL jednominutna štoperica: 5 koraka

Video: VHDL jednominutna štoperica: 5 koraka

Video: VHDL jednominutna štoperica: 5 koraka
Video: LPRS1 - Uvod u Vežbu 5 2024, Studeni
Anonim
Image
Image

Ovo je vodič o tome kako izgraditi štopericu od jedne minute pomoću VHDL -a i ploče Basys 3. Takav uređaj idealan je za igre u kojima svaki igrač ima najviše jednu minutu za svoj potez. Štoperica točno prikazuje sekunde i milisekunde na sedmosegmentnom zaslonu, počevši od 0 sekundi i 0 milisekundi, do 60 sekundi i 0 milisekundi. Koriste se i dvije tipke: središnja tipka koja se koristi za pokretanje, zaustavljanje i nastavak mjerača vremena te desna tipka za ponovno pokretanje mjerača vremena. Kad se uređaj usporedi usporedno s ugrađenom štopericom pametnog telefona, točnost sata je zamjetna.

Korak 1: Nabavite hardver/softver

Blok dijagram
Blok dijagram

1. Basys 3 Artix-7 FPGA Trainer Board od Digilenta s mikro USB-om do USB kabela

2. Vivado 2016.2 Design Suite iz Xilinxa

Korak 2: Blok dijagram

Ovaj krug je konstruiran ponašanjem i koristi ugrađene Xilinx komponente, ali se može i strukturno opisati, kao što je prikazano gornjim općim strukturnim dijagramom. Iz dijagrama se može vidjeti da krug pokreću dva razdjelnika frekvencije. Jedan od razdjelnika frekvencije radi na 1 centisekundi i pokreće katodni brojač koji se koristi kao brojevi prikazani na zaslonu sa sedam segmenata. Drugi djelitelj frekvencije radi na 240Hz i koristi se za pokretanje brojača anode koji se rotira kroz anode tako da se svi brojevi ispravno prikazuju na zaslonu sa sedam segmenata. Enkoder uzima katodnu logiku iz katodnog brojača i anodnu logiku iz anodnog brojača te je kodira na izlaznu katodu i anodu koja pokreće sedmosegmentni zaslon. Funkcija ovog davača je da se izlaz katode mijenja svaki put kada se promijeni izlaz anode. Izlaz katode ne može se pokrenuti neovisno o brojaču jer se anode moraju okretati kroz 4 zasebne znamenke.

Korak 3: Modul projekta

Prvo, procesni blok za CEN je napravljen tako da se, kad se otkrije pritisak tipke, ENABLE prebaci. Ovo služi kao zaustavljanje/pokretanje katodnog brojača.

U sljedećem procesnom bloku signali takta centisekunde i 240Hz postavljeni su tako da se njihovi brojači povećavaju za 1 svaki put kad unutarnji sat od 100 mHz dosegne rastući rub. Kad centisekundni brojač dosegne 500000, vratit će se natrag na 0. U međuvremenu će se brojač od 240 Hz poništiti kad odbrojavanje dosegne 41667.

Za dio katode koda, ako je ENABLE '0', brojanje katoda će se zaustaviti. Ako se tijekom tog vremena pritisne tipka za poništavanje, svi se brojevi vraćaju na "0000". U međuvremenu, ako je ENABLE '1', brojanje katode će se nastaviti sve dok broj katoda ne dosegne 60,00, pri čemu se aktivira signal za zaustavljanje na '1'. Signal za zaustavljanje vraća se nazad u procesni blok CEN -a i uzrokuje da ENABLE bude '0', dok je signal za zaustavljanje '1' i neće se promijeniti sve dok se ne pritisne tipka za poništavanje.

Konačno, zaslon sa sedam segmenata postavljen je tako da su 4 anode ispravno spojene sa svakom od svojih 8 katoda za prikaz odgovarajućih znamenki 0-9 istovremeno.

Korak 4: Ograničenja

Ograničenja
Ograničenja

Ova datoteka ograničenja povezuje navedene ulaze i izlaze iz VHDL -a u potrebne, fizičke dijelove Basysove ploče. Za ovaj projekt komponente uključuju četiri anode i svaku od svojih osam katoda za sedmo segmentni prikaz, unutarnji sat od 100 mHz, središnji gumb i desni gumb.

Korak 5: Testirajte

Nakon što dovršite kôd, sada možete programirati FPGA putem USB kabela. Zaslon sa sedam segmenata trebao bi pokazati 0,00. Provjerite rade li gumbi pritiskom na središnju tipku za pokretanje mjerača vremena dok ne dosegne 60,00 i zaustavi se; u bilo koje vrijeme možete ponovno pritisnuti središnji gumb da biste ga pauzirali. Nakon što je pauziran, možete pritisnuti desnu tipku da biste vratili mjerač vremena na 0,00. Ako sve radi ispravno, čestitamo vam što ste upravo izgradili tajmer za jednu minutu!

Preporučeni: