Sisällysluettelo:

VHDL yhden minuutin sekuntikello: 5 vaihetta
VHDL yhden minuutin sekuntikello: 5 vaihetta

Video: VHDL yhden minuutin sekuntikello: 5 vaihetta

Video: VHDL yhden minuutin sekuntikello: 5 vaihetta
Video: X-Y display prototype with Arduino and an old VGA 2024, Marraskuu
Anonim
Image
Image

Tämä on opetusohjelma yhden minuutin sekuntikellon rakentamisesta VHDL: n ja Basys 3 -levyn avulla. Tällainen laite on ihanteellinen peleihin, joissa jokaisella pelaajalla on enintään minuutti aikaa liikkua. Sekuntikello näyttää tarkasti sekunteja ja millisekunteja seitsemän segmentin näytöllä, alkaen 0 sekunnista ja 0 millisekunnista aina 60 sekuntiin ja 0 millisekuntiin. Käytetään myös kahta painiketta: keskipainiketta, jota käytetään ajastimen käynnistämiseen, pysäyttämiseen ja jatkamiseen, ja oikeaa painiketta, jolla ajastin käynnistetään uudelleen. Kun laitetta verrataan rinnakkain älypuhelimen sisäänrakennetun sekuntikellon kanssa, kellon tarkkuus on havaittavissa.

Vaihe 1: Hanki laitteisto/ohjelmisto

Lohkokaavio
Lohkokaavio

1. Basys 3 Artix-7 FPGA -koulutuskortti Digilentiltä Micro-USB-USB-kaapelilla

2. Vivado 2016.2 Design Suite Xilinxiltä

Vaihe 2: Lohkokaavio

Tämä piiri on rakennettu käyttäytymiseen ja käyttää sisäänrakennettuja Xilinx-komponentteja, mutta sitä voidaan myös kuvata rakenteellisesti, kuten yllä oleva yleinen rakennekaavio osoittaa. Kaaviosta voidaan nähdä, että piiriä käyttävät kaksi taajuusjakajaa. Yksi taajuudenjakajista toimii 1 sentisekunnin nopeudella ja käyttää katodilaskuria, jota käytetään seitsemän segmentin näytössä näkyvinä numeroina. Toinen taajuusjakaja toimii taajuudella 240 Hz, ja sitä käytetään anodien laskurin käyttämiseen, joka pyörii anodien läpi niin, että kaikki numerot näkyvät oikein seitsemän segmentin näytössä. Kooderi ottaa katodilogiikan katodilaskurista ja anodilogiikan anodilukijasta ja koodaa sen lähdön katodiin ja anodiin, jotka käyttävät seitsemän segmentin näyttöä. Tämän anturin tehtävä on, että katodilähtö muuttuu joka kerta, kun anodilähtö muuttuu. Katodilähtöä ei voida käyttää laskurista riippumatta, koska anodien on pyöritettävä neljän erillisen numeron läpi.

Vaihe 3: Projektimoduuli

Ensinnäkin CEN -prosessilohko tehdään niin, että kun painikkeen painallus havaitaan, KÄYTÖSSÄ vaihtaa. Tämä toimii katodilaskurin pysäytyksenä/käynnistyksenä.

Seuraavassa prosessilohkossa sentisekunnin ja 240 Hz: n kellosignaalit asetetaan siten, että niiden vastaavat laskimet kasvavat 1: llä aina, kun sisäinen 100 MHz: n kello saavuttaa nousevan reunan. Kun sentisekunnin laskuri saavuttaa 500000, se nollautuu takaisin arvoon 0. Samaan aikaan 240 Hz: n laskuri nollautuu, kun luku saavuttaa 41667.

Jos KÄYTÖSSÄ on '0', katodin laskenta keskeytyy koodin katodiosassa. Jos nollauspainiketta painetaan tänä aikana, kaikki lukemat nollataan "0000". Samaan aikaan, jos KÄYTÖSSÄ on '1', katodin laskenta jatkuu, kunnes katodiluku saavuttaa 60,00, jolloin se laukaisee pysäytyssignaalin '1'. Pysäytyssignaali reitittää takaisin CEN -prosessilohkoon ja saa ENABLE -arvon olemaan 0, kun pysäytyssignaali on 1 eikä muutu, ennen kuin nollauspainiketta painetaan.

Lopuksi seitsemän segmentin näyttö asetetaan siten, että 4 anodia on liitetty oikein jokaiseen 8 katodiinsa näyttääkseen vastaavat numeronsa 0-9 samanaikaisesti.

Vaihe 4: Rajoitukset

Rajoitukset
Rajoitukset

Tämä rajoitustiedosto yhdistää määritetyt tulot ja lähdöt VHDL: stä Basys -kortin tarvittaviin fyysisiin osiin. Tässä projektissa komponentit sisältävät neljä anodia ja kukin niiden kahdeksasta katodista seitsemän segmentin näyttöä varten, sisäisen 100 MHz: n kellon, keskipainikkeen ja oikean painikkeen.

Vaihe 5: Testaa

Kun olet suorittanut koodin, voit nyt ohjelmoida FPGA: n USB -kaapelin kautta. Seitsemän segmentin näytön pitäisi näyttää 0,00. Testaa, toimivatko painikkeet painamalla keskinäppäintä käynnistääksesi ajastimen, kunnes se saavuttaa 60.00 ja pysähtyy; Voit aina keskeyttää sen painamalla keskipainiketta milloin tahansa siltä väliltä. Kun se on keskeytetty, voit palauttaa ajastimen takaisin arvoon 0,00 painamalla oikeaa painiketta. Jos kaikki toimii oikein, onnittelut, että olet juuri rakentanut minuutin ajastimen!

Suositeltava: