INHOUDSOPGAWE:

VHDL een minuut stophorlosie: 5 stappe
VHDL een minuut stophorlosie: 5 stappe

Video: VHDL een minuut stophorlosie: 5 stappe

Video: VHDL een minuut stophorlosie: 5 stappe
Video: Deadbeat Response Design | Lead Controller & Pre-Filter | Intro, Calculations & MATLAB Simulations 2024, November
Anonim
Image
Image

Dit is 'n handleiding oor hoe u 'n stophorlosie van een minuut kan bou met behulp van VHDL en 'n Basys 3 -bord. So 'n toestel is ideaal vir speletjies waar elke speler 'n maksimum van een minuut het om te beweeg. Die stophorlosie wys sekondes en millisekondes akkuraat op die sewe segmentskerm, begin by 0 sekondes en 0 millisekondes, tot 60 sekondes en 0 millisekondes. Twee knoppies word ook gebruik: die sentrale knoppie, wat gebruik word om die timer te begin, te stop en voort te gaan, en die regte knoppie om die timer weer te begin. As die toestel langs mekaar vergelyk word met die ingeboude stophorlosie van 'n slimfoon, is die akkuraatheid van die klok merkbaar.

Stap 1: Verkry hardeware/sagteware

Blokdiagram
Blokdiagram

1. Basys 3 Artix-7 FPGA Trainer Board van Digilent met mikro-USB na USB-kabel

2. Vivado 2016.2 Design Suite van Xilinx

Stap 2: Blokdiagram

Hierdie stroombaan is gedragsgebonde en gebruik ingeboude Xilinx-komponente, maar kan ook struktureel beskryf word, soos aangetoon deur die algemene struktuurdiagram hierbo. Uit die diagram kan gesien word dat die stroombaan deur twee frekwensieverdelers aangedryf word. Een van die frekwensieverdelers loop op 1 sentisekonde en dryf die katodeteller wat gebruik word as die getalle wat op die sewesegment vertoon word. Die tweede frekwensie-verdeler werk op 240Hz en word gebruik om die anodeteller wat deur die anodes draai, aan te dryf sodat al die getalle korrek op die sewesegment vertoon word. Die enkodeerder neem die katodelogika van die katodeteller en die anode-logika van die anodeteller af, en kodeer dit na die katode en anode van die uitvoer wat die sewesegment vertoon. Die funksie van hierdie enkodeerder is dat die katode -uitset elke keer verander as die anode -uitset verander. Die katode -uitset kan nie onafhanklik van die toonbank uitgevoer word nie, omdat die anodes deur die 4 afsonderlike syfers moet draai.

Stap 3: Projekmodule

Eerstens word 'n prosesblok vir CEN gemaak, sodat wanneer 'n knoppie druk opgespoor word, die ENABLE sal skakel. Dit dien as die stop/begin van die katodeteller.

In die volgende prosesblok word die sentisekonde- en 240Hz -klokseine ingestel sodat hul onderskeie tellers met 1 toeneem elke keer as die interne 100mHz -horlosie 'n stygende rand bereik. Sodra die sentisekonde -teller 500000 bereik, sal dit terugstel na 0. Intussen sal die 240Hz -teller herstel sodra die telling 41667 bereik het.

Vir die katodeseksie van die kode, as ENABLE '0' is, sal die katodetelling onderbreek word. As die resetknoppie gedurende hierdie tyd ingedruk word, word al die tellings teruggestel op "0000". Intussen, as ENABLE '1' is, sal die katodetelling voortgaan totdat die katodetelling 60,00 bereik, waarin die stopsein '1' is. Die stopsein gaan terug na die CEN -prosesblok en veroorsaak dat ENABLE '0' is terwyl die stopsein '1' is en verander nie totdat die resetknoppie ingedruk word nie.

Laastens word die sewesegmentweergawe opgestel deur die 4 anodes korrek met elk van hul 8 katodes te verbind om hul onderskeie syfers 0-9 gelyktydig te vertoon.

Stap 4: Beperkings

Beperkings
Beperkings

Hierdie beperkingslêer verbind die gespesifiseerde insette en uitsette van VHDL met die nodige, fisiese dele van die Basys -bord. Vir hierdie projek bevat die komponente die vier anodes en elk van hul agt katodes vir die sewe segmentweergawe, die interne 100 mHz -klok, die middelste knoppie en die regterknoppie.

Stap 5: Toets

Nadat u die kode voltooi het, kan u die FPGA nou via die USB -kabel programmeer. Die sewe segment vertoning moet 0,00 vertoon. Toets of die knoppies werk deur op die sentrale knoppie te druk om die timer te begin totdat dit 60,00 bereik en stop; enige tyd tussenin, kan u weer op die sentrale knoppie druk om dit te onderbreek. Sodra dit onderbreek is, kan u op die regter knoppie druk om die timer terug te stel na 0.00. As alles reg werk, geluk, u het net 'n timer van een minuut gebou!

Aanbeveel: